随便copy and paste 一些别人写的。

Discussion in 'AmiBroker' started by ghn4ever, Nov 7, 2009.

  1. Description:
    This is a simple long only trend following system. Just load it into the \"Automatic Analysis\" window and push \"Scan\", \"Back test\" and \"Report\" to view the result.

    Formula:

    SetTradeDelays(0,0,0,0);
    SetPositionSize(10, spsPercentOfEquity );
    SetOption("AllowSameBarExit" , True );
    // If this option is not set true positions that are exited at the same bar
    remains open
    SetOption("PriceBoundChecking", False);
    // This option must be set false in order to exit at specified stop price and
    not bar close


    //LK=Optimize("Trend", 50, 30, 60, 10 ) ;
    //FF=Optimize("Trend", 20, 10, 40, 10 ) ;
    //StopLevel=Optimize("Stop",0.1,0.05,0.5,0.05 ) ;


    StopLevel = 0.2;

    LK=50;

    FF=10;


    A1= IIf( L> Ref(HHV( Close,LK),-5), 1, 0);

    A2= Sum( A1, LK ) ;

    A3= IIf(C>0, FF, 0);


    Buy = Cross(A2,A3);

    Sell = 0;

    trailARRAY = Null;
    trailstop = 0;

    for( i = 1; i < BarCount; i++ )
    {

    if( trailstop == 0 AND Buy[ i ] )
    {
    trailstop = High[ i ] * (1-stoplevel);
    }

    else Buy[ i ] = 0; // remove excess buy signals

    if( trailstop > 0 )
    {
    trailstop = Max( High[ i ] * (1-stoplevel), trailstop );
    trailARRAY[ i ] = trailstop;
    }

    if( trailstop > 0 AND Low[ i ] < trailstop )
    {
    Sell[ i ] = 1;
    SellPrice[ i ] = trailstop;
    trailstop=0;
    }

    }

    PlotShapes(Buy*shapeUpArrow,colorBlue,0,Low);
    PlotShapes(Sell*shapeDownArrow,colorRed,0,High);

    Plot( Close,"Price",colorBlack,styleBar);
    Plot( trailARRAY,"trailing stop level", colorRed );
     
  2. Advanced MA System..

    Formula:

    /////////////////Optimize////////////////////
    x = Optimize("B", 20, 1, 30, 1 );
    y = Optimize("S", 20, 1, 30, 1 );
    z = Optimize("L", 30, 2, 100, 2 );


    /////////////////PercentR////////////////////
    function PercentR( periods )
    {
    return -100 * ( HHV( H, periods ) - C )/( HHV( H, periods ) - LLV( L, periods
    ) );
    }

    /////////////////TrendScore ////////////////////
    TrendScore =
    IIf(C>=Ref(C,-11),1,-1)+
    IIf(C>=Ref(C,-12),1,-1)+
    IIf(C>=Ref(C,-13),1,-1)+
    IIf(C>=Ref(C,-14),1,-1)+
    IIf(C>=Ref(C,-15),1,-1)+
    IIf(C>=Ref(C,-16),1,-1)+
    IIf(C>=Ref(C,-17),1,-1)+
    IIf(C>=Ref(C,-18),1,-1)+
    IIf(C>=Ref(C,-19),1,-1)+
    IIf(C>=Ref(C,-20),1,-1);

    /////////////////AROON////////////////////

    Period = 14;
    LLVBarsSince = LLVBars(L, Period) + 1;
    HHVBarsSince = HHVBars(H, Period) + 1;

    AroonDn = 100 * (Period - LLVBarsSince) / (Period - 1);
    AroonUp = 100 * (Period - HHVBarsSince) / (Period - 1);



    /////////////////Basic////////////////////

    _SECTION_BEGIN("Price");
    SetChartOptions(0,chartShowArrows|chartShowDates);
    _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g,
    Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
    Plot( C, "Close", ParamColor("Color", colorBlack ), styleLine);
    _SECTION_END();

    _SECTION_BEGIN("EMA");
    P = ParamField("Price field",-1);
    Periods = Param("Periods", 7, 2, 200, 1, 10 );
    Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ),
    ParamStyle("Style") );
    _SECTION_END();

    _SECTION_BEGIN("EMA2");
    P = ParamField("Price field",-1);
    Periods = Param("Periods", 15, 2, 200, 1, 10 );
    Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ),
    ParamStyle("Style") );
    _SECTION_END();


    _SECTION_BEGIN("EMA1");
    P = ParamField("Price field",-1);
    Periods = Param("Periods", 15, 2, 200, 1, 10 );
    Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ),
    ParamStyle("Style") );
    _SECTION_END();

    _SECTION_BEGIN("Percent Bands");
    P = ParamField("Price field",-1);
    Periods = Param("Periods", 15, 2, 100, 1 );
    Width = Param("Width%", 2, 0, 10, 0.05 );
    Color = ParamColor("Color", colorCycle );
    Style = ParamStyle("Style");
    CenterLine = EMA( P, Periods );
    Plot( (1 + Width * 0.01) * CenterLine, "%EnvTop" + _PARAM_VALUES(), Color,
    Style );
    Plot( (1 - Width * 0.01) * CenterLine, "%EnvBot" + _PARAM_VALUES(), Color,
    Style );
    _SECTION_END();

    _SECTION_BEGIN("Percent Bands1");
    P = ParamField("Price field",-1);
    Periods = Param("Periods", 15, 2, 100, 1 );
    Width = Param("Width%", 2, 0, 10, 0.05 );
    Color = ParamColor("Color", colorCycle );
    Style = ParamStyle("Style");
    CenterLine = EMA( P, Periods );
    Plot( (1 + Width * 0.01) * CenterLine, "%EnvTop" + _PARAM_VALUES(), Color,
    Style );
    Plot( (1 - Width * 0.01) * CenterLine, "%EnvBot" + _PARAM_VALUES(), Color,
    Style );
    _SECTION_END();

    _SECTION_BEGIN("EMA3");
    P = ParamField("Price field",-1);
    Periods = Param("Periods", 15, 2, 200, 1, 10 );
    Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ),
    ParamStyle("Style") );
    _SECTION_END();

    _SECTION_BEGIN("EMA4");
    P = ParamField("Price field",-1);
    Periods = Param("Periods", 15, 2, 200, 1, 10 );
    Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ),
    ParamStyle("Style") );
    _SECTION_END();



    /////////////////Twiggs Money Flow////////////////////

    periods = Param( "Periods", 21, 5, 200, 1 );
    TRH=Max(Ref(C,-1),H);
    TRL=Min(Ref(C,-1),L);
    TR=TRH-TRL;
    ADV=V*((C-TRL)-(TRH-C))/ IIf(TR==0,9999999,TR);
    WV=V+(Ref(V,-1)*0);
    SmV= Wilders(WV,periods);
    SmA= Wilders(ADV,periods);

    TMF= IIf(SmV==0,0,SmA/SmV);




    ///////////////////////////Buy/////////////////////////////////

    //PositionSize=1500;

    Buy=IIf((ADX(14)>20 AND ADX(14)>Ref(ADX(14),-1)) OR V>EMA(V,20)
    ,EMA(C,5)>EMA(C,63) AND EMA(C,63)>Ref(EMA(C,63),-1)
    AND Close>Open
    //AND C>1 AND EMA(V,20)*EMA(C,20)>50000
    AND AroonUp>70
    //AND TMF>0
    AND TSF(percentR(14),30)>-50
    AND trendscore>5,0);



    ///////////////////////////Sell/////////////////////////////////

    Sell=IIf ((ADX(14)>20 AND ADX(14)>Ref(ADX(14),-1)) OR V>EMA(V,20),
    C<EMA(C,30)
    //AND Close<Open
    //AND EMA(percentR(14),30)<-50
    //AND trendscore<-5
    AND TMF<0 //OR (TMF>0 AND C<0.97*EMA(C,30))
    AND AroonDn>70
    ,(EMA(C,5)<0.97*EMA(C,63))
    //AND Close<Open
    //AND EMA(percentR(14),30)<-50
    //AND AroonDn>70
    //AND TMF<0

    //AND trendscore<-5
    )
    ;


    Buy = ExRem( Buy, Sell );
    Sell = ExRem( Sell, Buy );

    shape = Buy * shapeUpArrow + Sell * shapeDownArrow;

    PlotShapes( shape, IIf( Buy, colorGreen, colorRed ), 0, IIf( Buy, Low, High )
    );
    //GraphXSpace = 105;




    ///////////////////////////Filter/////////////////////////////////

    Filter=C>5;
    //EMA(V,20)*EMA(C,20)>50000;

    AddColumn( ADX(14), "ADX", 1.2 );
    AddColumn( C, "C", 1.2 );
    AddColumn( V, "V", 1.2 );
    AddColumn( EMA(V,20), "EMAV20", 1.2 );
    AddColumn( EMA(V,20)*EMA(C,20), "V*C", 1.2 );