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

信号闪烁问题,TBQ股票交易策略 [开拓者 TB]

  • 咨询内容: 我写的程序中,开仓平仓都是用的上一条BAR的数据来触发。但是,还是经常提示信号闪烁。不知道为什么,请高手指教。

    比如开仓:
    Dkc= MACDLine[2]<MACDLine[1] && MarketPosition==0;  //第一次开仓,快线上移       
    If (Dkc == True )                                   
      {
                            MyEntryPrice=Open;
                            Buy(Num,MyEntryPrice);
                            Commentary("快线上移,第1次开多仓: "+Text(MyEntryPrice));
      }

    比如平仓:
    Kspc= SignalLine[2]>SignalLine[1] && PositionProfit[1]<0  ;     //亏损时,慢线拐头向下平仓.
      If(KSPC == True && LastEntryDate!=Date )                          // 亏损平仓条件
           {
                            MyExitPrice=Open;
                            Sell(0,MyExitPrice);
                            Commentary("亏损且MACD慢线下移-止损: "+Text(MyExitPrice));
            }

     

     来源:CXH99.COM

  • TB技术人员: PositionProfit是个函数,应该不能直接回溯
    可以先把它赋值给一个序列变量,再用序列变量回溯来判断

     

  • TB客服:
    追涨杀跌 发表于 2020-8-31 17:50
    PositionProfit是个函数,应该不能直接回溯
    可以先把它赋值给一个序列变量,再用序列变量回溯来判断
    ...

    不用 PositionProfit , 改为 用 lastentryprice 来判断,还是会出现信号闪烁,这是怎么回事?
    在股票行情上运行的

    If(High >= (LastEntryPrice + Round(0.5*AvgTR[1],2)) && CurrentEntries < nEntries)

    AvgTR[1]  : 前一条BAR 的ATR值。
    nEntries : 参数,是个固定值

     

  • 网友回复:
    追涨杀跌 发表于 2020-8-31 17:50
    PositionProfit是个函数,应该不能直接回溯
    可以先把它赋值给一个序列变量,再用序列变量回溯来判断
    ...

    PositionProfit 是个函数, 为什么 PositionProfit[1] , 编译的时候没有报错?
    如果定义的变量不是序列变量,用回溯语句时, 编译时会报错。

     

  • 网友回复:
  • zhangzijian 发表于 2020-9-2 10:54
    PositionProfit 是个函数, 为什么 PositionProfit[1] , 编译的时候没有报错?
    如果定义的变量不是序列变 ...

    有些系统提供的函数,本身是有序列数据性质的,回溯去读不会报错,但读到的数据实际还是当前bar的。
    而当前bar的数据都是变化,所以有可能信号闪烁。
    至于你说把PositionProfit去掉,还是会闪烁,那就要跟踪,到底引起变化的是哪个变量。

 

有思路,想编写各种指标公式,交易模型,选股公式,还原公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流或微信号:cxh99cxh99  进行 有偿收费 编写!

怎么收费,代编流程等详情请点击阅读!

(注:由于人数限制,QQ或微信请选择方便的一个联系我们就行,加好友时请简单备注下您的需求,否则无法通过。谢谢您!)


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

相关文章

    没有相关内容