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

开拓者止盈代码[开拓者公式]

  • 咨询内容: 下面代码的思路就是两根均线,金叉做多,死叉做空,价格盈利达到400点后,止盈价 = 达到过的最高价 — (达到过的最高价 — 开仓价) * 0.5。
    以TA为例,假设金叉开多的价格为7000元,那么价格在达到7400后,比如价格最高到过7500,那么如果价格回落到 7500 - (7500 - 7000) * 0.5 = 7250元时,平多止盈。

    Params
            Numeric longpara(30);
            Numeric shortpara(10);
            Numeric StopWin(0.5); //止盈系数,最大盈利回吐该系数作为止盈价
            Numeric WinPoint(400); //止盈起始值(以价格计算)
    Vars
            NumericSeries MAlong; //长周期均线
            NumericSeries MAshort; //短周期均线
            Bool buycond;
            Bool sellcond;
            Numeric BuyOpen(100000); //多单开仓价
            Numeric SellOpen(0); //空单开仓价
            Numeric BuyStopWin(0); //多单止盈价
            Numeric SellStopWin(0); //空单止盈价
            Numeric OpenBar; //开仓K线的索引值
            Numeric OpenCount; //当前K线到开仓K线之间的个数
            Numeric MostHigh; //开仓后达到过的最高价
            Numeric MostLow; //开仓后达到过的最低价
    Begin
            MAlong = Average(Close, longpara);
            MAshort = Average(Close, shortpara);

            buycond = CrossOver(MAshort, MAlong);
            sellcond = CrossUnder(MAshort, MAlong);
            
            //止盈代码
            OpenCount = CurrentBar - GetGlobalVar(1); //计算开仓K线到当前K线的个数
            If(MarketPosition == 1)
            {
                    MostHigh = Highest(High, OpenCount); //计算开仓后到当前K线为止的最高价
                    If(MostHigh - GetGlobalVar(0) >= WinPoint) //开仓后最大浮盈(以价格计算)超过止盈起始值
                    {BuyStopWin = MostHigh - (MostHigh - GetGlobalVar(0)) * StopWin;} //计算止盈价格
                    If(Low <= BuyStopWin) //达到止盈条件时止盈
                    {Sell(0, Min(Open, BuyStopWin));}
            }
            If(MarketPosition == -1)
            {
                    MostLow = Lowest(Low, OpenCount);
                    If(GetGlobalVar(0) - MostLow >= WinPoint)
                    {SellStopWin = MostLow + (GetGlobalVar(0) - MostLow) * StopWin;}
                    If(High >= SellStopWin)
                    {BuyToCover(0, Max(Open, SellStopWin));}
            }
            //止盈代码结束

            If(buycond)
            {
                    Buy(0, Close);
                    SetGlobalVar(0, Close); //记录开仓价
                    SetGlobalVar(1, CurrentBar); //记录开仓K线位置
                    Return;
            }
            If(sellcond)
            {
                    SellShort(0, Close);
                    SetGlobalVar(0, Close); //记录开仓价
                    SetGlobalVar(1, CurrentBar); //记录开仓K线位置
                    Return;
            }
    End

 

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

可联系技术人员 QQ: 262069696  点击在线交流进行 有偿 编写!不贵!点击查看价格!

 


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

相关文章

    没有相关内容