设为首页收藏本站

 找回密码
 注册
查看: 9756|回复: 12
打印 上一主题 下一主题

这个模型没有未来函数,为何有信号闪烁问题?请高手帮我改改。 [复制链接]

Rank: 1

精华
0
UID
115045
积分
29
帖子
8
主题
1
阅读权限
10
注册时间
2013-1-22
最后登录
2013-6-14
跳转到指定楼层
1#
发表于 2013-1-29 18:44:33 |只看该作者 |倒序浏览
Params
    Bool    bInitStatus(false);//初始化标志,修改初始仓位时需设置为True
    Numeric InitMyRealMp(0);//初始当前仓位,正数表示多单,负数表示空单
    Numeric FirstGrid(10);//第一笔交易的间距,最小跳动
    Numeric AddGrid(30);//加仓间距,最小跳动
    Numeric TotalGrids(10);//最大交易次数
    Numeric TrailingGrid(10);//移动止损间距,最小跳动
    Numeric EveryLots(1);//每次开仓手数
    Numeric OffSet(1);//委托价偏差,默认买卖价偏差1个滑点
    Numeric ExitOnCloseMins(15.00);//收盘平仓时间
Vars
    Numeric HighAfterlongEntry;
    Numeric  LowAfterShortEntry;
    Numeric    MyRealMp(0);
    Numeric   MinPoint;
    Numeric  TmpPrice;
    Numeric   TmpLots;
Begin
    MinPoint=MinMove*PriceScale;//当前商品最小变动量*当前商品的计数单位
    MyRealMp=GetGlobalVar(0); //获取MyRealMp全局变量值
    HighAfterlongEntry=GetGlobalVar(1);
    LowAfterShortEntry=GetGlobalVar(2);
    If(BarStatus==0 And (MyRealMp==InvalidNumeric||bInitStatus))  
    {MyRealMp=InitMyRealMp;}
    If(Date<>Date[1])
    {HighAfterlongEntry=High;
    LowAfterShortEntry=Low;
    MyRealMp=0;
    }Else
    {HighAfterlongEntry=Max(HighAfterlongEntry,High);
    LowAfterShortEntry=Min(LowAfterShortEntry,Low);}
    if (Time<ExitOnCloseMins/100)
    {If(MyRealMp>0 And HighAfterlongEntry-Low>=TrailingGrid*MinPoint And(High-Low<TrailingGrid*MinPoint Or (High-Low>=TrailingGrid*MinPoint And Close<Open)))
      {TmpPrice=Max(HighAfterLongEntry-(TrailingGrid-OffSet)*MinPoint,Low);
      TmpLots=Abs(MyRealMp*EveryLots);
      Sell(TmpLots,TmpPrice);
      MyRealMp=0;
      LowAfterShortEntry=Low;
    }else
      If(MyRealMp<0 And High-LowAfterShortEntry>=TrailingGrid*MinPoint And (High-Low<TrailingGrid*MinPoint Or (High-Low>=TrailingGrid*MinPoint And Close>Open)))
      {TmpPrice=Min(LowAfterShortEntry+(TrailingGrid+OffSet)*MinPoint,High);
       TmpLots=Abs(MyRealMp*EveryLots);
       BuyToCover(TmpLots,TmpPrice);
       MyRealMp=0;
       HighAfterLongEntry=0;}
       If(MyRealMp==0 And High-LowAfterShortEntry>=FirstGrid*MinPoint)//第一笔多单开仓
       {TmpPrice=Min(LowAfterShortEntry+(FirstGrid+OffSet)*MinPoint,High);
       TmpLots=EveryLots;
       Buy(TmpLots,TmpPrice);
       MyRealMp=1;
       HighAfterLongEntry=High;
       }Else
       If(MyRealMp>0 And MyRealMp<TotalGrids And High-LowAfterShortEntry>=(FirstGrid+MyRealMp*AddGrid)*MinPoint)//多单加仓
       {TmpPrice=Min(LowAfterShortEntry+(FirstGrid+MyRealMp*AddGrid+OffSet)*MinPoint,High);
       TmpLots=EveryLots;
       Buy(TmpLots,TmpPrice);
       MyRealMp=MyRealMp+1;
       }else
       If(MyRealMp==0 And HighAfterLongEntry-Low>=FirstGrid*MinPoint)//第一笔空单开仓
       {TmpPrice=Max(HighAfterLongEntry-(FirstGrid-OffSet)*MinPoint,Low);
       TmpLots=EveryLots;
       SellShort(TmpLots,TmpPrice);
       MyRealMp=-1;
       LowAfterShortEntry=Low;
       }else
       If(MyRealMp<0 And -1*MyRealMp<TotalGrids And HighAfterLongEntry-Low>=(FirstGrid+Abs(MyRealMp*AddGrid))*MinPoint)//空单加仓
       {TmpPrice=Max(HighAfterLongEntry-(FirstGrid-Abs(MyRealMp*AddGrid)-OffSet)*MinPoint,Low);
       TmpLots=EveryLots;
       SellShort(TmpLots,TmpPrice);
       MyRealMp=MyRealMp-1;}
       }else
       If(Time>=ExitOnCloseMins/100)
       {If(MyRealMp>0)
       {TmpLots=Abs(MyRealMp*EveryLots);
       TmpPrice=close[1];
       Sell(0,TmpPrice);
       MyRealMp=0;}
       If(MyRealMp<0)
       {TmpLots=Abs(MyRealMp*EveryLots);
       TmpPrice=close[1];
       BuyToCover(0,TmpPrice);
       MyRealMp=0;}}
       SetGlobalVar(0,MyRealMp);
       SetGlobalVar(1,HighAfterLongEntry);
       SetGlobalVar(2,LowAfterShortEntry);
       Commentary("MyRealMp="+Text(MyRealMp));
       Commentary("HighAfterLLowAfterShortEntry="+Text(LowAfterShortEntry));
       End




