欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计算指定时间内的盈利次数

程序员文章站 2022-07-05 10:58:42
...

获得盈利交易的总手数

NumWinTrades()
获得盈利交易的总手数,已考虑交易费用,返回值为整型。

求当天的第一个数据到当前的Bar数

BarsSinceToday()
该函数计算当天的第一个数据到当前的Bar数,返回值为整数。
求当天盈利次数思路:
历史盈利交易总手数减去昨天历史盈利交易总手数即为今天盈利手数。盈利手数除以每次发单量就是盈利次数。

Params
    Numeric length(10);
	// 交易手数
	Numeric lots(6);
Vars
	// 均线
	Numeric ma;
	// 历史盈利手数
	NumericSeries win_total;
	// 今天盈利手数
	Numeric win_today;
Begin
	// 开盘价均线
	ma = Average(Open, length);
	// 历史盈利次数
	win_total = NumWinTrades();
	// 今天盈利手数:历史盈利手数减去昨天历史盈利手数
	win_today = (win_total - win_total[BarsSinceToday()]) / lots;	
	// 最高价大于均价,并且当前持仓建仓次数小于1,日内两点50以后禁止开单
	If (High > ma And CurrentEntries() < 1 And Time < 0.1420)
	{
		Buy(lots, IntPart(ma) + 1);
	}
	// 最低价小于均价,并且不允许在建仓k线平仓
	If (Low < ma And BarsSinceLastEntry() > 2)
	{
		Sell(lots, IntPart(ma) - 1);
	}
	// 两点57分自动平仓,或者在禁止开单后出现两根阳线,以开盘价平仓
	If (Time > 0.1430 Or (Time > 0.1420 And Close[1] > Open[1] And Close[2] > Open[2]))
	{
		Sell(lots, Open);
	}
	PlotNumeric("ma", ma);
	PlotString("win_today", Text(win_today), L);
End