Convert AFL Code into a MT4 Indicator

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #109220 quote
    Bogdan35
    Participant
    New

    Hello, please convert an AFL Code indicator into an MT4 indicator. Please see the attached as well as the code below.

    /*Magical Trend Indicator with update
    Created By : Rakesh Solanki
    For www.nascenttraders.com
    Date: 11/02/2017*/
    _SECTION_BEGIN("Magic Trend Indicator Update");
    SetBarsRequired(sbrAll,sbrAll);
    SetFormulaName( "Magic Trend Indicator Update" );
    SetOption( "Initialequity", 100000 );
    SetOption( "AccountMargin", 0.25 );
    SetOption( "MinShares", 1 );
    MaxOpenPos = Param( "MaxOpenPos", 20, 1, 200, 1 );
    SetOption( "MaxOpenPositions", MaxOpenPos );
    SetOption( "PriceBoundChecking", 1 );
    SetOption( "CommissionMode", 1 );
    SetOption( "CommissionAmount", 0.01 );
    PositionSize = -400 / ( MaxOpenPos );
    P = Param("Period",20,2,25,1);
    m = Param("Multiplier",3,0.1,5,0.1);
    A = ATR(P);
    for(i=0;i<P;i++)
    {
     S[i] = C[i]-m*(A[i]);
     T[i] = 1;
    }
    for(i=P;i<BarCount;i++)
    {
     if(C[i] > S[i-1])
     {
     if(T[i-1]==1)
     {
     S[i] = Max(C[i] - m*A[i],S[i-1]);
     T[i] = 1;
     }
     else
     {
     S[i] = C[i] - m*A[i];
     T[i] = 1;
     }
     
     }
     else
     {
     if(T[i-1]==-1)
     {
     S[i] = Min(C[i] + m*A[i],S[i-1]);
     T[i] = -1;
     }
     else
     {
     S[i] = C[i] + m*A[i];
     T[i] = -1;
     }
     }
    }
    Buy = Cover = C>S;
    Short = Sell = C<S; 
    Buy = ExRem(Buy,Sell OR Short);
    Sell = ExRem(Sell,Buy);
    Short = ExRem(Short,Cover OR Buy);
    Cover = ExRem(Cover,Short);
    BuyPrice = ValueWhen(Buy,C,1);
    SellPrice = ValueWhen(Sell,C,1);
    ShortPrice = ValueWhen(Short,C,1);
    CoverPrice = ValueWhen(Cover,C,1);
    Offset = -12;
    PlotShapes(Buy*shapeUpArrow,colorBrightGreen,0,Min(S,L),Offset);
    PlotShapes(Short*shapeDownArrow,colorRed,0,Max(S,H),Offset);
    PlotShapes(Cover*shapeHollowUpArrow,colorBrightGreen,0,Min(S,L),Offset);
    PlotShapes(Sell*shapeHollowDownArrow,colorRed,0,Max(S,H),Offset);
    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(S,"STOP",IIf(C>S,colorBrightGreen,colorRed),styleDots|styleStaircase|styleThick|styleNoTitle );
    PlotOHLC(O,H,L,C,"Close",colorDefault,styleCandle|styleNoTitle);
    GfxSetOverlayMode(1);
    GfxSelectFont("Verdana", 12, 800, True ); 
    GfxSetBkMode(0); 
    GfxSetTextColor(ColorRGB(18,18,18)); 
    GfxTextOut("Created By: Rakesh Solanki", 800 , 430 );
    GfxSelectFont("Verdana", 14, 800, True ); 
    GfxSetBkMode(1); 
    GfxTextOut("www.nascenttraders.com" , 800 ,400 );
    Open_Long = Flip( Buy, Sell ); 
    Open_Short = Flip( Sell, Buy ); 
    Buy_Price = ValueWhen( Buy, BuyPrice, 1 ); 
    Short_Price = ValueWhen( Short, ShortPrice, 1 ); 
    Sell_Price = IIf( Sell, ValueWhen( Sell, SellPrice, 1 ), Short_Price ); 
    Cover_Price = IIf( Cover, ValueWhen( Cover, CoverPrice, 1 ), Buy_Price ); 
    Profit = IIf( Open_Long, ( Close - Buy_Price ), IIf( Open_Short, ( Short_Price - Close ), 0 ) ); 
    Last_Profit = IIf( Ref( Open_Long, -1 ) == 1 AND Open_Long != 1, ( Sell_Price - Buy_Price ), IIf( Ref( Open_Short, -1 ) == 1 AND Open_Short != 1, ( Short_Price - Cover_Price ), 0 ) ); 
    Cum_Profit[0] = Last_Profit[0]; 
    PreviousProfit = ValueWhen(Last_Profit!=0,Last_Profit,1); 
    for ( i = 1;i < BarCount;i++ ) 
    { 
     Cum_Profit[i] = Cum_Profit[i-1] + Last_Profit[i]; 
    } 
    Trade[0] = 0; 
    for ( i = 1;i < BarCount;i++ ) 
    { 
     if ( Buy[i] == 1 OR Short[i] == 1 ) 
     { 
     Trade[i] = Trade[i-1] + 1; 
     } 
     else 
     { 
     Trade[i] = Trade[i-1]; 
     } 
    } 
    // Trade Report // 
    TR = ParamToggle( "Trade Report", "Show|Hide", 1 ); 
     
    if ( TR == 1 ) 
    { 
     GfxSelectFont( "Verdana", 10, 100 ); 
     GfxSetBkMode( 1 ); 
     GfxSetTextColor( ColorRGB(50,50,50) ); 
     y = Status( "pxchartheight" );
     
     GfxTextOut( ( "Total Trades : " + WriteVal( Trade, 3.0 ) ), 13, y - 125 ); 
     GfxTextOut( ( "Total Profit : " + WriteVal( Cum_Profit, 4.2 ) ), 13, y - 100 ); 
     GfxTextOut( ( "Previous Profit : " + WriteVal( PreviousProfit, 2.2 ) ), 13, y - 50 ); 
     GfxTextOut( ( "Price : " + WriteVal( Close, 2.2 ) ), 13, y - 75 ); 
     GfxTextOut( ( "Current Profit : " + WriteVal( Profit, 2.2 ) ), 13, y - 25 ); 
    } 
    _SECTION_END();
    #109223 quote
    Vonasi
    Moderator
    Master

    These ProRealCode forums are dedicated to the ProRealTime platform and the use of ProRealCode. Conversion from other formats to ProRealCode can usually be carried out for free but conversion to other formats such as MT4 is only supported via the paid for programming service that can be found under ‘help’.

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.

Convert AFL Code into a MT4 Indicator


ProBuilder: Indicators & Custom Tools

New Reply
Author
author-avatar
Bogdan35 @bogdan35 Participant
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by Vonasi
6 years, 4 months ago.

Topic Details
Forum: ProBuilder: Indicators & Custom Tools
Language: English
Started: 10/04/2019
Status: Active
Attachments: No files
Logo Logo
Loading...