Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

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

1楼
gsqh_zyp 发表于:2013/4/10 16:23:10

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

请老师帮忙写下,谢谢!

 


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

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

2楼
jinzhe 发表于:2013/4/10 16:26:30
平仓条件加上 h-l>=m
3楼
gsqh_zyp 发表于:2013/4/10 16:42:24

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

4楼
jinzhe 发表于:2013/4/10 16:45:23

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

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

5楼
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

 

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

6楼
gsqh_zyp 发表于:2013/4/11 13:39:03
老师,能帮忙解答下吗?等待中...................
7楼
jinzhe 发表于:2013/4/11 14:05:29
不会加进去吗?
8楼
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

 

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

9楼
jinzhe 发表于:2013/4/11 14:31:59
holding=0也是开多条件啊,nn里面也要加进去的
10楼
gsqh_zyp 发表于:2013/4/11 14:48:29
加了还是和之前一样,没预期的那种效果图片点击可在新窗口打开查看
共12 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 3 queries.