老师您好!
我的策略是1分钟周期运行的。我想在我现有的策略条件里加一条策略:调用小时线周期,小时线周期中前一根K线的close小于布林线的upper才启动我的策略运行。
例如:原策略如下
定义各种参数。。。。。。;
开多条件:ma20-ma120>=2 and dea>0 and dea<0.3 and cross(diff,dea);
if 开多条件 and holding=0 then
BEGIN
buy(1,1,MARKETR);
end
止损;
止盈;
我想请老师帮我加一条:调用小时线周期的如下情况。
定义各种参数:
开多条件:ma20-ma120>=2 and dea>0 and dea<0.3 and cross(diff,dea);
cd2:=前一根小时线的K线close<upper;
if 开多条件 and cd2 and holding=0 then
BEGIN
buy(1,1,MARKETR);
end
止损;
止盈;
也就是说,我想让我现在的策略只在小时线K线位于boll上轨下方才运行策略。
谢谢老师!!
先修改下系统里的布林线指标:
MID : MA(CLOSE,M);
UPPER: MID + N*STD(CLOSE,M);
LOWER: MID - N*STD(CLOSE,M);
cd:UPPER>REF(c,1);
然后当前指标下调用下:
cd:stkindi('','BOLL.cd',0,5,0);
把这个cd也作为开仓条件就行了。
你如果判断的是小时线前一个K的收盘价是否大于upper。那直接就在被调用的指标 里做判断。也就是上面布林指标里加的那个变量cd。否则你在交易指标里至少还需要额外调用下小时线上个周期的额收盘价。所以改布林:1.减少代码量 2.减少不必要的调用。
收到,谢谢老师,我修改了策略,加进了您说的那几个代码,其中有两个CD变量出错。我把其中1个cd改为CD1,应用在图上好像还是有点问题。您帮看看,我改的CD1对不对,谢谢!MID: MA(CLOSE,26);//布林中轨
UPPER: MID + 2*STD(CLOSE,26);//布林上轨
LOWER: MID - 2*STD(CLOSE,26);//布林下轨
cd:UPPER>REF(c,1);
cd1:stkindi('','BOLL.cd',0,2,0);
开空条件:(cross(high,upper) and close<=upper) ;
if cd and 开空条件 and holding=0 then
BEGIN
buyshort(1,1,MARKETR);
end
止盈;
止损;
是的,布林线它们都在一个指标里。难道我放了个基础严重错误。。。。抱歉老师,我是没半点基础的那种学员。请教我一下,我这个怎么修改修改?谢谢!意思是不是要先新建一个小时线的boll指标,然后再在1分钟线的策略里使用小时线的指标?
谢谢,我明白了,我按照老师您教的做,但是出现了:未定义变量:CD

此主题相关图片如下:qq图片20201014201642.png

不知道哪里又弄错了。。。。。