以文本方式查看主题

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

--  作者:xiao
--  发布时间:2017/11/23 10:37:51
--  请求帮助!
一,当 均线MA5与MA10金叉时;1,若KDJ金叉(多头)时,开仓做多单。
                                           2,若KDJ死叉(空头)时,平仓不多单。

二,当 均线MA5与MA10死叉时;1,若KDJ死叉(空头)时,开仓做空单。
                                           2,若KDJ金叉(多头)时,平仓不多单。

--  作者:FireScript
--  发布时间:2017/11/23 10:52:01
--  

ma5:ma(c,5);
ma10:ma(c,10);

majc:cross(ma5,ma10);//ma金叉
masc:cross(ma10,ma5);
//KDJ引用系统自带的一个指标里面现成的交易模板下的金叉死叉
kdjjc:STKINDI(\'\',\'KDJ金死叉价格预测.开多平空条件\',0,6,0);//KDJ这里引用的是日线周期下的,可调整第四个参数来修改周期
kdjsc:STKINDI(\'\',\'KDJ金死叉价格预测.开空平多条件\',0,6,0);


if majc then
begin
if kdjjc then buy(holding=0,1,market);
if kdjsc then sell(holding>0,holding,MARKET);
end


if masc then
begin
if kdjjc then buyshort(holding=0,1,market);
if kdjsc then sellshort(holding<0,holding,MARKET);
end

[此贴子已经被作者于2017/11/23 10:52:24编辑过]

--  作者:xiao
--  发布时间:2017/11/23 20:40:34
--  

kdjjc:STKINDI(\'\',\'KDJ金死叉价格预测.开多平空条件\',0,6,0);//KDJ这里引用的是日线周期下的,可调整第四个参数来修改周期
kdjsc:STKINDI(\'\',\'KDJ金死叉价格预测.开空平多条件\',0,6,0);

搞不懂,是否直接陈述。

一,当 均线MA5与MA10金叉时;1,若KDJ也金叉(多头)时,开仓做多单。
                                                           2,若KDJ死叉(空头)时,平仓不做单。

二,当 均线MA5与MA10死叉时;1,若KDJ也死叉(空头)时,开仓做空单。
                                                           2,若KDJ金叉(多头)时,平仓不做单。
            实际是两者共振时做单,望回复!

--  作者:wenarm
--  发布时间:2017/11/23 22:01:53
--  
FireScript 的意思用引用是为了引用\'KDJ金死叉价格预测公式结果的 ,本地就不用再写kdj的公式了。默认是用的是日线周期

这个是根据你表述的情况,按我的理解写的代码,你可以看一下是不是你要的、
N:=55;
P1:=23;
P2:=3;
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;
ma10:ma(close,20),COLORWHITE;
ma5:ma(close,5),COLORYELLOW;
kdjc_bar:barslast(cross(d,k));//kd金叉时到当前周期的k线数量
kdsc_bar:barslast(cross(k,d));//kd死叉时到当前周期的k线数量
majc_bar:barslast(cross(ma5,ma10));//ma金叉时到当前周期的k线数量
masc_bar:barslast(cross(ma10,ma5));//ma死叉时到当前周期的k线数量
开多条件:((MA5>MA10  and kdjc_bar=1)  or (d>k and majc_bar=1 )) and holding=0;
开空条件:((MA5<MA10  and kdsc_bar=1)  or (d<k and masc_bar=1 )) and holding=0;
平多条件:(cross(ma10,ma5) and k<d) or (cross(k,d) and ma5>ma10);
平空条件:(cross(ma5,ma10) and k>d) or (cross(d,k) and ma5<ma10);

sell(平多条件,2,MARKET);
SELLSHORT(平空条件,2,MARKET);
buy(开多条件,2,MARKET);
BUYSHORT(开空条件,2,MARKET);
仓位:holding;

[此贴子已经被作者于2017/11/23 22:02:20编辑过]

--  作者:xiao
--  发布时间:2017/11/24 10:03:50
--  
老师好!辛苦了!今天下午有培训课,我来你公司当面再找你请教!谢谢!
--  作者:wenarm
--  发布时间:2017/11/25 15:33:00
--  
N:=55;
P1:=23;
P2:=3;
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;
ma10:ma(close,20),COLORWHITE;
ma5:ma(close,5),COLORYELLOW;
MA金叉:cross(ma5,ma10);
MA死叉:cross(ma10,ma5);
KDJ金叉:cross(J,k);
KDJ死叉:cross(k,J);
kdjc_bar:=barslast(cross(J,k));//kd金叉时到当前周期的k线数量
kdsc_bar:=barslast(cross(k,J));//kd死叉时到当前周期的k线数量
majc_bar:=barslast(cross(ma5,ma10));//ma金叉时到当前周期的k线数量
masc_bar:=barslast(cross(ma10,ma5));//ma死叉时到当前周期的k线数量
开多条件:((MA5>MA10  and kdjc_bar=1)  or (J>k and majc_bar=1 ) OR (kdjc_bar=1 AND majc_bar=1 ) ) and holding=0;
开空条件:((MA5<MA10  and kdsc_bar=1)  or (J<k and masc_bar=1 ) OR (kdsc_bar=1 AND masc_bar=1 ) ) and holding=0;
//平多条件:(cross(ma10,ma5) and k<J) or (cross(k,J) and ma5>ma10) OR ((ma10>ma5) AND (k>J));
//平空条件:(cross(ma5,ma10) and k>J) or (cross(J,k) and ma5<ma10) OR ((ma5>ma10) AND (J>k));
平多条件:((ma10>ma5) and k<J) or ((k>J) and ma5>ma10) OR ((ma10>ma5) AND (k>J));
平空条件:((ma5>ma10) and k>J) or ((J>k) and ma5<ma10) OR ((ma5>ma10) AND (J>k));


sell(平多条件,2,MARKET);
SELLSHORT(平空条件,2,MARKET);
buy(开多条件,2,MARKET);
BUYSHORT(开空条件,2,MARKET);
仓位:holding;

--  作者:xiao
--  发布时间:2017/11/29 14:21:14
--  
老师好!辛苦了!如果上述模型其它不变,把 KDJ  换成MACD,又怎么编写?谢谢!

--  作者:FireScript
--  发布时间:2017/11/29 14:52:23
--  

系统自带的里面有macd源码,可以抽取出macd源码:

input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6)

DIFF : EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  : EMA(DIFF,M);
MACD1 : 2*(DIFF-DEA), COLORSTICK;

 

把kdj金叉 死叉替换成macd的。这个你可以自己改下。


--  作者:xiao
--  发布时间:2017/11/30 12:43:40
--  
根据老师的指导,已经替换成功。再次谢谢了!
--  作者:xiao
--  发布时间:2017/12/4 10:22:00
--  
老师好!请问模型做好测试时,如果以3分钟为框架,一般用多少根K线为测试对象?而且,那些是重要参数,参数值达到多少为模型优良。谢谢!