以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  请老师帮助编写两句编程  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=86230)

--  作者:muxia5568
--  发布时间:2015/10/15 14:55:48
--  请老师帮助编写两句编程

请老师帮助编写;我是5分钟周期模型,

 

卖开仓以来的最低价始终大于mm4,当15分钟周期KDJ和30分钟周期KDJ,只要两个指标中的一个出现卖开仓以来的第一个金叉(如果第一个出现的是死叉则忽略不计,只要第一个金叉信号)平空开多。

 

买开仓以来的最高价始终小于mm4,当15分钟周期KDJ和30分钟周期KDJ,只要两个指标中的一个出现买开仓以来的第一个死叉(如果第一个出现的是金叉则忽略不计,只要第一个死叉信号)平多开空。

 

谢谢


--  作者:jinzhe
--  发布时间:2015/10/15 15:00:46
--  
请问mm4是什么?
--  作者:muxia5568
--  发布时间:2015/10/15 15:04:52
--  
老师;mm4是一条指标线
--  作者:jinzhe
--  发布时间:2015/10/15 15:19:48
--  

在系统自带的KDJ公式里面加入下面两句代码:

JC:CROSS(K,D);

SC:CROSS(D,K);

 

 

具体的操作公式这样写:

JC15:=STKINDI(\'\',\'KDJ.JC\',0,3);
SC15:=STKINDI(\'\',\'KDJ.SC\',0,3);

JC30:=STKINDI(\'\',\'KDJ.JC\',0,4);
SC30:=STKINDI(\'\',\'KDJ.SC\',0,4);

IF HOLDING<0 AND ALL(LOW>MM4,ENTERBARS+1) AND (JC15 OR JC30) THEN BEGIN
 SELLSHORT(1,0,MARKET);
 BUY(HOLDING=0,1,MARKET);
END

IF HOLDING>0 AND ALL(HIGH<MM4,ENTERBARS+1) AND (SC15 OR SC30) THEN BEGIN
 SELL(1,0,MARKET);
 BUYSHORT(HOLDING=0,1,MARKET);
END


--  作者:muxia5568
--  发布时间:2015/10/16 11:28:41
--  

老师您好;您在昨天为我编写的这两句程序,和我的要求不一致,有很多该出信号的地方不出信号,请老师看看是什么问题?
我昨天发的;

(我是5分钟周期模型,
卖开仓以来的最低价始终大于mm4,当15分钟周期KDJ和30分钟周期KDJ,只要两个指标中的一个出现卖开仓以来的第一个金叉(如果第一个出现的是死叉则忽略不计,只要第一个金叉信号)平空开多。
买开仓以来的最高价始终小于mm4,当15分钟周期KDJ和30分钟周期KDJ,只要两个指标中的一个出现买开仓以来的第一个死叉(如果第一个出现的是金叉则忽略不计,只要第一个死叉信号)平多开空。)

老师帮助编写的;
在系统自带的KDJ公式里面加入下面两句代码:

JC:CROSS(K,D);
SC:CROSS(D,K);

具体的操作公式这样写:

JC15:=STKINDI(\'\',\'KDJ.JC\',0,3);
SC15:=STKINDI(\'\',\'KDJ.SC\',0,3);

JC30:=STKINDI(\'\',\'KDJ.JC\',0,4);
SC30:=STKINDI(\'\',\'KDJ.SC\',0,4);

IF HOLDING<0 AND ALL(LOW>MM4,ENTERBARS+1) AND (JC15 OR JC30) THEN BEGIN
 SELLSHORT(1,0,MARKET);
 BUY(HOLDING=0,1,MARKET);
END

IF HOLDING>0 AND ALL(HIGH<MM4,ENTERBARS+1) AND (SC15 OR SC30) THEN BEGIN
 SELL(1,0,MARKET);
 BUYSHORT(HOLDING=0,1,MARKET);
END

老师可以编一个开仓信号测试一下看看,给老师添麻烦了,谢谢!


--  作者:muxia5568
--  发布时间:2015/10/16 13:08:41
--  

老师在吗?

 


--  作者:jinzhe
--  发布时间:2015/10/16 13:17:26
--  

你没有把自己的开仓加进去吗?


--  作者:muxia5568
--  发布时间:2015/10/16 14:02:28
--  
有的,老师,加上了开仓条件。
--  作者:jinzhe
--  发布时间:2015/10/16 14:07:39
--  
请把全部代码贴出来
--  作者:muxia5568
--  发布时间:2015/10/16 15:04:44
--  

mm4:stkindi(\'\',\'boll.mid\',0,5,2),LINETHICK2,COLORYELLOW;

ss4:stkindi(\'\',\'boll.upper\',0,5,2),LINETHICK1,COLORGREEN;

xx4:stkindi(\'\',\'boll.lower\',0,5,2),LINETHICK1,COLORGREEN;

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
JC:CROSS(K,D);
SC:CROSS(D,K);

JC15:=STKINDI(\'\',\'KDJ.JC\',0,3);
SC15:=STKINDI(\'\',\'KDJ.SC\',0,3);

JC30:=STKINDI(\'\',\'KDJ.JC\',0,4);
SC30:=STKINDI(\'\',\'KDJ.SC\',0,4);

n:=10;
sc:=cross(k,j);
jc:=cross(j,k);
n1:=barslast(h>ss4)+1;
n2:=barslast(l<xx4)+1;

if n1<=n and sc and c>mm4 then begin
   平多a:sell(holding>0,holding,market);
   开空a:buyshort(holding=0,1,market);
end

if n2<=n and jc and c<mm4  then begin
   平空a:sellshort(holding<0,holding,market);
   开多a:buy(holding=0,1,market);
end


IF HOLDING<0 AND ALL(LOW>MM4,ENTERBARS+1) AND (JC15 OR JC30) THEN BEGIN
   平空b:SELLSHORT(1,0,MARKET);
   开多b: BUY(HOLDING=0,1,MARKET);
END

IF HOLDING>0 AND ALL(HIGH<MM4,ENTERBARS+1) AND (SC15 OR SC30) THEN BEGIN
   平多b: SELL(1,0,MARKET);
   开空b: BUYSHORT(HOLDING=0,1,MARKET);
END

//止损
if l-enterprice>=5 then
多损:sell(holding>0,holding,market);
if enterprice-h>=5 then
空损:sellshort(holding<0,holding,market);