Script: _SECTION_BEGIN( "Mother Candle Formation Strategy" ); SetPositionSize( 1, spsShares ); SetBarsRequired( sbrAll, sbrAll ); SetChartOptions( 0, chartShowArrows | chartShowDates ); SetChartBkGradientFill( colorBlack, colorBlack, colorBlack ); Plot( C, "", IIf( C > O, colorBlueGrey, IIf( C <= O, colorOrange, colorLightGrey ) ), 64 | styleNoTitle, 0, 0, 0, 0 ); GraphXSpace = 10; DN = DateNum(); TN = TimeNum(); function Asign( x ) { y = Null; for( i = 0; i < BarCount; i++ ) { y[i] = x; } return y; } Target = Param( "Target %", 1, 0.1, 50, 0.01 ) / 100; StopLoss = Param( "Stop Loss %", 0.75, 0.1, 50, 0.01 ) / 100; DaysTrades = Param( "Trades / Day", 2, 0, 50, 1 ); DayStart = DN != Ref( DN, -1 ); DayEnd = Ref( DayStart, 1 ); ////If below line ( MotherCandle();) is in Black color please install microsoft visual c++ 2017 redistributable package (x86). //you Can dowload from microsoft website" https://go.microsoft.com/fwlink/?LinkId=746571 ". MotherCandle(); Buy = Asign( False ); Sell = Asign( False ); Short = Asign( False ); Cover = Asign( False ); BuyPrice = Null; ShortPrice = Null; BYPRSV = Null; SHPRSV = Null; LF1 = False; LF2 = False; SF1 = False; SF2 = False; LSL = Null; SSL = Null; LTGT = Null; STGT = Null; count = 0; for( i = 1; i < BarCount; i++ ) { if( DayStart[i] == True ) { count = 0; } // Long Trade if( BuyTrig[i] != 0 && High[i] >= BuyTrig[i] && LF1 == False && LF2 == False && DayStart[i] == False && count < DaysTrades ) { Buy[i] = True; LF1 = True; BYPRSV = BuyTrig[i]; if( Open[i] > BYPRSV ) { BYPRSV = Open[i]; } LF2 = True; count++; } if( LF1 == False && Close[i - 1] < BuyTrig[i] ) { LF2 = False; } if( LF1 == True ) { BuyPrice[i] = BYPRSV; LSL[i] = BYPRSV - ( BYPRSV * StopLoss ); LTGT[i] = BYPRSV + ( BYPRSV * Target ); } if( LF1 == True && High[i] > LTGT[i] ) { Sell[i] = True; SellPrice[i] = Close[i]; LF1 = False; BuyPrice[i] = Null; LSL[i] = Null; LTGT[i] = Null; } if( LF1 == True && Low[i] < LSL[i] ) { Sell[i] = True; SellPrice[i] = Close[i]; LF1 = False; BuyPrice[i] = Null; LSL[i] = Null; LTGT[i] = Null; } if( LF1 == True && DayEnd[i] == True ) { Sell[i] = True; SellPrice[i] = Close[i]; LF1 = False; BuyPrice[i] = Null; LSL[i] = Null; LTGT[i] = Null; } // Short Trade if( ShortTrig[i] != 0 && Low[i] < ShortTrig[i] && SF1 == False && SF2 == False && DayStart[i] == False && count < DaysTrades ) { Short[i] = True; SF1 = True; SHPRSV = ShortTrig[i]; if( Open[i] < SHPRSV ) { SHPRSV = Open[i]; } SF2 = True; count++; } if( SF1 == False && Close[i - 1] > ShortTrig[i] ) { SF2 = False; } if( SF1 == True ) { ShortPrice[i] = SHPRSV; SSL[i] = SHPRSV + ( SHPRSV * StopLoss ); STGT[i] = SHPRSV - ( SHPRSV * Target ); } if( SF1 == True && Low[i] < STGT[i] ) { Cover[i] = True; CoverPrice[i] = Close[i]; SF1 = False; ShortPrice[i] = Null; SSL[i] = Null; STGT[i] = Null; } if( SF1 == True && High[i] > SSL[i] ) { Cover[i] = True; CoverPrice[i] = Close[i]; SF1 = False; ShortPrice[i] = Null; SSL[i] = Null; STGT[i] = Null; } if( SF1 == True && DayEnd[i] == True ) { Cover[i] = True; CoverPrice[i] = Open[i]; SF1 = False; ShortPrice[i] = Null; SSL[i] = Null; STGT[i] = Null; } } Plot( BuyPrice, "Buy Price", colorYellow, styleStaircase | styleDashed ); Plot( LTGT, "Long Target", colorBrightGreen, styleStaircase | styleDashed ); Plot( LSL, "Long Stop Loss", colorCustom12, styleStaircase | styleDashed ); Plot( ShortPrice, "Short Price", colorYellow, styleStaircase | styleDashed ); Plot( STGT, "Short Target", colorBrightGreen, styleStaircase | styleDashed ); Plot( SSL, "Short StopLoss", colorCustom12, styleStaircase | styleDashed ); PlotShapes( IIf( Buy, shapeUpArrow, shapeNone ), colorBlueGrey, 0, Low, -15, 0 ); PlotShapes( IIf( Short, shapeDownArrow, shapeNone ), colorOrange, 0, High, -15, 0 ); PlotShapes( IIf( Cover, shapeCircle, shapeNone ), colorBlueGrey, 0, Low, -35, 0 ); PlotShapes( IIf( Sell, shapeCircle, shapeNone ), colorOrange, 0, High, 35, 0 ); _SECTION_END();