以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=182258) |
-- 作者:jzt666 -- 发布时间:2020/9/21 6:22:44 -- 日内定额止损 收盘价下穿今日开盘价做空,亏损2%止损,盈利20%止盈。空单止损后最高价N周期小于今日开盘价再次开空;收盘价上穿今日开盘价做多,亏损2%止损,盈利20%止盈。多单止损后最低价N周期大于今日开盘价再次开多;当日亏损总额大于等于20%,不再开仓,收盘前10分钟全平;
|
-- 作者:jzt666 -- 发布时间:2020/9/21 15:10:34 -- ????? |
-- 作者:FireScript -- 发布时间:2020/9/21 16:02:41 -- 仅供参考,建议客户理解代码思路后再次基础上进行修改和完善即可。 VARIABLE:mark:=0;//全局变量标记止损 N:=10;dayOpen:CALLSTOCK(\'\',vtOPEN,6,0);//当日开盘价 zyk:=(ASSET-ref(ASSET,TODAYBAR))/ASSET;//总资产变化幅度,如果亏损大于20%不再开仓 abb:=timetot0(CLOSETIME(0))-time0,NODRAW;//当前K线时间距离收盘K线结束倒计时 abb3:=timetot0(CLOSETIME(0))-timetot0(dynainfo(207)),NODRAW;//当前时间距离收盘K时间 收盘平仓:(abb<10*60 and abb>=0 and (not(ISLASTBAR))) or (ISLASTBAR and abb3>=0 and abb3<10*60); if cross(dayOpen,c) and holding=0 and zyk>=-0.02 and not(收盘平仓) then //空头开仓 begin buyshort(1,1,market); mark:=0; end ktyk:=(AVGENTERPRICE-c)/AVGENTERPRICE; if ktyk>=0.2 or ktyk<=-0.02 and holding<0 then //空头止盈止损 begin if ktyk<0 then mark:=-1; sellshort(1,holding,market); end if mark=-1 and llv(l,N)<dayOpen and zyk>=-0.02 and not(收盘平仓) then buyshort(holding=0,1,market);//空头止损后开仓 if cross(c,dayOpen) and holding=0 and zyk>=-0.02 and not(收盘平仓) then //多头开仓 begin buy(1,1,market); mark:=0; end dtyk:=(c-AVGENTERPRICE)/AVGENTERPRICE; if dtyk>=0.2 or dtyk<=-0.02 and holding>0 then //多头止盈止损 begin if dtyk<0 then mark:=1; sell(holding>0,holding,market); end if mark=1 and llv(l,N)>dayOpen and zyk>=-0.02 and not(收盘平仓) then buy(holding=0,1,market);//多头止损后开仓 IF 收盘平仓 THEN BEGIN sell(holding>0,holding,market); sellshort(1,holding,market); mark:=0; END |