以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 如何编写,谢谢? (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=184531) |
-- 作者:苏西坡 -- 发布时间:2021/3/5 11:57:25 -- 如何编写,谢谢? 以ma1上穿ma2为例 金叉后,K线走完第二K开盘买入开仓,,当价格小于开仓K线的前一根K线最低价,止损,,,,(后面的第三根第四根或更多K都是以开仓前的K线最低价作为止损) 死叉后,k 线走完第二K开盘卖出开仓,当价格小于开仓K线的前一根K线最高价,止损 以上如何编写,谢谢 |
-- 作者:FireScript -- 发布时间:2021/3/5 13:39:19 -- ma1:ma(c,3); ma2:ma(c,5); majc:=cross(ma1,ma2); masc:=cross(ma2,ma1); 平空开多:=majc;//默认你是走完K模式或者进行回测时候,直接用majc作为条件即可,因为走完K是会在金叉下个K下单操作;如果是固定轮询模式下,替换代码为:ref(majc,1)。使用了ref用来判断上个K是否是金叉;这点请注意! 平多开空:=masc;//原理同上 if 平空开多 then //图表策略的逻辑是同一时刻不能同时有多空持仓,因此这里以反手来处理。 begin sellshort(holding<0,holding,market); buy(holding=0,1,market); end if 平多开空 then begin sell(holding>0,holding,market); buyshort(holding=0,1,market); end 止损价格1:ref(l,ENTERBARS+2);//开仓K前一个K的最低价,注意这里是指出信号K位置 止损价格2:ref(h,ENTERBARS+2); sell(c<止损价格1,holding,market); sellshort(c>止损价格2,holding,market); |