以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  如何定义在信号出现后N个周期内如果价格波动不超过M的范围,则即使出现开平仓条件也不执行。  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=50907)

--  作者:gsqh_zyp
--  发布时间:2013/4/10 16:23:10
--  如何定义在信号出现后N个周期内如果价格波动不超过M的范围,则即使出现开平仓条件也不执行。

如何定义在信号出现后N个周期内如果价格波动不超过M的范围,则即使出现开平仓条件也不执行。

请老师帮忙写下,谢谢!

 


图片点击可在新窗口打开查看此主题相关图片如下:212.jpg
图片点击可在新窗口打开查看

如上图在很小周期内价格波动也很小,但满足了开平仓条件,想屏蔽掉这些信号。


--  作者:jinzhe
--  发布时间:2013/4/10 16:26:30
--  
平仓条件加上 h-l>=m
--  作者:gsqh_zyp
--  发布时间:2013/4/10 16:42:24
--  

嗯,还有个条件是在出现信号后个N个周期内,例如当开仓信号出现后的10个周期内满足h-l>=m则平仓


--  作者:jinzhe
--  发布时间:2013/4/10 16:45:23
--  

nn:=barslast(开仓条件)+1;

if nn<=10 and h-l>m then 开仓语句;


--  作者:gsqh_zyp
--  发布时间:2013/4/11 11:22:10
--  

老师,由于是新手,上面的语句还是不明白。

 


图片点击可在新窗口打开查看此主题相关图片如下:123.jpg
图片点击可在新窗口打开查看
上图最左边出现一个“开空”信号,随后出现一个平仓信号,但是平仓信号之后价格波动又没超过m,又没超过平仓信号后nn个周期在次出现开仓信号,怎样写假如平仓信号出现后在nn周期内价格波动没有超过m,不发出前一个相同的信号,如果出现反向开仓信号的话则继续发出。

runmode:0;
 
input:n1(4,1,100,1);
input:n2(9,1,100,1);
input:n3(18,1,100,1);
 
ma1:=ma(close,n1);
ma2:=ma(close,n2);
ma3:=ma(close,n3);
 
if holding=0 then begin
    if close>ma1 and ma1>ma2 and ma2>ma3 then
        buy(1,1,limitr,close);
end
 
if holding=0 then begin
    if close<ma1 and ma1<ma2 and ma2<ma3 then
         buyshort(1,1,limitr,close);
end
 
if holding>0 then begin
    if ma1<ma2 then
        sell(1,holding,limitr,close);
end
 
if holding<0 then begin
    if ma1>ma2 then
        sellshort(1,holding,limitr,close);
end

 

以上是克罗均线代码,麻烦老师在上述代码中完成以上提成的思路,谢谢。


--  作者:gsqh_zyp
--  发布时间:2013/4/11 13:39:03
--  
老师,能帮忙解答下吗?等待中...................
--  作者:jinzhe
--  发布时间:2013/4/11 14:05:29
--  
不会加进去吗?
--  作者:gsqh_zyp
--  发布时间:2013/4/11 14:30:46
--  

runmode:0;

input:m(10,1,100,1); 
input:n1(4,1,100,1);
input:n2(9,1,100,1);
input:n3(18,1,100,1);
 
ma1:=ma(close,n1);
ma2:=ma(close,n2);
ma3:=ma(close,n3);

开多:=CLOSE>ma1 and ma1>ma2 and ma2>ma3;
开空:=close<ma1 and ma1<ma2 and ma2<ma3;
nn1:=BARSLAST(开多)+1;
nn2:=BARSLAST(开多)+1;
tj1 := nn1<=10 and h-l>m;
tj2 := nn2<=10 and h-l>m;

if holding=0 then tj1 begin
    if 开多 then
        buy(1,1,limitr,close);
end
 
if holding=0 then tj2 begin
    if 开空 then
         buyshort(1,1,limitr,close);
end
 
if holding>0 then begin
    if ma1<ma2 then
        sell(1,holding,limitr,close);
end
 
if holding<0 then begin
    if ma1>ma2 then
        sellshort(1,holding,limitr,close);
end

 

是这样把条件加进去吗?但看没变化,跟预期的不一样


--  作者:jinzhe
--  发布时间:2013/4/11 14:31:59
--  
holding=0也是开多条件啊,nn里面也要加进去的
--  作者:gsqh_zyp
--  发布时间:2013/4/11 14:48:29
--  
加了还是和之前一样,没预期的那种效果图片点击可在新窗口打开查看