Skip to main content

MAGIC TREND



*/
/*Magical Trend Indicator with update
Created By : Rakesh Solanki
For www.nascenttraders.com
Date: 11/02/2017  Cost 4500/- inr */
_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();

Comments

Popular posts from this blog

ST GAP BUY SELL

 _SECTION_BEGIN("st gap buy sell"); Plot( C, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); SetBarsRequired(sbrAll,sbrAll); xx=BarIndex();x=xx;Lx=LastValue(x); rightStrength=Optimize("R_S",Param("R_S",3,1,50,1) ,1,50,1); leftStrength=Optimize("L_S",Param("L_S",3,1,50,1), 1,50,1); function pkID(rightStrength,leftStrength) { pk=H>Ref(HHV(H,leftStrength),-1) AND H>=Ref(HHV(H,rightStrength),rightStrength); return pk; } function trID(rightStrength,leftStrength) { tr=L<Ref(LLV(L,leftStrength),-1) AND L<=Ref(LLV(L,rightStrength),rightStrength); return tr; } pk=pkID(rightStrength,leftStrength); tr=trID(rightStrength,leftStrength); SetChartBkColor(ColorRGB(0,0,0));SetChartOptions(0 ,chartShowDates); SetBarFillColor(IIf(C>O,colorGreen,IIf(C<=O,colorRed,colorLightGrey))); pkHigh1=Ref(ValueWhen(pk,H,1),-(rightStreng...

TB 100.1.1 tsf tema linear

_SECTION_BEGIN("Magnified Market Price"); //by Vidyasagar, vkunisetty@yahoo.com// SetChartOptions(0,chartShowArrows|chartShowDates); FS=Param("Font Size",30,11,100,1); GfxSelectFont("Times New Roman", FS, 700, True ); GfxSetBkMode( colorWhite ); GfxSetTextColor( ParamColor("Color",colorWhite) ); Hor=Param("Horizontal Position",750,1,1200,1); Ver=Param("Vertical Position",7,1,830,1); GfxTextOut(""+C , Hor , Ver ); YC=TimeFrameGetPrice("C",inDaily,-1); DD=Prec(C-YC,2); xx=Prec((DD/YC)*100,2); GfxSelectFont("Times New Roman", 11, 700, True ); GfxSetBkMode( colorWhite ); GfxSetTextColor(ParamColor("Color",colorWhite) ); //GfxTextOut("Open - "+O+" High - "+H+" Low - "+L+" Close - "+C, Horr , Verr-14 ); //GraphXSpace = Param("Graph Space",500,-10,500,1); _SECTION_END(); _SECTION_BEGIN("Trend Blaster V1.2"); SetChartBkColor(...

QQE LINE

function QQELine( indiValue, deltaRSIValue, smoothPeriod ) { local prevVal, prevIndi, qqeValue, indi_sum; local indi_diff, higherCond, lowerCond, result; prevVal = prevIndi = 0; qqeValue = Null; indi_sum = indiValue + deltaRSIValue; indi_diff = indiValue - deltaRSIValue; for ( i = 1; i < BarCount; i++ ) { prevVal = qqeValue[i - 1]; prevIndi = indiValue[i - 1]; higherCond = prevIndi > prevVal AND indiValue[i] > prevVal; lowerCond = prevIndi < prevVal AND indiValue[i] < prevVal; qqeValue[i] = Iif( indiValue[i] == prevVal, prevVal, Iif( lowerCond, Min( prevVal, indi_sum[i] ), Iif( higherCond, Max( prevVal, indi_diff[i] ), Iif( indiValue[i] > prevVal, indi_diff[i], indi_sum[i] ) ) ) ); } result = EMA( qqeValue, smoothPeriod );// EL XAverage is EMA return result; } // Modified Exponential Moving Average function MEMA( Price, Period ) { local smoothing, result; smoothing = 1 / Max( 1, Period ); result = AMA( Pric...