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

多次累计亏损到定额才加仓的问题。 [开拓者 TB]

  • 咨询内容: 多次累计亏损到定额才加仓的问题:
    亏损即加仓容易实现。
    但多次交易后累计亏损到一定金额才加仓,怎么写呢?
    举例:

    1手交易:-500,+100,-600,累计盈利:-1000元,转2手

    2手交易:+100,-600,累计盈利:-1000*1-500*2<=-2000,转3手

    3手交易:-50,+1100,累计盈利:-1000*1-500*2+3*1050>=1000,恢复1手仓位。

     

  • TB技术人员: 给你一个亏损加仓的例子作为参考,你自己改改吧
    // 简称: DoubleMA_01
    // 名称: 双均线策略_亏损加仓
    // 类别: 公式应用
    // 类型: 用户应用
    // 输出:
    //------------------------------------------------------------------------

    Params
            Numeric FastLength(5);
            Numeric SlowLength(20);
            Numeric Lots(1);                        // 基本下单单位
            Numeric MaxLots(10);                // 最大下单单位
    Vars
            NumericSeries AvgValue1;
            NumericSeries AvgValue2;
            NumericSeries myLots;                // 每次下单的手数
            NumericSeries myNetProfit;        // 累计的最大净利润
    Begin
            AvgValue1 = AverageFC(Close,FastLength);
            AvgValue2 = AverageFC(Close,SlowLength);
    //        PlotNumeric("MA1",AvgValue1);
    //        PlotNumeric("MA2",AvgValue2);       
           
            If(TotalTrades == 0)
            {
                    myLots = Lots;
                    myNetProfit = 0;
            }
           

            If(MarketPosition == 1 And AvgValue1[1] < AvgValue2[1])
            {
                    Sell(0,Open);
                    If(NetProfit >= myNetProfit[1])
                    {
                            myLots = Lots;
                    }Else
                    {
                            myLots = Min((myLots[1] + Lots),MaxLots);
                    }
            }       
            If(MarketPosition == -1 And AvgValue1[1] > AvgValue2[1])
            {
                    BuyToCover(0,Open);
                    If(NetProfit >= myNetProfit[1])
                    {
                            myLots = Lots;
                    }Else
                    {
                            myLots = Min((myLots[1] + Lots),MaxLots);
                    }
            }
           
            If(MarketPosition != 1 And AvgValue1[1] > AvgValue2[1])
            {
                    Buy(myLots,Open);
            }
            If(MarketPosition != -1 And AvgValue1[1] < AvgValue2[1])
            {
                    SellShort(myLots,Open);
            }       
           
            myNetProfit = Max(myNetProfit[1],NetProfit);
    End

     

  • TB客服: 谢谢!

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  有需要帮忙请点击这里留言!!!进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容