dltpwyy 发表于 2020-12-12 18:16:31

请教高手策略编写测试时的问题

请教,tb软件在编写和测试时,实时跟踪期货价格用close还是high、low? 比如价格突破某一个值时买入,是if(close>=n) buy(0,0);还是if(high>=n)  buy(0,0);?怎么能在测试时买入价格显示实时价,而不是这根k线的收盘价或最高价?

另外我编写的程序设定止损价为买卖价反向跳n跳,例如 if(low<=buyprice-n*minmove*pricescale)  sell(0,buyprice-(n+1)*minmove*pricescale);但测试时显示的止损价都是止损那根k线的开盘价或收盘价,而不是买卖价跳n跳的价格,这是为什么?
急需老师指导,谢谢!

Yuen_Lee 发表于 2020-12-14 15:40:04

实时价格用close。但如果是突破某个价格的话,最好用high>n。测试时没办法回溯到实时价格,可以用设定的突破价格加上最小变动价位。
最后的那个问题,试试将平仓手数设为非0看看(如果携程Sell(0,xxx),需要在交易设置中的设置手数)。

dltpwyy 发表于 2020-12-14 18:33:33

Yuen_Lee 发表于 2020-12-14 15:40
实时价格用close。但如果是突破某个价格的话,最好用high>n。测试时没办法回溯到实时价格,可以用设定的突 ...

谢谢!如果测试时无法回溯买卖时的实时价格,那么建仓价格就不准确,直接影响后续的平仓价,导致整个测试结果不准确,高手们开发策略时这个问题如何解决?

dltpwyy 发表于 2020-12-14 18:37:22

Yuen_Lee 发表于 2020-12-14 15:40
实时价格用close。但如果是突破某个价格的话,最好用high>n。测试时没办法回溯到实时价格,可以用设定的突 ...

第二个问题我在交易设置中设了固定1手,但止损价经常出现止损K线的最高或最低价,这也直接影响测试结果

dltpwyy 发表于 2020-12-14 18:50:48

if(low<=buysellprice-n*minmove*pricescale)//这是一段止损代码,buysellprice是上一次的买卖价格,n是止损的跳数
{
   sell(0,buysellprice-(n+1)*minmove*pricescale);//
   sellshort(0,buysellprice-(n+1)*minmove*pricescale);
  
    buysellprice=buysellprice-(n+1)*minmove*pricescale;//对买卖价格重新赋值
    }//我的代码就是这么写的,但测试时图表上的止损价格经常是那根k线的最高或最低价,不知问题在哪

Yuen_Lee 发表于 2020-12-15 13:42:06

dltpwyy 发表于 2020-12-14 18:50 static/image/common/back.gif
if(low

查一下是否这个止损价格超出了K线的高低点范围。
页: [1]
查看完整版本: 请教高手策略编写测试时的问题