等级: 免费版
- 注册:
- 2022-3-11
- 曾用名:
|
NUMPROFIT(N),取第距离现在第N次交易的盈亏数额。
例如:
NUMPROFIT(1)表示最近一次的盈亏数额。
注意:
该函数仅在逐K线计算模式下有效, 并且只能用在BUY,SELL等新图表交易系统中,不能与旧图表交易系统ENTERLONG,EXITLONG等混用。
这个是盈亏数额,不是胜率,相关的还有
NUMWINTRADE统计策略根据历史数据运行至今出现过连亏情况的总次数。
NUMSEQLOSS统计策略根据历史数据运行至今出现过连盈情况的总次数。
这都不是用来表达最近5次的胜率。
我试着用:
IF KKPD OR KDPK=0 AND 模拟持仓=1 THEN BEGIN
模拟平仓价:=CLOSE;//记录平仓价
该笔盈亏:=模拟平仓价-模拟开仓价;//在模拟交易模块中我们只需计算上一笔交易是赚还是亏,在这里我只计算盈亏最后的点数
模拟持仓:=0;//将全局变量*模拟持仓*初始化为0
IF 该笔盈亏>0 THEN BEGIN
//真实系统下单开关:=0;//0代表模拟交易上一笔是赚钱的。
模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0
盈利次数:=盈利次数+1;
END
IF 该笔盈亏<=0 THEN BEGIN
//真实系统下单开关:=1;//1代表模拟交易上一笔是亏钱的。
模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
模拟平仓价:=0;//将全局变量*模拟平仓价*初始化为0
亏损次数:=亏损次数+1;
END
交易次数:=交易次数+1;
END
IF KKPD AND 模拟持仓=0 THEN BEGIN
模拟开仓价:=CLOSE;//记录开仓价
模拟持仓:=-1;//模拟持仓为-1
END
IF KDPK OR KKPD=0 AND 模拟持仓=-1 THEN BEGIN
模拟平仓价:=CLOSE;//记录平仓价
该笔盈亏:=模拟开仓价-模拟平仓价;//在模拟交易模块中我们只需计算上一笔交易是赚还是亏,在这里我只计算盈亏最后的点数
模拟持仓:=0;//将全局变量*模拟持仓*初始化为0
IF 该笔盈亏>0 THEN BEGIN
//真实系统下单开关:=0;//0代表模拟交易上一笔是赚钱的。
模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0
盈利次数:=盈利次数+1;
END
IF 该笔盈亏<=0 THEN BEGIN
//真实系统下单开关:=1;//1代表模拟交易上一笔是亏钱的。
模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0
亏损次数:=亏损次数+1;
END
交易次数:=交易次数+1;
END
但后面就是没法在编写出最后五次交易时,盈利次数等于多少,亏损次数等于多少。你给的函数是实际交易的,这也没关系,但它不是胜率,是不是我需要把每次的单独测出来,比如用循环判断近5次的每次盈利,然后再统计?这个方法会不会有点笨了?
我还是希望能通过上面的模拟方式来实现,这样我才能进行回测,请大神指教。
1、有没有能直接实现最近5次胜率的函数?
2、有没有办法在我写的那个代码基础上,编写出模拟最近5次交易的盈利次数等于多少,亏损次数等于多少?
|
|