以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=185230) |
|
-- 作者:阳光5815 -- 发布时间:2021/4/16 15:03:23 -- 帮写个模型
|
|
-- 作者:FireScript -- 发布时间:2021/4/16 15:58:13 -- 你这个代码处理需要一些时间,工作人员处理完后会更新回帖。请关注本帖回复即可。 |
|
-- 作者:FireScript -- 发布时间:2021/4/19 10:08:10 -- //真实波幅 INPUT:M1(14,1,300,30); TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR:MA(TR1,m1); //BOLL布林带 INPUT:M2(26,5,300,30); INPUT:N(2,0.1,10,1); MID : MA(CLOSE,M2); UPPER: MID + N*STD(CLOSE,M2); LOWER: MID - N*STD(CLOSE,M2); UL:UPPER-LOWER;//上下轨间距 //macd input:p(26,20,100,8),s(12,5,40,4),m3(9,2,60,6); DIFF :EMA(CLOSE,S) - EMA(CLOSE,P); DEA :EMA(DIFF,M3); MACD1 :2*(DIFF-DEA), COLORSTICK; 布林张口:UPPER>ref(UPPER,1) and LOWER<ref(LOWER,1) and count(UL<ref(UL,1),3); 开多条件:布林张口 and c>ma(c,60) and c>ref(hhv(h,10),1) and vol>ref(hhv(vol,10),1); buy(开多条件 and holding=0,1,thisclose);//实际交易中按照对手价开仓,回测中是本周起收盘价。 平多条件1:c<ref(llv(l,50),1); 平多条件2:vol>ref(vol,1)*1.5 and c>ref(h,1) and (o-c)>c*0.01; 平多条件3:cross(diff,dea) and diff<0 and dea<0; 平多条件4:ENTERBARS>=9 and (c-AVGENTERPRICE)>=0.02*AVGENTERPRICE and vol>ref(hhv(vol,10),1) and tr>2*atr and (c-UPPER)>(UPPER-o); 平多条件5:ref(c>o,1) and (h>UPPER and ref(h>UPPER ,1)) and c<ref(l,1) and LOWER<ref(LOWER,1) and (o-c)>0.01*c; 平多条件6:ENTERBARS>=4 and c<ref(llv(l,2),1) and tr>4*atr and vol>ref(vol,1)*1.5; 平多条件7:OPENPROFIT<=-20*MINDIFF; if (平多条件1 or 平多条件2 or 平多条件3 or 平多条件4 or 平多条件5 or 平多条件6 or 平多条件7) then sell(holding>0,holding,market); 这是多天的部分,供参考。空头你在理解上面代码基础上可以自行尝试下。
[此贴子已经被作者于2021/4/19 15:02:54编辑过]
|
|
-- 作者:FireScript -- 发布时间:2021/4/19 15:02:19 -- 1.“持仓亏损二十个变动价立即平仓止损”这个的话。要实现立即平仓,你如果是图表程序化 就要用固定轮训的交易模式。否则可能会信号闪烁。 2.“8 设置所有委托方式为: 首次下单为对价 三秒不成交,撤单重新委托连续追价。” 在工具-选项 这里对追撤单进行设置即可。
|
|
-- 作者:阳光5815 -- 发布时间:2021/4/22 17:11:47 --
|
|
-- 作者:阳光5815 -- 发布时间:2021/4/22 17:16:39 --
|
|
-- 作者:阳光5815 -- 发布时间:2021/5/17 19:15:56 -- IF AVGENTERPRICE-C>40*MINDIFF THEN BEGIN SELL(1,HOLDING,MARKET); END IF C-AVGENTERPRICE>40*MINDIFF THEN BEGIN SELLSHORT(1,HOLDING,MARKET); END 我用轮训模式,这样写不能实现盘中触及亏损就平仓,帮帮看看,哪里问题,要怎么改
|
|
-- 作者:FireScript -- 发布时间:2021/5/18 9:17:13 -- 正常应该不会的。是不是轮训间隔太大了? 你改成最小 1秒轮训。因为这个是用c收盘价作为判断依据的,如果轮训较大,那么中间最高价最低价的瞬间有可能没捕捉到。 |
|
-- 作者:阳光5815 -- 发布时间:2021/5/18 9:25:54 -- 写法没问题吗? |
|
-- 作者:阳光5815 -- 发布时间:2021/5/18 9:30:47 -- AVGENTERPRICE 这句可以代表 开仓价吗 OPENPROFIT 这句是不是计算出盈亏了,负数就代表亏损了。对吗 盘中触及止损用那个函数好。谢谢
|