设为首页收藏本站

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

为什么无平仓信号 [复制链接]

Rank: 3Rank: 3

精华
0
UID
100877
积分
180
帖子
66
主题
14
阅读权限
40
注册时间
2012-2-27
最后登录
2020-3-26
跳转到指定楼层
1#
发表于 2014-7-22 09:41:29 |只看该作者 |倒序浏览
橡胶指数30分钟,起始日期5.26日,5.27日10:00时开仓后,14:00时为什么没有平仓信号??

//橡胶指数m30.txt
Params
   

Vars
Numeric LongLots(1);                  // 开多仓的手数
Numeric ShortLots(1);                 // 开空仓的手数                          
NumericSeries MyEntryPrice;        // 开仓价格
NumericSeries HighestAfterEntry;        // 开仓后出现的最高价
NumericSeries LowestAfterEntry;         // 开仓后出现的最低价

Begin


  If(MarketPosition!=1 )

     {                 

               Buy(LongLots,Close);
                           MyEntryPrice=Close;
                           If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                                Return;
      }


               
//止损

    If(BarsSinceentry == 0)
    {
        HighestAfterEntry = Close;
        LowestAfterEntry = Close;
        If(MarketPosition <> 0)
        {
            HighestAfterEntry = Max(HighestAfterEntry,MyEntryPrice);   // 开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
            LowestAfterEntry = Min(LowestAfterEntry,MyEntryPrice);     // 开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
        }
    }else
    {
        HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
        LowestAfterEntry = Min(LowestAfterEntry,Low);    // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
    }



    If(MarketPosition==1) // 有多仓的情况
    {
        If(HighestAfterEntry >= MyEntryPrice + 16110)   // 第二级跟踪止损的条件表达式
        {
            If(Close <= HighestAfterEntry - 317)
            {
                                
                Sell(LongLots,Close);
                                If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                               
            }
        }else if(HighestAfterEntry >= MyEntryPrice + 96)// 第一级跟踪止损的条件表达式
        {
            If(Close <= HighestAfterEntry - 6026)
            {
               
                Sell(LongLots,Close);
                                If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                               
            }
        }else if(Close <= MyEntryPrice - 94)//可以在这里写上初始的止损处理
        {
            Sell(LongLots,Close);
                       
                        If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                       
        }
    }

    PlotNumeric("MyEntryPrice",MyEntryPrice);
        PlotNumeric("MyEntryPrice1",MyEntryPrice-94);
End

Rank: 3Rank: 3

精华
0
UID
100877
积分
180
帖子
66
主题
14
阅读权限
40
注册时间
2012-2-27
最后登录
2020-3-26
2#
发表于 2014-7-22 09:44:59 |只看该作者
附图
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 8Rank: 8

