// Downloaded From https://www.WiseStockTrader.com /*VALLKKOTTAI MURUGAN THUNAI*\ Telegram @easysimpletrade Website https://easysimpletrade.blogspot.com Youtube https://www.youtube.com/channel/UCaAH8Um7QCIPsOXH47zHAfQ */ /* Based on Power of Stocks 5 EMA Strategy is said in https://youtu.be/uu3zGIXaG8g Buy 15 min , Short 5 min. Thanks to Yogesh Dalvi (Telegram @dyogesh) helped me to code this loop. */ _SECTION_BEGIN("POS 5 EMA"); BTSI = ParamList("Analysing", "Stock|Index",1); SOTIMES = ParamTime("Stock - Square OFF","14:59:00"); EATIMES = ParamTime("Stock - Entry After","09:19:00"); EBTIMES = ParamTime("Stock - Entry Before","14:35:00"); SOTIMEI = ParamTime("Index - Square OFF","15:14:00"); EATIMEI = ParamTime("Index - Entry After","09:19:00"); EBTIMEI = ParamTime("Index - Entry Before","14:45:00"); SOTIME = IIf(BTSI == "Stock", SOTIMES, SOTIMEI); EATIME = IIf(BTSI == "Stock", EATIMES, EATIMEI); EBTIME = IIf(BTSI == "Stock", EBTIMES, EBTIMEI); TDVAL = Param("Position Size", 20000,5000,125000,5000); INEQ = Param("Initial Equity", 50000,1000,1000000,1000); RRR = Param("Risk Reward Ratio", 3 , 1 ,10, 0.5); TFI = Param("Time Frame I", 5 , 1 , 75); TFII = Param("Time Frame II", 15 , 1 , 75); _SECTION_END(); H1 = TimeFrameGetPrice( "H", in1Minute*TFI,-1); L1 = TimeFrameGetPrice( "L", in1Minute*TFI,-1); H2 = TimeFrameGetPrice( "H", in1Minute*TFII,-1); L2 = TimeFrameGetPrice( "L", in1Minute*TFIi,-1); TimeFrameSet(in1Minute*TFI); EMA51 = EMA(C,5); TimeFrameRestore(); TFIR = TFI/Interval()*60; EMA510 = TimeFrameExpand(EMA51, in1Minute*TFI,expandFirst); EMA51 = Ref(EMA510,-TFIR); TimeFrameSet(in1Minute*TFII); EMA52 = EMA(C,5); TimeFrameRestore(); TFIIR = TFII/Interval()*60; EMA520 = TimeFrameExpand(EMA52, in1Minute*TFII,expandFirst); EMA52 = Ref(EMA520,-TFIR); RISK1 = H1 - L1; RISK2 = H2 - L2; ETIME = TimeNum() > EATIME AND TimeNum() < EBTIME; iBuy = H2 < EMA52 AND Cross(H, H2) AND ETIME; iShort = L1 > EMA51 AND Cross(L1, L) AND ETIME; //Exit----------------------------------------------------------------------------- iBENT = iBTGT = iBSL = 0; iSENT = iSTGT = iSSL = 0; iInTrade = 0; iTimeNum = TimeNum(); iInTradeArray = 0; Buy = Sell = Short = Cover = BuyPrice = SellPrice = ShortPrice = CoverPrice = 0; BENT = SENT = BTGT = STGT = BSL = SSL = BSLE = SSLE = BTGTE = STGTE = SQOFF = 0; for(i = 0 ; i <= BarCount -1 ; i++) { if(iInTrade == 1) { if (High[i] > iBTGT) { Sell[i] = 1; SellPrice[i] = iBTGT; BTGTE[i] = 1; } else if (Low[i] < iBSL) { Sell[i] = 1; SellPrice[i] = iBSL; BSLE[i] = 1; } else if(iTimeNum[i] > SOTIME) { Sell[i] = 1; SellPrice[i] = Close[i]; SQOFF[i] = 1; } } if(iInTrade == -1) { if (Low[i] < iSTGT) { Cover[i] = 1; CoverPrice[i] = iSTGT; STGTE[i] = 1; } else if (High[i] > iSSL) { Cover[i] = 1; CoverPrice[i] = iSSL; SSLE[i] = 1; } else if(iTimeNum[i] > SOTIME ) { Cover[i] = 1; CoverPrice[i] = Close[i]; SQOFF[i] = 1; } } if(iBuy[i] AND iInTrade == 0) { Buy[i] = 1; iBENT = H2[i]; iBSL = L2[i]; iBTGT = H2[i] + (RRR*RISK2[i]); iInTrade = 1; BuyPrice[i] = iBENT; } if(iShort[i] AND iInTrade == 0) { Short[i] = 1; iSENT = L1[i]; iSSL = H1[i]; iSTGT = L1[i] - (RRR*RISK1[i]); iInTrade = -1; ShortPrice[i] = iSENT; } if(iInTrade != 0) { BENT[i] = iBENT; BSL[i] = iBSL; BTGT[i] = iBTGT; SENT[i] = iSENT; SSL[i] = iSSL; STGT[i] = iSTGT; iInTradeArray[i] = iInTrade; } if (Sell[i] OR Cover[i]) { iInTrade = 0; } } BVALID = IIf(iInTradeArray == 1 ,1,0); SVALID = IIf(iInTradeArray == -1 ,1,0); BTGT = Prec(BTGT,1); STGT = Prec(STGT,1); //Backtest----------------------------------------------------------------------------------------- NDO = TimeFrameGetPrice( "O", inDaily ); SQTY = round(TDVAL/NDO); IQTY = 1; QTY = IIf(BTSI == "Stock", SQTY, IQTY); Margin = IIf(BTSI == "Stock", 20, 100); Comison = IIf(BTSI == "Stock", 0.04, 0); MXOP = INEQ*5/TDVAL; SetOption("InitialEquity",INEQ); SetOption("MaxOpenPositions",MXOP); SetOption("AccountMargin",Margin); SetOption("CommissionMode",1); SetOption("CommissionAmount",Comison); SetOption("ActivateStopsImmediately",True); //SetOption("AllowSameBarExit",True); SetPositionSize(QTY,spsShares); //Exploration--------------------------------------------------------------------------------------------------------------- BWATCH = H1 < EMA52 AND H < H2; SWATCH = L1 > EMA51 AND L > L1; WatchStatus = WriteIf(BWATCH,"Watch for Buy", WriteIf(SWATCH,"Watch for Sell","")); Filter = 1; //Buy OR Short OR BWATCH OR SWATCH; AddColumn(IIf( Buy,66,IIf(Short,83,32) ),"Signal", formatChar, colorYellow, IIf(Buy, colorGreen,IIf( Short,colorRed, colorDefault) )); AddTextColumn(WatchStatus, "Watch"); AddColumn(IIf(BVALID,BENT,IIf(SVALID,SENT,Null)), "Entry"); AddColumn(IIf(BVALID,BSL,IIf(SVALID,SSL,Null)), "Stop Loss"); AddColumn(IIf(BVALID,BTGT,IIf(SVALID,STGT,Null)), "Target"); //Chart------------------------------------------------------------------------------------------------------------------------------------------------------------------------ _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} O %g, H %g, L %g, C %g {{VALUES}}", O, H, L, C )); SetChartOptions( 1, chartShowDates, chartGridMiddle, 0, 0, 0 ); SetBarFillColor( IIf( C > O, ColorRGB( 0, 75, 0 ), IIf( C <= O, ColorRGB( 75, 0, 0 ), colorLightGrey ) ) ); Plot( C, "", IIf( C > O, ColorRGB( 0, 255, 0 ), IIf( C <= O, ColorRGB( 255, 0, 0 ), colorLightGrey ) ), 64, Null, Null, 0, 0, 1 ); GfxTextOut( "Entry " +IIf(BVALID,BENT,IIf(SVALID,SENT,Null)), 700, 20); GfxTextOut( "SL " +IIf(BVALID,BSL,IIf(SVALID,SSL,Null)), 700, 40); GfxTextOut( "Target " +IIf(BVALID,BTGT,IIf(SVALID,STGT,Null)), 700, 60); PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-20); PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-30); PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-25); PlotShapes(IIf(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=20); PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=30); PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-25); PlotShapes(IIf(Sell AND BTGTE, shapeDownTriangle, shapeNone),colorLime, 0, H, Offset=-30); PlotShapes(IIf(Sell AND BSLE, shapeCircle, shapeNone),colorLime, 0, H, Offset=30); PlotShapes(IIf(Cover AND STGTE, shapeUpTriangle, shapeNone),colorOrange , 0, L, Offset=-30); PlotShapes(IIf(Cover AND SSLE, shapeCircle, shapeNone),colorOrange , 0, L, Offset=-30); PlotShapes(IIf(SQOFF AND (Sell OR Cover), shapeSquare, shapeNone),colorWhite , 0, L, Offset=-30); Plot( EMA520,"EMA5 15min",colorLime,styleStaircase|styleNoLabel); Plot( EMA510,"EMA5 5min",colorRed,styleStaircase|styleNoLabel);