Rank: 1

精华
0
UID
114377
积分
19
帖子
18
主题
1
阅读权限
10
注册时间
2012-12-25
最后登录
2014-1-16
2#
发表于 2013-1-29 22:23:48 |只看该作者
条件中存在类似 Close<Open 这样的条件,在实盘中 此条件是变化的;会导致信号消失

使用道具 举报

Rank: 1

精华
0
UID
115045
积分
29
帖子
8
主题
1
阅读权限
10
注册时间
2013-1-22
最后登录
2013-6-14
3#
发表于 2013-1-30 10:34:24 |只看该作者
那如何改呀?

使用道具 举报

Rank: 4

精华
0
UID
8063
积分
279
帖子
200
主题
9
阅读权限
50
注册时间
2010-4-2
最后登录
2017-9-15
4#
发表于 2013-2-5 13:43:41 |只看该作者
杨民 发表于 2013-1-30 10:34
那如何改呀?

你先说下你的思路吧,close < open 的

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15203
积分
1411
帖子
397
主题
35
阅读权限
60
注册时间
2010-8-14
最后登录
2017-12-29
5#
发表于 2013-2-5 14:34:50 |只看该作者
把所有判断close和open关系的都用close[1]和open[1]代替

使用道具 举报

Rank: 4

精华
0
UID
8063
积分
279
帖子
200
主题
9
阅读权限
50
注册时间
2010-4-2
最后登录
2017-9-15
6#
发表于 2013-2-5 22:10:08 |只看该作者
flyfish 发表于 2013-2-5 14:34
把所有判断close和open关系的都用close[1]和open[1]代替

这个未必是他的真实意思的表达的

使用道具 举报

Rank: 2

精华
0
UID
111858
积分
68
帖子
36
主题
8
阅读权限
30
注册时间
2012-8-2
最后登录
2013-6-5
7#
发表于 2013-2-9 15:26:28 |只看该作者
这个模型我正在研究,导致信号闪烁的原因很多,并不一定是模型中引用了未来函数这一种,可能是引用了实时行情数据等原因。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
73474
积分
1249
帖子
695
主题
30
阅读权限
60
注册时间
2011-10-22
最后登录
2015-11-6
8#
发表于 2013-2-11 18:43:44 |只看该作者
有哪位高手,帮助把1#的交易模型修改一下啊~~~~~~~~~~~~~~~~~~~~~

使用道具 举报

Rank: 2

精华
0
UID
110307
积分
63
帖子
32
主题
6
阅读权限
30
注册时间
2012-5-3
最后登录
2014-5-22
9#
发表于 2013-2-18 19:44:55 |只看该作者
这个模型问题很大的,截拳道上面的,用了很多的现价指令

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
112423
积分
147
帖子
105
主题
3
阅读权限
40
注册时间
2012-9-10
最后登录
2018-2-26
10#
发表于 2013-2-18 23:00:29 |只看该作者
仲孝 发表于 2013-2-18 19:44
这个模型问题很大的,截拳道上面的,用了很多的现价指令

一般没什么问题又好用的模型不会有人发源码出来的

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-1 03:16

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部