以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请问为什么后面macd金叉以后KD的K值,在第一个K值到了25以下后,后面还会有开多信号呢,哪里写的有问题啊  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=96541)

--  作者:洋葱猪肉卷
--  发布时间:2016/4/20 15:05:33
--  请问为什么后面macd金叉以后KD的K值,在第一个K值到了25以下后,后面还会有开多信号呢,哪里写的有问题啊

variable:n=0,m=0;
diff:=stkindi(\'\',\'macd.diff\',0,24,4);
dea:=stkindi(\'\',\'macd.dea\',0,24,4);
k:=stkindi(\'\',\'kdj.k\',0,datatype);
d:=stkindi(\'\',\'kdj.d\',0,datatype);
金叉:=cross(diff,dea);
死叉:=cross(dea,diff);
if 金叉 or 死叉 then begin
   n:=0;
   m:=0;
end
 
if k<25 then n:=n+1;
if k>75 then m:=m+1;
 
if n=1  then begin
     buy(holding<=0,1,marketr);
end
if C-AVGENTERPRICE>10 then begin
sell(1,0,marketr);
end
IF AVGENTERPRICE-C>6 THEN BEGIN
SELL(1,HOLDING,MARKET);
end

请问为什么后面macd金叉以后KD的K值,在第一个K值到了25以下后,后面还会有开多信号呢,哪里写的有问题啊

--  作者:jinzhe
--  发布时间:2016/4/20 15:10:19
--  
说明后面的k没有小于25的,导致n的值一直是1,所以平仓之后满足条件会再开仓
--  作者:洋葱猪肉卷
--  发布时间:2016/4/20 15:17:52
--  
请问那怎么写啊,就是金叉后K小于25只做一次,那怎么写啊
--  作者:jinzhe
--  发布时间:2016/4/20 15:21:54
--  
if n=1 and ref(n,1)=0 then begin
     buy(holding<=0,1,marketr);
end
 
就改这一句

--  作者:洋葱猪肉卷
--  发布时间:2016/4/20 15:22:52
--  
好的,谢谢