龙听期货论坛's Archiver

龙听 发表于 2019-6-1 10:48

慧眼识模型之价格虚构[古期心得]

转:

量化投资首先需要交易模型,一个交易模型的好坏直接影响到投资业绩。很多量化投资者根本搞不清什么是好模型,坏模型。以为回测下来资金线漂亮的就是好模型,这大大错了。回测结果并不等于实盘结果。

模型首先分为真模型和假模型,真模型的回测结果和实盘是一致,最多是滑点的差异。假模型通过代码作弊,回测作弊获得漂亮的资金线。很多人认为只要在模型中没有未来函数就不会是假的了。这又大大错了,假模型的种类繁多,令人防不胜防。很多程序员并非故意也会做出假模型。下面将一一讲述假模型的种类。

第一:价格虚构。金字塔软件中有一个附带的策略--唐奇安通道。代码如下:

//中间变量
INPUT:X(20,1,100,1),NMIN(10,1,100,1),SS(1,1,10000,1);
X周期高点:=REF(HHV(H,X),1);//X是参数,自行调整
X周期低点:=REF(LLV(L,X),1);
手数:=SS;
开仓时间:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
平仓时间:=TIME>=CLOSETIME(0)-NMIN*100;
{NMIN为参数,CLOSETIME(0)-NMIN*100表示 收盘时间-提前N分钟 N由NMIN控制}

//交易条件:
开多平空条件:=C>X周期高点 AND 开仓时间 AND HOLDING<=0;
开空平多条件:=C=0;

//交易系统
收盘平多:SELL(平仓时间 AND HOLDING>0, 0, THISCLOSE);
收盘平空:SELLSHORT(平仓时间 AND HOLDING<0,0,THISCLOSE);
平空:SELLSHORT(开多平空条件 AND HOLDING<0, 手数,LIMITR,X周期高点);
平多:SELL(开空平多条件 AND HOLDING>0,手数,LIMITR,X周期低点);
开空:BUYSHORT(开空平多条件 AND HOLDING=0,手数,LIMITR,X周期低点);
开多:BUY(开多平空条件 AND HOLDING=0,手数,LIMITR,X周期高点);

这个策略是运行在K线收盘的时候,如果K线收盘价突破上轨就做多,突破下轨就做空。问题是成交价格虚构,当收盘价突破上轨了,策略已经要不到上轨的价格了,这个策略居然把价格定在上轨,构成价格虚构。这样模型回测资金线漂亮,但实盘是会出问题的,用了Limit报单,价格定在上轨,很可能不能成交。

交易开拓者(TB)的模型同样会有价格虚构的问题。由于TB的模型工作在Tick模式,在开平仓的时候可以随意指定成交价格。程序员一不小心就会做出价格虚构的模型。

页: [1]