设为首页收藏本站

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

请问版主策略进阶中的跟踪止损问题 [复制链接]

Rank: 3Rank: 3

精华
0
UID
87709
积分
222
帖子
112
主题
27
阅读权限
40
注册时间
2011-12-20
最后登录
2015-7-23
跳转到指定楼层
1#
发表于 2012-1-15 15:49:59 |只看该作者 |倒序浏览
我使用了策略进阶中的跟踪止损代码,但是出来的效果不能理解,有时候是按照我的设定跟踪止损的,有时候不是,不知道问什么?
源代码如下:
Params               
        Numeric TrailingStart5(50);      // 跟踪止损启动设置5   
        Numeric TrailingStop5(0.10);      // 跟踪止损设置5
Vars
        Numeric MinPoint;           // 一个最小变动单位,也就是一跳
           Numeric MyEntryPrice;       // 开仓价格
        Numeric MyExitPrice;        // 平仓价格
       
          NumericSeries HighestAfterEntry;        // 开仓后出现的最高价
          NumericSeries LowestAfterEntry;         // 开仓后出现的最低价
       
        BoolSeries Con1;
        BoolSeries Con2;
Begin         
         If(BarsSinceentry == 0)
    {       
        HighestAfterEntry = Close;
        LowestAfterEntry = Close;
        If(MarketPosition <> 0)
        {
            HighestAfterEntry = Max(HighestAfterEntry,AvgEntryPrice);   // 开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
            LowestAfterEntry = Min(LowestAfterEntry,AvgEntryPrice);     // 开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
        }
    }else
    {
        HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
     LowestAfterEntry = Min(LowestAfterEntry,Low);    // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
    }   
       
    MinPoint = MinMove*PriceScale;       
    MyEntryPrice = AvgEntryPrice;
    If(MarketPosition==1) // 有多仓的情况
    {       
        If(HighestAfterEntry[1] >= MyEntryPrice + TrailingStart5*MinPoint)   // 第5级跟踪止损的条件表达式
        {
            If(Low <= HighestAfterEntry[1] - TrailingStop5*TrailingStart5*MinPoint)
            {
                MyExitPrice = HighestAfterEntry[1] - TrailingStop5*TrailingStart5*MinPoint;
                If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
           Sell(0,MyExitPrice);
        PlotString("zhiying","止赢",(Low-0.5*MinMove),Red);                               
            }
    }                        
        
    }else if(MarketPosition==-1) // 有空仓的情况
    {       
            If(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart5*MinPoint)   // 第5级跟踪止损的条件表达式
        {
            If(High >= LowestAfterEntry[1] + TrailingStart5*TrailingStop5*MinPoint)
            {
                MyExitPrice = LowestAfterEntry[1] + TrailingStart5*TrailingStop5*MinPoint;
                If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
           BuyToCover(0,MyExitPrice);
                PlotString("zhiying","止赢",(Low-0.5*MinMove),Red);                               
            }
         }   
    }       

//开仓
    If(Con1)
    {                
         Buy(0,Close);               
    }else If(Con2)
    {                    
        SellShort(0,Close);
    }       
       
End
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
1111111111111111

Rank: 5Rank: 5

精华
0
UID
7099
积分
614
帖子
120
主题
22
阅读权限
60
注册时间
2010-3-3
最后登录
2019-3-24
2#
发表于 2012-1-15 20:03:56 |只看该作者
据我观察,记录最高最低价部分有问题。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
85182
积分
849
帖子
302
主题
11
阅读权限
60
注册时间
2011-12-8
最后登录
2013-10-28
3#
发表于 2012-1-16 15:21:13 |只看该作者
能不能详细说明一下?
http://qpic.cn/NifLLplMk若能一切随它去,便世间自在人。
      ---Derivatives

使用道具 举报

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

bottom

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

GMT+8, 2024-5-17 15:47

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部