以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=173533) |
-- 作者:Hxpj -- 发布时间:2019/12/13 10:06:09 -- 请教老师止损止盈编码问题 借鉴论坛中经验,调整交易,请教老师下面两个问题 问题1、开空:符合开空条件开空单,符合空单止盈条件,同时如果空单盈利30%止盈,亏损2%平空 //开空单 ORDVOL:=1; variable:maxprofit=0;//有仓位时最大获利幅度 win:=0; win2:=0; IF holding=0 then BEGIN buyshort(CD_BUY_SHORT,ORDVOL,MARKET); maxprofit=0; END IF HOLDING>0 and enterbars > 0 then BEGIN win:=(c-enterprice)/enterprice*100; //记录最大盈利 if win > maxprofit then maxprofit:=win; win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
END IF HOLDING>0 then begin SELLshort(CD_SELL_SHORT,0,MARKET); IF WIN < -2 THEN SELLSHORT(1,0,MARKET); IF WIN2 >= 30 and OPENPROFIT > 0 then SELLSHORT(1,0,MARKET); END 问题2:多单2%止损 保证金:=AvGENTERPRICE*MULTIPLIER*TACCOUNT(41); kspc:holding*(AvGENTERPRICE-c)*MULTIPLIER>=0.02*保证金; 请教老师问题1中这个交易逻辑是否写对,问题1中的止损条件是否优于问题2中的止损指标,问题2中空单止损怎么写? |
-- 作者:yukizzc -- 发布时间:2019/12/13 10:11:26 -- win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度 这里不用乘以100了,你的maxprofit和win都已经计算过百分比了吧 50% - 10% /50% 不用再*100 空单的holding是小于0的 IF HOLDING<0 then begin SELLshort(CD_SELL_SHORT,0,MARKET); IF WIN < -2 THEN SELLSHORT(1,0,MARKET); IF WIN2 >= 30 and OPENPROFIT > 0 then SELLSHORT(1,0,MARKET); END |
-- 作者:yukizzc -- 发布时间:2019/12/13 10:11:53 -- 另外你可以先写多头的,不要管空头 等多头都ok了,然后一些逻辑前后换下就是空头了
|
-- 作者:Hxpj -- 发布时间:2019/12/13 11:42:41 -- ORDVOL:=1; {开仓手数} variable:maxprofit_long=0;//有仓位时最大获利幅度 variable:maxprofit_short=0; win_long1:=0; win_long2:=0; win_short1:=0; win_short:=0; IF CD_BUY_LONG then BEGIN sellshort(holding<0,holding,market); //周期均线多头排列,则平空开多 开多:buy(holding=0,ORDVOL,MARKET); maxprofit_long=0; END IF HOLDING>0 and enterbars > 0 then BEGIN win_long1:=(c-enterprice)/enterprice*100; //记录最大盈利 IF win_long1 > maxprofit_long then maxprofit:=win_long1; win_long2:=(maxprofit_long-win_long1)/maxprofit_long; //最大盈利后的回调幅度
END IF CD_SELL_LONG and holding>0 then BEGIN 平多:SELL(1,holding,market); //多头止盈 END IF HOLDING>0 then //2%止损 BEGIN IF win_long1 < -2 THEN 2多止损:SELLSHORT(1,holding,MARKET); END 老师,为什么系统不执行止损??
|