以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 策略编写求助区 (http://www.weistock.com/bbs/list.asp?boardid=11) ---- 蚂蚁后台程序化交易编写求助 (http://www.weistock.com/bbs/dispbbs.asp?boardid=11&id=181741) |
-- 作者:jjx369 -- 发布时间:2020/8/15 13:27:18 -- 蚂蚁后台程序化交易编写求助 跪求老师帮忙写一下,谢谢了。 名称:蚂蚁后台程序化交易: 仓位:设定好单笔仓位:10000股(设成外部参数) 买入: 该品种连续上涨0.2%(设成外部参数),买进;
出局:1.止损:A.买入10000股后:3分钟(设成外部参数)买进的10000股不盈利,卖出; <!--[if !supportLists]-->B. <!--[endif]-->买入后该品种下跌0.1%(设成外部参数),卖出; 风控: 连续亏损3次(设成外部参数),停止交易30分钟(设成外部参数)。
老师我买的是机构版:相关数据,能否写成外部参数,不需要打开源码,直接可以在外部参数改。 |
-- 作者:FireScript -- 发布时间:2021/3/2 11:08:21 -- 外部参数暂时采用参数设置的方式处理,这个也是不需要打开源码修改的。直接在后台程序化设置界面就可以修改参数。 另外你这个逻辑缺少盈利平仓的环节,建议补全上这个。否则你这里的逻辑都是亏损平仓。 另外我这里是按照期货的处理的,你如果是交易股票得话,持仓时候是需要判断是否有老仓的。 //ss参数是手数;n是连续上涨幅度;t1是连续亏损后停止交易的时间;t2是开仓后不盈利的时间;m是亏损平仓设置的亏损幅度;kscs表示连亏次数 INPUT:ss(10000,1,100000,1),n(0.2,0.01,100,0.01),t1(30,1,120,1),t2(3,1,120,1),m(0.1,0.01,100,0.01),kscs(3,1,100,1);GLOBALVARIABLE:jsq1:=0,jsq2:=0,jsq3:=0;//jsq1用来记录下单具体的历时,单位是秒;jsq2记录连续亏损的次数;jsq3记录连亏之后停止交易的时间。 //"该品种连续上涨0.2%" 暂时按照当前K线涨幅来处理。你可以调整K线周期大小。使得这个涨幅大小限制在一个合适的时间范围内进行判断。 zd:100*(c-ref(c,1))/ref(c,1); if jsq2=kscs then jsq3:=CURRENTTIME;//连亏三次之后利用jsq3变量开始计时 Timecd:jsq2=kscs and (CURRENTTIME-jsq3)<=t1*60;//判断是否在连亏后的指定时间内。 if zd>=n and not(Timecd) then begin tbuy(1,ss,mkt);//买入 jsq1:=CURRENTTIME; jsq3:=0; end //有可用持仓;开仓历时大于300s;当前依然没有盈利。满足三点直接平仓 if TBUYHOLDINGEX(\'\',\'\',1)>0 and CURRENTTIME-jsq1>=60*t2 and TAVGENTERPRICEEX2(\'\',\'\',0)-c>0 then begin tsell(1,TBUYHOLDINGEX(\'\',\'\',1),mkt); jsq2:=jsq2+1; end //开仓后亏损到一定百分比平仓 if TBUYHOLDINGEX(\'\',\'\',1)>0 and ((TAVGENTERPRICEEX2(\'\',\'\',0)-c)/TAVGENTERPRICEEX2(\'\',\'\',0))>=m/100 then begin tsell(1,TBUYHOLDINGEX(\'\',\'\',1),mkt); jsq2:=jsq2+1; end |