您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

为什么无平仓信号 [开拓者 TB]

  • 咨询内容: 橡胶指数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

     

  • TB技术人员: 附图

     

  • TB客服: 就上面代码的三种止损条件都没问题, 但是那个二级追踪止损价位有点离谱
    If(HighestAfterEntry >= MyEntryPrice + 16110)   // 第二级跟踪止损的条件表达式

     

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

     

  • 网友回复:
    pepsi 发表于 2014-7-22 10:41
    就上面代码的三种止损条件都没问题, 但是那个二级追踪止损价位有点离谱
    If(HighestAfterEntry >= MyEntryPr ...

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

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容