以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=165939)

--  作者:KJTT
--  发布时间:2018/10/17 16:19:30
--  策略编写求助
1分钟收盘在30.60均线之上,且kdj.rsi指标均处多头,3分钟收盘在30.60均线之上,且kdj.rsi指标均处多头,15分钟且kdj.rsi指标均处多头,
以上3条件由不符合运行到第一次同时符合这3个条件时,以笑脸图标出现在1分钟图上。请做一个交易系统信号公式,谢谢。

--  作者:FireScript
--  发布时间:2018/10/17 16:30:02
--  
1.kdj   rsi 的多空定义是?金字塔自带的kdj  rsi交易策略里有多空,但是我需要明确你这里的多空是否是同样方式定义的。
2.完整策略需要开 平条件的设定。包括开多 开空 平多 平空。最好详细描述下,形成完整逻辑才方便编写。

--  作者:KJTT
--  发布时间:2018/10/17 16:47:33
--  
1.kdj.rsi指普通意义上的多头,如j>k>d也相当于(K>D)
2.当符合这3条件时只用在1分钟上显示笑脸图标信号就行了,不用开平仓资金的编写(暂时不用程序化交易)

--  作者:KJTT
--  发布时间:2018/10/17 17:00:51
--  [原创]
也就是编写一个原来股价在运行时并不同时符合这3个条件,直到符合这3条件时在1分钟图上出现笑脸图标信号就行了,这相当于买入,另反方向同时符合条件就是卖出
--  作者:FireScript
--  发布时间:2018/10/17 17:08:57
--  
 需要跨周期,因此必须先单独建立一个指标TEMP

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

INPUT:P(6,0,60,6),LL(20,0,200,20),LH(80,0,800,80),N(9,1,100,10),P1(3,2,40,4),P2(3,2,40,4);
//RSI
LC:=REF(CLOSE,1);
RSI:=SMA(MAX(CLOSE-LC,0),P,1)/
SMA(ABS(CLOSE-LC),P,1)*100;

RSI_D:RSI>LL;//开多平空条件


//KDJ
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
J:=3*K-2*D;

KDJ_D:J>D;//多

//均线
ma_d:ma(c,60)<c and ma(c,30)<c;//收盘价大于30日和60日均线


然后在当前运行的指标下引用不同周期的kdj rsi 均线 的判断结果:
kdj1:STKINDI(\'\',\'TEMP.RSI_D\',0,1,0);//1分钟
kdj3:STKINDI(\'\',\'TEMP.RSI_D\',0,17,0);//3分钟
kdj15:STKINDI(\'\',\'TEMP.RSI_D\',0,3,0);//15分钟 

rsi1:STKINDI(\'\',\'TEMP.KDJ_D\',0,1,0);
rsi3:STKINDI(\'\',\'TEMP.KDJ_D\',0,17,0);
rsi15:STKINDI(\'\',\'TEMP.KDJ_D\',0,3,0);

ma_1:STKINDI(\'\',\'TEMP.ma_d\',0,1,0);//均线1分钟的判断
ma_3:STKINDI(\'\',\'TEMP.ma_d\',0,17,0);
ma_15:STKINDI(\'\',\'TEMP.ma_d\',0,3,0);


cd:kdj1 and kdj3 and kdj15 and rsi1 and rsi3 and rsi15 and ma_1 and ma_3 and ma_15;

if cd  then DRAWICON(1 ,h ,1  );//条件符合则画笑脸


注意补充足够数据