设为首页收藏本站

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

v4中跟踪止损的例子, [复制链接]

Rank: 5Rank: 5

精华
0
UID
26303
积分
924
帖子
186
主题
89
阅读权限
60
注册时间
2011-2-21
最后登录
2017-1-6
跳转到指定楼层
1#
发表于 2011-5-19 17:32:58 |只看该作者 |倒序浏览
copy过去发现不对,经常在同一根k线上开平仓
If(BarsSinceentry == 1)
    {
        HighestAfterEntry = Max(AvgEntryPrice,Close[1]);    // 开仓后的下一个Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
        LowestAfterEntry = Min(AvgEntryPrice,Close[1]);     // 开仓后的下一个Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
    }else if(BarsSinceEntry > 1)
    {
        HighestAfterEntry = Max(HighestAfterEntry,High[1]); // 记录下前一个Bar的最高点,用于当前Bar的跟踪止损判断
        LowestAfterEntry = Min(LowestAfterEntry,Low[1]);    // 记录下前一个Bar的最低点,用于当前Bar的跟踪止损判断
    }

    MinPoint = MinMove*PriceScale;
    MyEntryPrice = AvgEntryPrice;
    If(MarketPosition==1) // 有多仓的情况
    {
        If(HighestAfterEntry >= MyEntryPrice + TrailingStart2*MinPoint)   // 第二级跟踪止损的条件表达式
        {
            If(Low <= HighestAfterEntry - TrailingStop2*MinPoint)
            {
                MyExitPrice = HighestAfterEntry - TrailingStop2*MinPoint;
                If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                Sell(0,MyExitPrice);
            }
        }else if(HighestAfterEntry >= MyEntryPrice + TrailingStart1*MinPoint)// 第一级跟踪止损的条件表达式
        {
           If(Low <= HighestAfterEntry - TrailingStop1*MinPoint)
            {
                MyExitPrice = HighestAfterEntry - TrailingStop1*MinPoint;
                If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                Sell(0,MyExitPrice);
            }
        }else //可以在这里写上初始的止损处理
        {
            MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
            If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
            Sell(0,MyExitPrice);
        }
    }else if(MarketPosition==-1) // 有空仓的情况
    {
        If(LowestAfterEntry <= MyEntryPrice - TrailingStart2*MinPoint)   // 第二级跟踪止损的条件表达式
        {
            If(High >= LowestAfterEntry + TrailingStop2*MinPoint)
            {
                MyExitPrice = LowestAfterEntry + TrailingStop2*MinPoint;
                If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                BuyToCover(0,MyExitPrice);
            }
        }else if(LowestAfterEntry <= MyEntryPrice + TrailingStart1*MinPoint)// 第一级跟踪止损的条件表达式
        {
           If(High >= LowestAfterEntry + TrailingStop1*MinPoint)
            {
                MyExitPrice = LowestAfterEntry - TrailingStop1*MinPoint;
                If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                BuyToCover(0,MyExitPrice);
            }
        }else //可以在这里写上初始的止损处理
        {
            MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
            If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
            BuyToCover(0,MyExitPrice);
        }
    }

Rank: 5Rank: 5

精华
0
UID
26303
积分
924
帖子
186
主题
89
阅读权限
60
注册时间
2011-2-21
最后登录
2017-1-6
2#
发表于 2011-5-19 17:33:30 |只看该作者
同样的 固定止损止盈的例子,就执行的很好

使用道具 举报

Rank: 4

精华
0
UID
21354
积分
456
帖子
45
主题
9
阅读权限
50
注册时间
2010-12-11
最后登录
2021-10-26
3#
发表于 2011-6-30 16:47:59 |只看该作者
版主呢?
运用交易系统的能力远比交易系统本身更重要

使用道具 举报

Rank: 1

精华
0
UID
110961
积分
32
帖子
7
主题
1
阅读权限
10
注册时间
2012-6-14
最后登录
2022-7-28
4#
发表于 2012-7-24 16:07:59 |只看该作者
同问,如果跟踪止损后仍然满足原始的开仓条件,会导致多余的开仓,所以要把跟踪止损后再次入场的门槛提高,比如说破了之前的最高点,再开多单,请问该怎么写?

使用道具 举报

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

bottom

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

GMT+8, 2024-5-26 11:04

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部