设为首页收藏本站

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

为什么开平仓都在同一根k线 求解 [复制链接]

Rank: 1

精华
0
UID
179169
积分
27
帖子
15
主题
10
阅读权限
10
注册时间
2014-1-13
最后登录
2014-5-21
跳转到指定楼层
1#
发表于 2014-4-15 10:24:23 |只看该作者 |倒序浏览
Condition1 = MA4[1]<MA2[1]&&MA4[2]>MA2[2];
          Condition2 = MA4[1]<MA3[1]&&MA4[2]>MA3[2];


          If( MarketPosition ==0 && Condition1 ==True)
           {
           SellShort(CC,Open);
           }
          
          If(MarketPosition == -1)
          {
            If(Condition2 == true)
                {
                 BuyToCover(CC,Open);
                 }

Rank: 6Rank: 6

精华
0
UID
116229
积分
2373
帖子
2247
主题
18
阅读权限
70
注册时间
2013-3-4
最后登录
2019-3-24
2#
发表于 2014-4-16 09:22:02 |只看该作者
如果条件都满足了,是有可能同一根K线开仓的。

楼主可以在公式里增加一些调试语句,看看条件的满足情况。

另, MarketPosition 的值同一根K线上,开仓之后就会改变的,仅靠它控制不了同一根K线开平仓

使用道具 举报

Rank: 1

精华
0
UID
179169
积分
27
帖子
15
主题
10
阅读权限
10
注册时间
2014-1-13
最后登录
2014-5-21
3#
发表于 2014-4-16 11:20:37 |只看该作者
ample 发表于 2014-4-16 09:22
如果条件都满足了,是有可能同一根K线开仓的。

楼主可以在公式里增加一些调试语句,看看条件的满足情况。

您好,我这样改写之后还是同一根k线反复开平,请看看哪里出错了谢谢
  NumericSeries  MA1;
          NumericSeries  MA2;
          NumericSeries  MA3;
          NumericSeries  MA4;
         
Begin
      MinPoint = MinMove*PriceScale;
          MyEntryprice = AvgEntryPrice;
          MA1 = AverageFC(CLOSE,N1);
          MA2 = MA1+N3*AvgTrueRange(N2);
          MA3 = MA1-N3*AvgTrueRange(N2);
          MA4 = AverageFC(CLOSE,5);
          Condition1 = MA4[1]<MA2[1] && MA4[2]>MA2[2] && MA4[1]>MA3[1] && MA4[2]>MA3[2];
          Condition2 = MA4[1]>MA3[1] && MA4[2]<MA3[2] && MA4[1]<MA2[1] && MA4[2]<MA2[2];
          
          
          If( MarketPosition <>-1 && Condition1 ==True)
          
           {
           SellShort(CC,Close);
           }
          
          If(MarketPosition == -1)
          {
            If(Condition2 == true)
                {
                 BuyToCover(CC,Open);
                 }

使用道具 举报

Rank: 1

精华
0
UID
181496
积分
21
帖子
10
主题
2
阅读权限
10
注册时间
2014-2-28
最后登录
2015-12-7
4#
发表于 2014-5-4 17:03:40 |只看该作者
要用A函数,你这系统在实盘之中,buy函数几乎有着严重的滞后性

使用道具 举报

Rank: 1

精华
0
UID
185843
积分
29
帖子
23
主题
3
阅读权限
10
注册时间
2014-4-29
最后登录
2019-3-9
5#
发表于 2014-5-22 15:15:13 |只看该作者
If( MarketPosition ==0 && Condition1 ==True)
           {
           SellShort(CC,Open);
           }

把 MarketPosition ==0 改为 MarketPosition !=-1看看

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
174690
积分
2359
帖子
15
主题
2
阅读权限
70
注册时间
2013-10-29
最后登录
2014-6-25
6#
发表于 2014-5-23 10:16:41 |只看该作者
本帖最后由 TBLearning 于 2014-5-23 10:18 编辑

Condition1 = MA4[1]<MA2[1]&&MA4[2]>MA2[2];
          Condition2 = MA4[1]<MA3[1]&&MA4[2]>MA3[2];

           If(MarketPosition == -1)
          {
                If(Condition2 == true)
                {
                     BuyToCover(CC,Open);
                 }
          }
          else   If( MarketPosition ==0 && Condition1 ==True)
           {
                SellShort(CC,Open);
           }
           这样是不会平掉同一Bar上开进去的单子的
         

使用道具 举报

Rank: 4

精华
0
UID
112550
积分
263
帖子
89
主题
14
阅读权限
50
注册时间
2012-9-17
最后登录
2022-1-19
7#
发表于 2014-5-23 15:24:11 |只看该作者
要我就这样处理:
Condition1 = MA4[1]<MA2[1]&&MA4[2]>MA2[2];
          Condition2 = MA4[1]<MA3[1]&&MA4[2]>MA3[2];


          If( MarketPosition ==0 && Condition1 ==True)
           {
           SellShort(CC,Open);
           }
           
          If(MarketPosition == -1)
          {
            If(Condition2 == true && BarsSinceEntry()>1)
                {
                 BuyToCover(CC,Open);
                 }

使用道具 举报

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

bottom

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

GMT+8, 2024-5-5 11:51

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部