以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教关于重复信号  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=58541)

--  作者:punkcat401
--  发布时间:2013/11/8 13:33:47
--  请教关于重复信号
“K线上穿MA60超过100跳后,回落50跳”这两个条件,如果K线上穿MA60超过100跳后,没等回落够50跳时又再次反复穿越MA60,似乎又要重新计算
能否在第一个条件即上穿100成立后,忽略K线重复上穿均线的行为,直到第二个条件成立再出信号呢

--  作者:jinzhe
--  发布时间:2013/11/8 13:52:39
--  
技术咨询中请稍等
--  作者:jinzhe
--  发布时间:2013/11/8 14:43:53
--  

variable:n=0,hh=0,cs=0;
ma60:=ma(c,60);
if n=0 and cross(c,ma60) then begin//只有当n=0时才开始记录超过多少点,以后即使上穿也不再记录
  n:=1;
  hh:=h;//记录最高价当根K线最高价
  cs:=c;//记录当时的初始CLOSE
end

 

if h>hh then hh:=h;

 

//K线上穿MA60超过100跳:hh>cs+100*mindiff

//回落50跳:low<hh-50*mindiff

if hh>cs+100*mindiff and low<hh-50*mindiff then

   begin

   .....//出信号,开平仓语句

   n:=0;

   end

 

 

重点是用全局变量来记录变化的状态

用了3个全局变量

N来代表是否有上穿

N=0的时候表示第一次上穿,这个时候记录当时的H,

cs是不变的记录当时上穿时的CLOSE,
HH是变化的,记录上穿之后的最高价

 

所以HH>KK+100*MINDIFF表示的是上涨了100跳,然后low<hh-50*mindiff 表示又回落了50点

然后这个时候标记N重置为0,再有上穿的时候,系统就会重复上面的步骤


--  作者:punkcat401
--  发布时间:2013/11/8 14:59:58
--  
以下是引用jinzhe在2013/11/8 14:43:53的发言:

 

然后这个时候标记N重置为0,再有上穿的时候,系统就会重复上面的步骤

也就是在这段代码后,写上“IF N=0 AND 其他开仓条件 then........”即可,是吗 


--  作者:jinzhe
--  发布时间:2013/11/8 15:05:20
--  
不是这样的,重复的意思是已经在代码里面体现出来了,
--  作者:punkcat401
--  发布时间:2013/11/8 15:07:34
--  
以下是引用jinzhe在2013/11/8 15:05:20的发言:
不是这样的,重复的意思是已经在代码里面体现出来了,

那如何将这一大段代码加入开仓条件中呢

是这样吗

if hh>kk+100*mindiff and h<hh-50*mindiff AND 其他条件 then buy();

n:=0;

[此贴子已经被作者于2013/11/8 15:09:04编辑过]

--  作者:jinzhe
--  发布时间:2013/11/8 15:08:48
--  
开平仓条件体现在哪里?
--  作者:punkcat401
--  发布时间:2013/11/8 15:10:12
--  
以下是引用jinzhe在2013/11/8 15:08:48的发言:
开平仓条件体现在哪里?

比如之前说的两个条件加上另一个条件A,那么就buy,应该怎么写呢


--  作者:jinzhe
--  发布时间:2013/11/8 15:16:49
--  

if hh>cs+100*mindiff and low<hh-50*mindiff and 条件A  then BEGIN

   BUY(HOLDING=0,1,MARKET);

    n:=0;

END