一个简单顺势交易系统的例子

该交易系统的建仓条件为:

  1. 前两个Bar收阳,并呈上涨趋势;
  2. 当前价格为最近前2个Bar最高价的回落,而且回落幅度大于0.382。回落幅度是相对于最高价到最低价的范围。

该交易系统的平仓条件为:

  1. 当前价格的获利价格点数大于建仓时最低价到最低价的范围。

该交易系统的止损条件为:

  1. 当前价格从建仓时的最高价格的回落大于最低价到最高价的范围的0.5。
Params

    Numeric TrailingSet(0.382);       // 回撤开仓比例设置,从最高点下跌的比例

    Numeric StopLossSet(0.5);        // 止损比例设置

Vars

    Bool startCondition(False);         // 启动条件

    Bool EntryCondition(False);        // 开仓条件

    Bool ExitCondition(False);          // 平仓条件

    NumericSeries highestValue(0);  // 前2个周期的最高价

    NumericSeries lowestValue(0);   // 前2个周期的最低价

    Numeric myEntryPrice(0);          // 开仓价格

    Numeric myExitPrice(0);            // 平仓价格        

Begin

    highestValue = highestValue[1];

    lowestValue = lowestValue[1];

    If(MarketPosition ==0 ) // 当前空仓

    {

        If(Close[2]>Open[2] && Close[1] > Open[1] && Close[1] > Close[2])

        {

            startCondition = True;

            highestValue = max(high[2],high[1]);

            lowestValue = min(low[2],low[1]);

        }

        

        If(startCondition)

        {

            EntryCondition = ((highestValue - Open) / (highestValue - lowestValue) > TrailingSet )&& // 开盘价即满足回撤条件,用开盘价进行交易

            (Open > highestValue -((highestValue - lowestValue)*StopLossSet)) ; //  开盘价不能低于预设的止损价                                                

            If( EntryCondition)

            {

                Buy(1,Open);

            }Else // 再看其它价格是否满足

            {

                EntryCondition = (highestValue - Low) / (highestValue - lowestValue) > TrailingSet ; // 最低价满足回撤条件,用低于TrailingSet设置的最近价位建仓

                If(EntryCondition)

                {

                    myEntryPrice = highestValue - (HighestValue - LowestValue ) * TrailingSet;

                    myEntryPrice = IntPart(myEntryPrice / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 对价格进行处理                                        

                    If(myEntryPrice >= low &&  myEntryPrice  StopLossSet;        // 止损条件满足

        If(ExitCondition)

        {

            myExitPrice =  highestValue - (HighestValue - LowestValue ) * StopLossSet;                        

            myExitPrice = IntPart(myExitPrice / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 对价格进行处理

            Sell(CurrentContracts(),myExitPrice);

        }Else // 获利平仓

        {

            ExitCondition = (high - AvgEntryPrice()) > (highestValue - lowestValue); // 获利平仓条件满足

            If(ExitCondition)

            {

                myExitPrice =  AvgEntryPrice() + (HighestValue - LowestValue );                                

                myExitPrice = IntPart(myExitPrice / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 对价格进行处理

                If (myExitPrice >= low && myEntryPrice <= high)

                {

                    Sell(CurrentContracts(),myExitPrice);

                }Else

                {

                    Sell(CurrentContracts(),Close);

                }

            }

        }

    }

End

关键字:程序化交易, TradeBlazer, minmove, low


风险提示及免责条款

市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部