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

急救啊,求管理帮忙写一个SAR,固定15分钟算一次结果 - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 一点头绪没用啊,求管理帮忙指引一下啊

     

  • TB技术人员: 不明白啥意思

     

  • TB客服: http://www.tradeblazer.net/forum/thread-17457-1-1.html

     

  • 网友回复: //------------------------------------------------------------------------
    // 简称: SAR_system
    // 名称:
    // 类别: 公式应用
    // 类型: 用户应用
    // 输出: 穿堂风
    //------------------------------------------------------------------------

    Params
            Numeric AfStep(0.02);
            Numeric AfLimit(0.2) ;
            Numeric malen(120);
            Numeric stopLoss(1);
            Numeric BuyLots(1);
            Numeric offset(0);
    Vars
            Numeric oParCl( 0 );
            Numeric oParOp( 0 );
            Numeric oPosition( 0 );
            Numeric oTransition( 0 );
            NumericSeries oParOp_s;
            Numeric oParOp_p;
            Numeric i_offset;
            Numeric ma;
            Bool bUpline;
            string strkey;
            string strValue;
            Numeric i_stopLoss;
            
    Begin

            ma = Average(Open,malen);
            bUpline = Open>= ma;
            ParabolicSAR( AfStep, AfLimit, oParCl, oParOp, oPosition, oTransition ) ;
            oParOp_s = oParOp;
            oParOp_p = oParOp_s[1];
            i_offset = offset*MinMove*PriceScale;
            i_stopLoss = stopLoss*(OpenD(0)/100);
            
            Commentary("oParOp:"+Text(oParOp));
            Commentary("oTransition:"+Text(oTransition));
            Commentary("oPosition:"+Text(oPosition));
    If(CurrentBar>malen)
    {
            PlotNumeric("oParCl",oParCl);
            If(malen != 0)
            {
                    PlotNumeric("ma",ma);
            }


            If(MarketPosition == 0)
            {
                    If(malen == 0)
                    {
                            bUpline = True;
                    }

                    If(oTransition == 1 and bUpline)
                    {
                            Buy(BuyLots,Max(Open,oParOp_p)+i_offset);
                            Return;
                    }
                   
                    If(malen == 0)
                    {
                            bUpline = False;
                    }

                    If(oTransition == -1 and bUpline==False)
                    {
                            SellShort(BuyLots,Min(Open,oParOp_p)-i_offset);
                            Return;
                    }
            }

            If(MarketPosition == 1)
            {
                    If(malen == 0)
                    {
                            bUpline = False;
                    }
                   
                    If(LastEntryPrice-Low>=i_stopLoss)
                    {
                            Sell(BuyLots,Min(Open,LastEntryPrice-i_stopLoss)-i_offset);
                            Return;
                    }
                    If(oPosition == -1)
                    {

                            If(oTransition == -1 and bUpline==False)
                            {
                                    SellShort(BuyLots,Min(Open,oParOp_p)-i_offset);
                            }
                            Else
                            {
                                    Sell(BuyLots,Min(Open,oParOp_p)-i_offset);
                            }
                    }
            }

            If(MarketPosition == -1)
            {
                    If(malen == 0)
                    {
                            bUpline = True;
                    }

                    If(High-LastEntryPrice>=i_stopLoss)
                    {
                            BuyToCover(BuyLots,Max(Open,LastEntryPrice+i_stopLoss)+i_offset);
                            Return;
                    }               
                    If(oPosition == 1)
                    {
                            If(oTransition == 1 and bUpline)
                            {
                                    Buy(BuyLots,Max(Open,oParOp_p)+i_offset);
                            }
                            Else
                            {
                                    BuyToCover(BuyLots,Max(Open,oParOp_p)+i_offset);
                            }
                    }
            }
    }
    End

    //------------------------------------------------------------------------
    // 编译版本        GS2010.12.08
    // 用户版本        2011/09/05 12:21
    // 版权所有        穿堂风
    // 更改声明        TradeBlazer Software保留对TradeBlazer平台
    //                        每一版本的TrabeBlazer公式修改和重写的权利
    //------------------------------------------------------------------------
    看了这个指令,在这个原有基础上,只做判断出场规则,进场规则不变可以吗?

     

  • 网友回复: 其实想请教高手帮忙写一个跨周期的SAR函数,在追涨杀跌置顶帖子中有人提到过,但是追涨杀跌老师没写,有高手一起研究一下吗。

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

相关文章

    没有相关内容