以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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
--  帮写个模型

求公式,MACD。
求公式,ATR。
求公式,布林通道。
求公式,布林张口:=上轨大于前一个周期 并且 下轨小于前一个周期 并且 过去三个周期满足有(上轨减去下轨小于 前一个周期上轨减去下轨)。
开仓条件:
布林张口 并且 收盘价大于六十日均线 并且 收盘价大于前十个周期最高价 并且 成交量大于前十个周期最高点 ,开多单。(开空反之)

平仓条件
1   收盘价小于前五十个最低点,平多。(平空反之)。
2   成交量大于前一个周期成交量乘以一点五 并且  开盘价大于前一个最高价 并且 开盘价减去收盘价大于0.01乘以收盘价,平多。(平空反之)
3    DIFF下穿DEA 并且 DIFF小于0 并且 DEA小于0,平多。(平空反之)
4    上一次开多位置以来大于10个周期 并且 收盘价减去开多价位大于(开多价位乘以0.02)并且 成交量大于前十个最高价 并且 TR大于2乘以ATR  并且 收盘价减去布林上轨大于上轨减去开盘价,平多。(平空反之)
5    判断前一个周期收阳 并且 (前一个周期最高价大于上轨 或者 当个周期最高价大于上轨)并且 收盘价小于前一个周期最低价 并且 布林下轨大于前一个周期 并且 开盘价减去收盘价大于0.01乘以收盘价,平多。
6   上一次买多位置以来大于五个周期 并且 收盘价小于前两个周期最低点 并且 TR大于4乘以ATR 并且 成交量大于(前一个周期成交量乘以1.5),平多. (平空反之)
7    持仓亏损二十个变动价立即平仓止损。
8  设置所有委托方式为: 首次下单为对价  三秒不成交,撤单重新委托连续追价。
需要完整的模型,谢谢啦

--  作者: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  设置所有委托方式为: 首次下单为对价  三秒不成交,撤单重新委托连续追价。

在工具-选项

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

这里对追撤单进行设置即可。

--  作者:阳光5815
--  发布时间:2021/4/22 17:11:47
--  

 1.“持仓亏损二十个变动价立即平仓止损”这个的话。要实现立即平仓,你如果是图表程序化 就要用固定轮训的交易模式。否则可能会信号闪烁。
怎么用 固定轮训的交易模式,
2  OPENPROFIT<0,写法可以表示当前持仓是亏损的吗

--  作者:阳光5815
--  发布时间:2021/4/22 17:16:39
--  

 1.“持仓亏损二十个变动价立即平仓止损”这个的话。要实现立即平仓,你如果是图表程序化 就要用固定轮训的交易模式。否则可能会信号闪烁。
具体怎么用固定轮训的交易模式。

2  OPENPROFIT<0,写法可以表示当前持仓是亏损的吗。

--  作者:阳光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 这句是不是计算出盈亏了,负数就代表亏损了。对吗

盘中触及止损用那个函数好。谢谢