模型中跨周期、数值等相关问题 (文华财经WH8赢智V8.2)

投资者咨询:模型中跨周期、数值等相关问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2019-3-5 11:38
 老师,有几个问题,烦请指点一下。

这是我的模型:


MA60:=MA(C,60);//60均线

MA20:=MA(C,20);//20均线

RSMA201:=REF(MA20>REF(MA20,1),1);//前一个20均线向上

RSMA60:=REF(MA60>REF(MA60,1),1);

DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);

DEA := EMA(DIFF,9);

MACD:=2*(DIFF-DEA),COLORSTICK;//定义MACD

RMACD:=REF(MACD,1);//前一个MACD

R1ISUP:=ISUP;//1阳线

R1ISDOWN:=ISDOWN;//1阴线

R1H:=REF(H,1);//1根高点

R1L:=REF(L,1);//1根低点

R1C:=REF(C,1);//1根收盘价

T:=BARPOS;//定义T为当前K线


#IMPORT[DAY,1,AA]AS VAR1//引用日图的AA

DMA60:VAR1.MA60;//引用日图的60均线定义

DR1SMA60:=VAR1.RSMA60;

DR1MACD:=VAR1.RMACD;

DR1ISUP:=VAR1.R1ISUP;//引用日图“前1阳线”

DR1ISDOWN:=VAR1.R1ISDOWN;//引用日图“前1阴线”

DR1H:=VAR1.R1H;

DR1L:=VAR1.R1L;

DRC1:=VAR1.R1C;//引用日图“前1根收盘价”

#IMPORT[HOUR,1,AA ]AS VAR2

HMA20:VAR2.MA20;

HMA60:VAR2.MA60;

HR1SMA60:=VAR2.RSMA60;

HR1SMA201:=VAR2.RSMA201;

HR1MACD:=VAR2.RMACD;

T:=VAR2.T;//BARPOS


10分钟分钟图上运行

MA5:=MA(C,5);

MA10:=MA(C,10);

DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);

DEA := EMA(DIFF,9);

MACD:=2*(DIFF-DEA),COLORSTICK;

R1ISUP:=ISUP;

R1ISDOWN:=ISDOWN;


一、ISUP定义问题。


ISUP是代表之前周期是阳性吗?比如破前一根阳性高点入场,可以写成:C>REF(ISUP,1),BK; C>REF((C-O)>0,1),BK; 还是可以写成C> ISUP,BK;?


二、跨周期函数引用的问题。


1、其中DRC1:=VAR1.R1C;//是否表示引用日图“前1根收盘价”?还是代表引用日周期“当前K线的价格?”


2、10分钟开仓,时间限定问题:


DR1SMA60  && DR1ISUP && C>DR1H && REF(MA10>REF(MA10,1),1 ) &&REF(ISUP,1) && C>REF(H,1),BK; // 日图60均线向上,且上一根为阳线,且突破该阳线高点,且10均线向上,10分钟当前K线前1根为阳线,突破阳线高点,买开。(要使10分钟开仓限定在日K突破前一根阳线高点后至当天收盘,应该怎么设置?C>DR1H仅表达了了开仓,没有表达收盘前的时间限制)


3、T:=BARPOS;是否表达当前周期?T:=VAR2.T;小时图引用“当前周期”是否正确?


三、循环移动止损问题。

下面是我的另一个开仓和止损模型:

REF(ISUP,1) && C>REF(H,1),BK;

C1J5:= REF(MA5<REF(MA5,1),1) &&REF((ISDOWN,1);

C2J5:=REF(L,BARSLAST(COUNT(C1J5,BARSBK)>=1 &&C1J5);

C<REF(L,1) || C1J5&&C2J5,SP; // 10分钟前一根阳性,突破阳线高点开仓,入场后,5均线向下,且前一根为阴线,跌破阴线低点止损。若满足C1J5的条件,但是没有跌破,止损位移动至满足这种情况的阴线低点,C2J5的写法是否正确?


四、数值的定义。


做多,10分钟开仓时,若1小时图MACD为绿色,设数值为1,开仓位置在1小时20均线之下,设数值也为1,原来数据为M,若满足上述一个条件或两个条件,表达为:

X:=M-1 || M-2;若X值小于0,X值取0,若X值大于等于零,取X计算后的真实值。请问老师这个怎么表达?


五、止损条件同时满足。


止损模型运行时,模型可能满足了几个止损的条件,且这些条件的止损位置在同一个价位,请问这种情况模型怎么运行,是仅运行其中一个条件,还是几个条件都运行导致已经平仓完了却还有止损指令。


六、模型中的最小价位问题。


我想在螺纹三个最小价位开仓和平仓,在PP一个最小价位开仓和平仓,在橡胶一个最小价位开仓平仓,请问这个怎么实现?实在模型中写出,分别写三个模型,限定最小价位?还是有其他办法?

 
技术人员回复
日期:2019-3-5 13:20
一、ISUP定义问题

ISUP表示当根k线是阳线

破前一根阳性高点入场: REF(ISUP,1)&&C>REF(H,1),BK;


二、跨周期函数引用的问题

1、DRC1:=VAR1.R1C;表示引用日线图,前1根的收盘价,就是昨天的收盘价

2、源码理解有误

DR1ISUP表示日线周期,当日是阳线,而不是前一日是阳线;如果想要表达前一日是阳线,或者前一日是阴线,需要直接判断前一根是阴阳线

另外,限制阳线开盘到收盘突破,可以使用CROSS表示,如下修改

R1ISUP:=REF(ISUP,1);//前1阳线
R1ISDOWN:=REF(ISDOWN,1);//前1阴线
SC:=CROSS(C,R1H);//日线周期上穿前一根k线高点

主模型:

DSC:=VAR1.SC;
DR1SMA60  && DR1ISUP && DSC && REF(MA10>REF(MA10,1),1 ) &&REF(ISUP,1) && C>REF(H,1),BK;

3、T:=BARPOS;表示从第一根K线开始到当前的k线根数

T:=VAR2.T;表示1小时周期对应的k线根数