精华
1
UID
64747
积分
782
帖子
192
主题
33
阅读权限
200
注册时间
2011-9-10
最后登录
2016-3-22
3#
发表于 2014-7-22 10:41:13 |只看该作者
就上面代码的三种止损条件都没问题, 但是那个二级追踪止损价位有点离谱
If(HighestAfterEntry >= MyEntryPrice + 16110)   // 第二级跟踪止损的条件表达式

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
100877
积分
180
帖子
66
主题
14
阅读权限
40
注册时间
2012-2-27
最后登录
2020-3-26
4#
发表于 2014-7-22 11:32:32 |只看该作者
上面两个止损不成立,它执行第三个就可以了,为什么没有平仓
if(Close <= MyEntryPrice - 94)//可以在这里写上初始的止损处理
        {
            Sell(LongLots,Close);
                        
                        If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                        
        }

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
100877
积分
180
帖子
66
主题
14
阅读权限
40
注册时间
2012-2-27
最后登录
2020-3-26
5#
发表于 2014-7-22 11:40:24 |只看该作者
pepsi 发表于 2014-7-22 10:41
就上面代码的三种止损条件都没问题, 但是那个二级追踪止损价位有点离谱
If(HighestAfterEntry >= MyEntryPr ...

上面两个止损不成立,它执行第三个就可以了,为什么没有平仓
if(Close <= MyEntryPrice - 94)//可以在这里写上初始的止损处理
        {
            Sell(LongLots,Close);
                        
                        If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                        
        }

使用道具 举报

Rank: 8Rank: 8

精华
1
UID
64747
积分
782
帖子
192
主题
33
阅读权限
200
注册时间
2011-9-10
最后登录
2016-3-22
6#
发表于 2014-7-22 14:31:04 |只看该作者
MyEntryPrice输出出来检查值对不对, 建议在开仓语句结束后写MyEntryPrice = AvgEntryPrice; 现成的函数可以用, 取得持仓均价.

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
100877
积分
180
帖子
66
主题
14
阅读权限
40
注册时间
2012-2-27
最后登录
2020-3-26
7#
发表于 2014-7-22 14:41:48 |只看该作者
pepsi 发表于 2014-7-22 14:31
MyEntryPrice输出出来检查值对不对, 建议在开仓语句结束后写MyEntryPrice = AvgEntryPrice; 现成的函数可以 ...

只开了一手,不存在持仓均价,myentryprice值没有问题

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
100877
积分
180
帖子
66
主题
14
阅读权限
40
注册时间
2012-2-27
最后登录
2020-3-26
8#
发表于 2014-7-22 17:35:04 |只看该作者
删除一级止损就有平仓信号,不知道为什么?????
//橡胶指数m30.txt
Params
   

Vars
Numeric LongLots(1);                  // 开多仓的手数
Numeric ShortLots(1);                 // 开空仓的手数                          
NumericSeries MyEntryPrice;        // 开仓价格
NumericSeries HighestAfterEntry;        // 开仓后出现的最高价
NumericSeries LowestAfterEntry;         // 开仓后出现的最低价

Begin


  If(MarketPosition!=1 )

     {                 

               Buy(LongLots,Close);
                           MyEntryPrice=Close;
                           If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                                Return;
      }


               
//止损

    If(BarsSinceentry == 0)
    {
        HighestAfterEntry = Close;
        LowestAfterEntry = Close;
        If(MarketPosition <> 0)
        {
            HighestAfterEntry = Max(HighestAfterEntry,MyEntryPrice);   // 开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
            LowestAfterEntry = Min(LowestAfterEntry,MyEntryPrice);     // 开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
        }
    }else
    {
        HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
        LowestAfterEntry = Min(LowestAfterEntry,Low);    // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
    }



    If(MarketPosition==1) // 有多仓的情况
    {
        If(HighestAfterEntry >= MyEntryPrice + 16110)   // 第二级跟踪止损的条件表达式
        {
            If(Close <= HighestAfterEntry - 317)
            {
                                
                Sell(LongLots,Close);
                                If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                               
            }
        
        }else if(Close <= MyEntryPrice - 94)//可以在这里写上初始的止损处理
        {
            Sell(LongLots,Close);
                       
                        If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                       
        }
    }

    PlotNumeric("MyEntryPrice",MyEntryPrice);
        PlotNumeric("MyEntryPrice1",MyEntryPrice-94);
End
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
100877
积分
180
帖子
66
主题
14
阅读权限
40
注册时间
2012-2-27
最后登录
2020-3-26
9#
发表于 2014-7-22 17:37:22 |只看该作者
pepsi 发表于 2014-7-22 14:31
MyEntryPrice输出出来检查值对不对, 建议在开仓语句结束后写MyEntryPrice = AvgEntryPrice; 现成的函数可以 ...

删除一级止损就有平仓信号,不知道为什么?????
//橡胶指数m30.txt
Params
   

Vars
Numeric LongLots(1);                  // 开多仓的手数
Numeric ShortLots(1);                 // 开空仓的手数                          
NumericSeries MyEntryPrice;        // 开仓价格
NumericSeries HighestAfterEntry;        // 开仓后出现的最高价
NumericSeries LowestAfterEntry;         // 开仓后出现的最低价

Begin


  If(MarketPosition!=1 )

     {                 

               Buy(LongLots,Close);
                           MyEntryPrice=Close;
                           If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                                Return;
      }


               
//止损

    If(BarsSinceentry == 0)
    {
        HighestAfterEntry = Close;
        LowestAfterEntry = Close;
        If(MarketPosition <> 0)
        {
            HighestAfterEntry = Max(HighestAfterEntry,MyEntryPrice);   // 开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
            LowestAfterEntry = Min(LowestAfterEntry,MyEntryPrice);     // 开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
        }
    }else
    {
        HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
        LowestAfterEntry = Min(LowestAfterEntry,Low);    // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
    }



    If(MarketPosition==1) // 有多仓的情况
    {
        If(HighestAfterEntry >= MyEntryPrice + 16110)   // 第二级跟踪止损的条件表达式
        {
            If(Close <= HighestAfterEntry - 317)
            {
                                
                Sell(LongLots,Close);
                                If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                                
            }
        
        }else if(Close <= MyEntryPrice - 94)//可以在这里写上初始的止损处理
        {
            Sell(LongLots,Close);
                        
                        If(AlertEnabled )
                      {
                      Alert("报警信息...");
                      }
                        
        }
    }

    PlotNumeric("MyEntryPrice",MyEntryPrice);
        PlotNumeric("MyEntryPrice1",MyEntryPrice-94);
End
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
100877
积分
180
帖子
66
主题
14
阅读权限
40
注册时间
2012-2-27
最后登录
2020-3-26
10#
发表于 2014-7-23 09:00:39 |只看该作者
顶起

使用道具 举报

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

bottom

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

GMT+8, 2024-5-13 00:06

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部