动态突破程序的问题 (文华财经WH6赢顺V6.7)

投资者咨询:动态突破程序的问题 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-4-26 14:38
 模型开发案例中动态突破程序加载美原油指一分钟,20161226-现在
发现在2017年1月13日13:41开始不出现信号,检查发现好像是程序中lookbackdays参数为空,或是其他什么原因

投资者咨询:动态突破程序的问题 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-4-26 14:38
自带的原有程序 
VARIABLE:LOOKBACKDAYS:=0;
TODAYVOLATILITY:STD(CLOSE,30);//当日市场波动
YESTERDAYVOLATILITY:=REF(TODAYVOLATILITY,1);//昨日市场波动
DELTAVOLATILITY:=(TODAYVOLATILITY-YESTERDAYVOLATILITY)/TODAYVOLATILITY;//市场波动的变动率
LOOKBACKDAYS:=IF(BARPOS<=30,20,REF(LOOKBACKDAYS,1)*(1+DELTAVOLATILITY));//计算自适应参数
LOOKBACKDAYS:=ROUND(LOOKBACKDAYS,0);
LOOKBACKDAYS:=MIN(LOOKBACKDAYS,CEILINGAMT);CEILINGAMT=40
LOOKBACKDAYS:MAX(LOOKBACKDAYS,FLOORAMT);FLOORAMT=20
MIDLINE:MA(CLOSE,LOOKBACKDAYS);
BAND:=STD(CLOSE,LOOKBACKDAYS); //自适应布林通道中轨
UPBAND:MIDLINE+BOLBANDTRIG*BAND;//自适应布林通道上轨BOLBANDTRIG=2
DNBAND:MIDLINE-BOLBANDTRIG*BAND;//自适应布林通道下轨
BUYPOINT:HV(HIGH,LOOKBACKDAYS);//自适应唐奇安通道上轨
SELLPOINT:LV(LOW,LOOKBACKDAYS);//自适应唐奇安通道下轨
LIQPOINT:MIDLINE;//自适应出场均线
C>UPBAND&&C>BUYPOINT,BK;//昨日价格大于布林通道上轨,并且当日价格大于唐奇安通道上轨,开多单
C<DNBAND&&C<SELLPOINT,SP;//持有多单时,昨日价格小于布林通道下轨,并且当日价格小于唐奇安通道下轨,平多单
EVERY(C<LIQPOINT,3),SP;//持有多单时,价格小于自适应出场均线,平多单
C>UPBAND&&C>BUYPOINT,BP;//持有空单时,昨日价格大于布林通道上轨,并且当日价格大于唐奇安通道上轨,平空单
C<DNBAND&&C<SELLPOINT,SK;//昨日价格小于布林通道下轨,并且当日价格小于唐奇安通道下轨,开空单
EVERY(C>LIQPOINT,3),BP;//持有空单时,价格大于自适应出场均线,平空单
AUTOFILTER;
技术人员回复
日期:2018-4-26 16:50
 是由于一些特殊行情导致市场波动率为0了,所以后续无法进行取值

如下修改您参考:


//该策略为趋势跟踪交易策略,适用较大周期,如日线。
//该模型仅用作模型开发案例,依此入市,风险自负。
////////////////////////////////////////////////////////
TODAYVOLATILITY:=STD(CLOSE,30);//当日市场波动
YESTERDAYVOLATILITY:=REF(TODAYVOLATILITY,1);//昨日市场波动
DELTAVOLATILITY1:(TODAYVOLATILITY-YESTERDAYVOLATILITY)/TODAYVOLATILITY;//市场波动的变动率
DELTAVOLATILITY:=IF(ISNULL(DELTAVOLATILITY1),REF(DELTAVOLATILITY1,20),DELTAVOLATILITY1);
LOOKBACKDAYS1:=LOOP2(BARPOS=30,20,REF(LOOKBACKDAYS1,1)*(1+DELTAVOLATILITY));//计算自适应参数
LOOKBACKDAYS2:=ROUND(LOOKBACKDAYS1,0);
LOOKBACKDAYS3:=MIN(LOOKBACKDAYS2,CEILINGAMT);
LOOKBACKDAYS:=MAX(LOOKBACKDAYS3,FLOORAMT);
MIDLINE:=MA(CLOSE,LOOKBACKDAYS);
BAND:=STD(CLOSE,LOOKBACKDAYS); //自适应布林通道中轨
UPBAND:=MIDLINE+BOLBANDTRIG*BAND;//自适应布林通道上轨
DNBAND:=MIDLINE-BOLBANDTRIG*BAND;//自适应布林通道下轨
BUYPOINT:=HV(HIGH,LOOKBACKDAYS);//自适应唐奇安通道上轨
SELLPOINT:=LV(LOW,LOOKBACKDAYS);//自适应唐奇安通道下轨
LIQPOINT:=MIDLINE;//自适应出场均线
C>UPBAND&&C>BUYPOINT,BK;//昨日价格大于布林通道上轨,并且当日价格大于唐奇安通道上轨,开多单
C<DNBAND&&C<SELLPOINT,SP;//持有多单时,昨日价格小于布林通道下轨,并且当日价格小于唐奇安通道下轨,平多单
EVERY(C<LIQPOINT,3),SP;//持有多单时,价格小于自适应出场均线,平多单
C>UPBAND&&C>BUYPOINT,BP;//持有空单时,昨日价格大于布林通道上轨,并且当日价格大于唐奇安通道上轨,平空单
C<DNBAND&&C<SELLPOINT,SK;//昨日价格小于布林通道下轨,并且当日价格小于唐奇安通道下轨,开空单
EVERY(C>LIQPOINT,3),BP;//持有空单时,价格大于自适应出场均线,平空单
AUTOFILTER;

 
投资者咨询:动态突破程序的问题 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-4-26 14:38
 试过了,LOOKBACKDAYS一直保持20
技术人员回复
日期:2018-4-27 13:11
 您使用3楼的源码就可以了

可以过滤一下特殊的情况
投资者咨询:动态突破程序的问题 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-4-26 14:38
 请教一下,欧阳老师,(1)3楼第3行,:是否应该:=?
(2)倒数第2~4行,顺序为什么是平空单,开空单,平空单,而不是开空单,平空单,平空单,即倒数第3与第4行互换?多单时,顺序依次为开多单,平多单,平多单。
两个平多单语句,顺序能否互换?两个平空单语句能否互换顺序
技术人员回复
日期:2018-8-3 16:36

回复问题1:

 

使用:定义变量可以输出返回值,您不需要查看对应的返回值使用:=定义就可以

 

回复问题2:

 

3楼模型开平仓语句顺序对结果是没有影响的

 

 

您刚接触wh8模型编写可参考这个帖子学习一下: 【学习资料】程序化培训教程、名词解释,文华能帮我编模型?