开拓者期货期权程序化系统交易论坛

标题: 指南中的跟踪止损为什么不好用? [打印本页]

作者: lanmeng_818    时间: 2013-1-31 23:07:30     标题: 指南中的跟踪止损为什么不好用?

MyEntryPrice = AvgEntryPrice;
    If(BarsSinceentry == 0)
    {
        HighestAfterEntry = Close;
        LowestAfterEntry = Close;
        If(MarketPosition <> 0)
        {
            HighestAfterEntry = Max(HighestAfterEntry,AvgEntryPrice);  
            LowestAfterEntry = Min(LowestAfterEntry,AvgEntryPrice);  
        }
    }else
    {
        HighestAfterEntry = Max(HighestAfterEntry,High);
     LowestAfterEntry = Min(LowestAfterEntry,Low);   
   }

    If(MarketPosition==1) // 有多仓的情况
    {
        If(HighestAfterEntry[1] >= MyEntryPrice + DTTrailingStart2*MinPoint)   // 第二级跟踪止损的条件表达式
        {
            If(Low <= HighestAfterEntry[1] - TrailingStop2*MinPoint)
            {
                MyExitPrice = HighestAfterEntry[1] - TrailingStop2*MinPoint;
                If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                Sell(0,MyExitPrice);
            }
        }else if(HighestAfterEntry[1] >= MyEntryPrice + TrailingStart1*MinPoint)// 第一级跟踪止损的条件表达式
        {
            If(Low <= HighestAfterEntry[1] - TrailingStop1*MinPoint)
            {
                MyExitPrice = HighestAfterEntry[1] - TrailingStop1*MinPoint;
                If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                Sell(0,MyExitPrice);
            }
        }else if(Low <= MyEntryPrice - StopLoss*MinPoint)//可以在这里写上初始的止损处理
        {
            MyExitPrice = MyEntryPrice - StopLoss*MinPoint;
            If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
            Sell(0,MyExitPrice);
        }
    }else if(MarketPosition==-1) // 有空仓的情况
    {
        If(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart2*MinPoint)   // 第二级跟踪止损的条件表达式
        {
            If(High >= LowestAfterEntry[1] + TrailingStop2*MinPoint)
            {
                MyExitPrice = LowestAfterEntry[1] + TrailingStop2*MinPoint;
                If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                BuyToCover(0,MyExitPrice);
            }
        }else if(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart1*MinPoint)// 第一级跟踪止损的条件表达式
        {
            If(High >= LowestAfterEntry[1] + TrailingStop1*MinPoint)
            {
                MyExitPrice = LowestAfterEntry[1] + TrailingStop1*MinPoint;
                If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                BuyToCover(0,MyExitPrice);
            }
        }else If(High >= MyEntryPrice + StopLoss*MinPoint)//可以在这里写上初始的止损处理
        {
            MyExitPrice = MyEntryPrice + StopLoss*MinPoint;
            If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
            BuyToCover(0,MyExitPrice);
        }
    }
实盘的时候为什么会在开仓同时就出现平仓信号,而且平仓信号一直变动,最后符合条件才停止。
请问是什么原因,我是完全按照指南写的,有什么问题么?请高手指点。
作者: lanmeng_818    时间: 2013-2-1 18:38:49

问题已经解决。
作者: 梦d解析    时间: 2013-3-18 22:54:51

lanmeng_818 发表于 2013-2-1 18:38
问题已经解决。

我遇到了同样的问题
能请教一下楼主是怎么解决的吗?
多谢先了
作者: lanmeng_818    时间: 2013-3-20 12:35:02

梦d解析 发表于 2013-3-18 22:54
我遇到了同样的问题
能请教一下楼主是怎么解决的吗?
多谢先了

你策略里一定有收盘平仓,先去掉就好了。
作者: yuliang0898    时间: 2018-3-28 20:39:32

用收盘影响这么大吗?鸡肋真多。
都什么时代了,安装个目录还要英文的;一次报警功能也是鸡肋,都不改。
是软件去适应市场,而不是客户来适应软件。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2