// Downloaded From https://www.WiseStockTrader.com /* 90% accurate system you may confused with my english. observe after downloading AFL into amibroker devide screen1 screen2 screen3 as 3 different indicators. buy sell decisions are based on following observations terminology bar -> start of green/red horizontal in screen2 nl+elder+si -> in screen1 (non linear , alexander elder, si) indicators screen2-> ROCEMA screen3 -> ROCLEMA sure way nl+elder+si >=3 have better at a time ******* in screen1 sure shot 1) screen1 nl+elder+(si or roc) and cross2 at bar2 *** screen4 rocSi value around 300-900 step1)cross2 at bars or ref(-1) bars(horizontal red green in screen2 ) in screen2 priority1 volume considerations better TSI(true strength index) and near cross3 or TSI near cross2 & step1 step1.5) cross3 and TSI better signal or TSI near cross2 with screen1 suppport better sep2)cross3 at bars or TSI & bars3 or cross at Bars3 check **** always screen1 support for TSI or screen2 cross is best signal of all step 1.5 or step2 are late but longer ** note TSi & bar3 & screen1>=3 and cross3 misses completel may be its very slow growh /////////////////// other sure way sure way ************ roc(si) (300-800) + screen1 SI change in sign + + nl screen1 (4) + rocEMA screen2 bar start long roc(si) (300-800) + screen1 SI change in sign + + nl screen1 (4) + screen3 LEMA cross3 bar start ///////////////////////////////////////////// when to buy when to sell ************ follow up in screen3 see any cross3 or cross2 divergences of trend direction if finds screen1 scores divergence look screen2 roc , screen3 LEMA(must,major)***** screen3 -ves or divergences(crosses)in -LEMA or +LEMA also may cause sell pressure in when to sell when to buy priority follows as scree1 high, screen3 LEMAmedium, screen2 low (crosses,sign changes etc..)?????? most of times screen3 LEMA & MFI decides more than screen1 nl,elder scores???? in trend if you find screen3 LEMA divergence look MFI ********** ????? for confirmation ------------------------------------------------- /////////////////////////////////////////////// other sure way for accuracy step1 look bars parallel IN SCREEN2 volume considerations is must ****** NOTE1: scree1 score>=3 and screen2 bar at atime at atime - definite *** NOTE: real movement starts at screen1 scores NOTE2: 2ema ,2 lema(surely it will turn even minor or medium) - definite ** NOTE screen1,screen2 + volume combination + TSI NOTE screen3 bigmoves + MFI + TSI **** NOTE3: big money screen3 (not necessary bar3) when change sign in screen3 (green to red or red to green) see screen2 ROCEMA>=190(avg 260), ROCLEMA(avg 30) see screen2 ROCEMA around 150-160 is short move ****** look MFI also screen2 ROCEMA>-2000 or -1000 at NOTE3 careful its short move ******* iif scrren2 2ROCLEMA > 2ROCEMA or 2ROCLEMA>30 fast move screen2 ROCEMA>-2000 or -1000 at NOTE3 careful its short move ******* NOTe3: always considder MFi,EM(MFI) for shorter/longer moves NOTE4: Along with NOTE3 + if too much change in screen2 ROCEMA , ROCLEMA(>80 genarally 130 like that) its big BAR it falls called GAPUP OR GAPDOWN **** old rose way screen1 coincidence(nl,elder,si(roc(si)) at atime ) with screen2 bars- definite ---------- screen2 rocEMA 2ema synch with sceen3 EMA(LEMA better) screen2 2lema synch with screen3 LEMA ------- this is add more confirmation to old rose way screen2 2lema synch with screen3 LEMA observation-> real movement starts after +2lema inscreen2 --------------------------------------------- - definite *** this is one more one more add more confirmation to old rose way scree1 score>=3 and screen2 bar at atime at atime - definite *** -------- +2ema, foloowed by +2lema - is it definite???? very few times +2cross,+2ema,+2lema - all at times also fail medium take chances even when screen1 nl,elder,si not at atime (one after other)with 3 sum or even not considering screen at bar2 crosses note: wheneever looking at screen1,2 major turns look at screen3 ******** MFI 2ema ,2 lema(surely it will turn even minor or medium) - definite note: important iff too many noise signals appear in screen2 look screen3 ***** (better than MFI) note : sometimes even screen2 cross,ema,lema all at atime it fails if screen3 lema 2) screen3 ,TSI fails too need screen1 ? better even it appear at bar2 2lema . not necessary before +ema2 or -ema2 of screen2 major deviations ***** minor pullbacks-- GBPNZD 16/3/2015 17:30 hourly screen1 , screen2 , screen3 ,(si) missing but EMA(MFI) fails ????????? minor pullbacks-- GBPNZD 17/3/2015 5:30 hourly USDCAD 17/2/ 17:30 sell screen1(but not SI),screen2,screen3 supports , MFI,EM(MFI) also supports but shorter move TSI not supporting -------------------------------------------------- ********** in stocks finding GAPUP GAPDOWN see NL red or green and screen3 hint 1)after screen3 sign change , look screen2 rocLEMA (if >90 or 100) its GAPUP or GAPDOWN) hint 2) after screen3 sign change LEMA negative sign divergence, look screen2 also for rocLEMA sign divergence /////////////////////////////////////////// */ ///////////////// scrren1 screen1 indicator//////////// EMA_Type = Param("EMA-1, TEMA-2, JMA-3", 2, 1, 3, 1); EMA_prds = Param("EMA_periods", 7, 1, 30, 1); Std_MACD = Param("Standard MACD? No-0, Yes-1", 1, 0, 1, 1); Plot_fashion = Param("Bar+Arrows-1, Impulse Bars-2", 2, 1, 2, 1); // Allow user to define Weekly and Monthly Ribbon Location and Height WR_P1 = Param("Weekly Ribbon Location", -10.5, -1000, 1000, 0.1); WR_P2 = Param("Weekly Ribbon Height", 366.5, -0.001, 500, 0.1); MR_P1 = Param("Monthly Ribbon Location", 5.2, -1000, 1000, 0.1); MR_P2 = Param("Monthly Ribbon Height", 199, -0.001, 500, 0.1); // Compute EMA and MACD Histogram if(EMA_Type == 1) { DayEMA = EMA(Close, EMA_prds); } if (EMA_Type == 2) { DayEMA = TEMA(Close, EMA_prds); } if(EMA_Type == 3) { // Line below to be used with Jurik JMA // DayEMA = JurikJMA(C, EMA_Prds); } Histogram = MACD() - Signal(); // Determine if we have an Impulse UP, DOWN or None Impulse_Up = DayEMA > Ref(DayEMA, -1) AND Histogram > Ref(Histogram, -1); Impulse_Down = DayEMA < Ref(DayEMA, -1) AND Histogram < Ref(Histogram, -1); Impulse_None = (NOT Impulse_UP) AND (NOT Impulse_Down); // Compute Weekly MACD and determine whether rising or falling // Note: uses "non-standard" parameters! TimeFrameSet(inWeekly); if (Std_MACD == 0) { MACD_val = MACD(5, 8); Signal_val = Signal(5, 8, 5); } else { MACD_val = MACD(12, 26); Signal_val = Signal(12, 26, 9); } Hist_in_w = MACD_val - Signal_val; wh_rising = Hist_in_w > Ref(Hist_in_w, -1); wh_falling = Hist_in_w < Ref(Hist_in_w, -1); TimeFrameRestore(); // Now get Monthly MACD Histogram.... TimeFrameSet(inMonthly); MACD_val = MACD(5, 8); Signal_val = Signal(5, 8, 5); Hist_in_m = MACD_val - Signal_val; mh_rising = Hist_in_m > Ref(Hist_in_m, -1); mh_falling = Hist_in_m < Ref(Hist_in_m, -1); TimeFrameRestore(); wh_rising = TimeFrameExpand( wh_rising, inWeekly, expandLast ); wh_falling = TimeFrameExpand( wh_falling, inWeekly, expandLast); mh_rising = TimeFrameExpand(mh_rising, inMonthly, expandLast); mh_falling = TimeFrameExpand(mh_falling, inMonthly, expandLast); kol = IIf( wh_rising, colorGreen, IIf(wh_falling, colorRed, colorLightGrey)); mkol = IIf( mh_rising, colorBlue, IIf(mh_falling, colorYellow, colorLightGrey)); // Plot them all! if (Plot_fashion == 1) { //Plot(Close, "Close", colorTeal, styleBar); //PlotShapes(shapeUpArrow * Impulse_Up, colorBlue, 0, Low, -12); //PlotShapes(shapeDownArrow * Impulse_Down, colorRed, 0, High, -12); //PlotShapes(shapeSmallCircle * Impulse_None, colorWhite, 0, High, 5); } else { bar_kol = IIf(impulse_UP, colorBlue, IIf(impulse_Down, colorRed, colorWhite)); //Plot(C, "Close", bar_kol, styleBar); } //Plot(10, "ribbon", kol, styleOwnScale|styleArea|styleNoLabel, WR_P1, WR_P2); // //Weekly trend //Plot(10, "ribbon", mkol, styleOwnScale|styleArea|styleNoLabel, MR_P1, MR_P2); // //Monthly Trend // Explorer Section // Determine if Impulse status is bullish, neutral or bearish. Display as Text //Column. Impulse_State = WriteIf(Impulse_Up, "Bulllish", WriteIf(Impulse_Down, "Bearish", "Neutral")); // Set the background color for Impulse Status Column Impulse_Col = IIf(Impulse_Up, colorGreen, IIf(Impulse_Down, colorRed, colorLightGrey)); // Determine Weekly Trend. Display as Text Column Weekly_Trend = WriteIf(wh_rising, "Rising", WriteIf(wh_falling, "Falling", "Flat!")); Weekly_Col = IIf(wh_rising, colorGreen, IIf(wh_falling, colorRed, colorLightGrey)); // Determine Monthly Trend. Display as Text Column Monthly_Trend = WriteIf(mh_rising, "Rising", WriteIf(mh_falling, "Falling", "Flat!")); Monthly_Col = IIf(mh_rising, colorGreen, IIf(mh_falling, colorRed, colorLightGrey)); // Determine how many bars has the current state existed bars_in_bull = Min(BarsSince(impulse_none), BarsSince(impulse_down)); bars_in_bear = Min(BarsSince(impulse_up), BarsSince(impulse_none)); bars_in_neut = Min(BarsSince(impulse_down), BarsSince(impulse_up)); // Set a single variable to show number of bars in current state depending upon // actual Impulse Status - Bullish, Bearish or Neutral bars_in_state = IIf(Impulse_Up, bars_in_bull, IIf(Impulse_down, bars_in_bear, bars_in_neut)); // Columns for display in Explorer //AddTextColumn(Impulse_State, "Impulse Status", 1, colorWhite, Impulse_Col); //AddColumn(bars_in_state, "Bars in this state", 1, colorWhite, Impulse_col); //AddTextColumn(Weekly_Trend, "Weekly Trend", 1, colorWhite, Weekly_Col); //AddTextColumn(Monthly_Trend, "Monthly Trend", 1, colorWhite, Monthly_Col); impBuyCond1= Impulse_Col ==colorGreen AND Ref(Impulse_Col !=colorGreen ,-1); impShortCond1=Impulse_Col==colorRed AND Ref(Impulse_Col !=colorRed ,-1); Buysum=0; Sellsum=0; BuySum=impBuyCond1; Sellsum=impShortCond1; /* */ _SECTION_END(); ////////////////////////////// //non linear Price = (H+L)/2; CoefLookback = 5; Coef = (Price-Ref(Price, -1))^2+(Price-Ref(Price, -2))^2+(Price-Ref(Price, -3))^2+(Price-Ref(Price, -4))^2+(Price-Ref(Price, -5))^2; SumCoef=0; SumCoefPrice=0; for(i=0; i < CoefLookback; i++) { SumCoef = SumCoef + Ref(Coef, -i); SumCoefPrice = SumCoefPrice + (Ref(Coef, -i) * Ref(Price, -i)); } DCEF = SumCoefPrice / SumCoef; //Title = "nonlinear: " + IIf(Close>DCEF, colorGreen, colorRed)+ NumToStr( DCEF, 1.6 ); //Plot(Close, "Close", colorWhite, styleLine); //Plot(DCEF, "NonLinear Ehlers Filter", IIf(Close>DCEF, colorGreen, colorRed), styleLine); /////////////////////////////// //Swim /* SWIM INDEX coded by KAILASH K PAREEK - INDIA . As the name of indicator explains it self, It measures the swim of Price. Day Trader may find it very useful as it gives trend reversal in next 2-3 trading. INTERPATION: Expect trend reversal or at least consolidation when SI Spikes higher, (for Peak) OR lower, (for bottom), than Relative spikes and turns back. I have found couple of times The thing called "HING" which appears 1-2 day before the Price reversal and common in Stochastic Oscillator. */ C1 = Ref ( C , -1 ) ; O1 = Ref ( O, -1 ) ; K = HHV ( ( H - C1 ) OR ( L - C1 ) , 1 ) ; L = C1 * 0.20; R = ATR ( 1 ); SI = ( ( C-C1+0.5*(C-O)+0.25*(C1-O1))/R)*(K/L); //Graph0 = SI; //Plot(SI, "SWIM index",colorGreen , styleArea); //PlotOHLC( 1.1*SI, 1.1* SI, 1.1* SI, 1.1* SI, // "Price chart shifted 10% up", colorRed, styleGradient ); //Title = "SI: " +EncodeColor( colorRed ) + NumToStr( SI, 1.6 ); /* _N(Title = StrFormat("{{NAME}} - " +FullName() + " - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) SI " + WriteVal( SI, 1.6 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( SI,1,True )) )); */ Buy1=Cross(Close,DCEF) AND ( SI>0 AND Ref(SI,-1)<0 ) AND (ROC(SI)>0 AND ROC(Ref(SI,-1))<0 ); Sell1=Cross(DCEF,Close) AND ( SI<0 AND Ref(SI,-1)>0 ) AND (ROC(SI)<0 AND ROC(Ref(SI,-1))>0 ); BuySum=BuySum+Cross(Close,DCEF); Sellsum=Sellsum+Cross(DCEF,Close); BuySum=BuySum+(( SI>0 AND Ref(SI,-1)< 0.0 )); Sellsum=Sellsum+(( SI<0 AND Ref(SI,-1)> 0.0 )); //BuySum=BuySum +(( sign( ROC(SI,1) ) != sign( ROC(Ref(SI,-1),1)) )); //Sellsum=Sellsum+(( sign( ROC(SI,1)) != sign(ROC(Ref(SI,-1), 1)))); /* PlotShapes(Buy1*shapeUpArrow,colorGreen,0,DCEF); PlotShapes(Sell1*shapeDownArrow,colorRed,0,DCEF); */ /////////////////// //gmma /* ------------------------------------------------------------------------------------------------- GUPPY MULTIPLE MOVING AVEREGES ------------------ Guppy GMMA from AmiBroker Library, enhanced with "derived" Indicators ---------------------------------------------------------------------------*/ EnableTextOutput(False); GuppyGraphType = ParamList("Type of Guppy Graphic","Guppy GMMA,Guppy Compressions,Guppy Sonar",0); // Normalization = ParamToggle("Normalization Array","CLOSE,EMA30",0); LocalBuySignal = LocalSellSignal = 0; MinMaxPeriod = 20; // --- DEFINE/CALCULATE ALL DATA NEEDED FOR BUY & SELL COMPOSITE SIGNALS outside the IndicatorType IF --- EMA03 = EMA(Close,3); EMA15 = EMA(Close,15); EMA30 = EMA(Close,30); EMA60 = EMA(Close, 60); NormalizerArray = EMA30; // IIf(Normalization == 0, Close, EMA30); // GMMADeltaPerc = ((EMA(Close,9)- EMA(Close,35)) / EMA(Close,35)) * 100; //default 15,30 GMMAUP = GMMADeltaPerc > Ref(GMMADeltaPerc,-1); GMMADOWN = GMMADeltaPerc < Ref(GMMADeltaPerc,-1); BarColor = IIf(GMMAUP AND GMMADeltaPerc >= 0,colorBrightGreen, IIf(GMMADOWN AND GMMADeltaPerc > 0,colorGreen, IIf(GMMAUP AND GMMADeltaPerc < 0, colorRed, colorDarkRed))); // Plot(GMMADeltaPerc, "\\c16, % Gap \\c29T\\c16 - \\c32INV\\c16 vs EMA(30)", BarColor, styleHistogram | styleThick ); // Plot(GMMADeltaPerc ,"up",colorAqua); /* Title = "sonar: " + "UP "+NumToStr( GMMAUP, 1.2 )+ " DOWN "+NumToStr( GMMADOWN , 1.2 ); */ BuySum=BuySum+ ((GMMAUP==1)&& (Ref(GMMAUP,-1)==0)); Sellsum=Sellsum+((GMMADOWN==1)&& (Ref(GMMADOWN,-1)==0)); AddColumn(Close,"close"); AddColumn(BuySum,"BuyPoints"); AddColumn(Sellsum,"SellPoints"); AddColumn(ROC(SI,1),"rocSI"); period = 14; formula=100*( ( RSI( period ) - LLV( RSI( period ) , period ) ) / ( ( HHV( RSI( period ) , period ) ) - LLV(RSI( period ), period ) ) ); //AddColumn(ROC(formula,2),"ROCstck"); //AddColumn(formula,"stck"); //Filter=abs(ROC(SI,1))>200; //Filter=1; Cond1= (BuySum>=3 OR SellSum >=3 ); Filter=Cond1; txt=WriteIf(BuySum>=3,NumToStr(BuySum), WriteIf(SellSum>=3,NumToStr(SellSum)," ") ); /////////////////////////////////////////// txtBuy=""; AddColumn(impBuyCond1,"imp Buy",1); AddColumn(Cross(Close,DCEF),"nl Buy"); AddColumn(( SI>0 AND Ref(SI,-1)< 0.0 ),"SIBuy" ); //AddColumn( sign(ROC(SI,1)) != sign(ROC(Ref(SI,-1),1)) ,"ROC(SI)Buy" ); AddColumn((GMMAUP==1)&& (Ref(GMMAUP,-1)==0),"GMMABuy"); txtBuy= WriteIf(Cross(Close,DCEF)," nl ",""); txtBuy=txtBuy+ WriteIf(impBuyCond1," elder ",""); txtBuy= txtBuy+WriteIf(( SI>0 AND Ref(SI,-1)< 0.0 )," si ",""); txtBuy= txtBuy+WriteIf(sign(ROC(SI,1)) != sign(ROC(Ref(SI,-1),1))," roc(si) ",""); txtSell=""; AddColumn(impShortCond1,"imp Sell",1); AddColumn(Cross(DCEF,Close),"nl Sell" ); AddColumn(( SI<0 AND Ref(SI,-1)> 0.0 ),"SISell"); AddColumn( sign(ROC(SI,1)) != sign(ROC(Ref(SI,-1),1)) ,"ROC(SI)" ); AddColumn((GMMADOWN==1)&& (Ref(GMMADOWN,-1)==0),"GyyMMASell" ); txtSell= WriteIf(Cross(DCEF,Close)," nl ",""); txtSell=txtSell+ WriteIf(impShortCond1," elder ",""); txtSell=txtSell+ WriteIf(( SI<0 AND Ref(SI,-1)> 0.0 )," si ",""); txtSell=txtSell+ WriteIf(sign(ROC(SI,1)) != sign(ROC(Ref(SI,-1),1))," roc(si) ",""); Plot(BuySum,"nl",colorGreen,styleArea); Plot(SellSum,"nl",colorRed,styleArea); Title="buySum: "+BuySum+" SellSum: "+SellSum+ " buy-> "+txtBuy+ " Sell->"+txtSell; SetSortColumns( -2 ) ; /* AlertIf( Cond1, "SOUND C:\\Windows\\Media\\Notify.WAV", "NL "+txt , 0 ,1+2+8,5); */ /////////////////////////////////// /* FirstTradeTime = 091500; // Earliest time to take a trade LastTradeTime = 151500; // Latest time to take new trades ExitAllPositionsTime = 151500; change = Param("% change",0.6,0.1,25,0.1); z = Zig(Close, change); Buy=(BuyCond) AND (TimeNum() >= FirstTradeTime AND TimeNum() <= LastTradeTime ); Sell = IIf(z < Ref(z, -1), 1, 0) ;//OR TimeNum() > ExitAllPositionsTime; Short=(ShortCond) AND (TimeNum() >= FirstTradeTime AND TimeNum() <= LastTradeTime ); Cover = IIf(z > Ref(z, -1), 1, 0);// OR TimeNum() > ExitAllPositionsTime; Buy=ExRem(Buy,Sell); Sell=ExRem(Sell,Buy); Short=ExRem(Short,Cover); Cover=ExRem(Cover,Short); */ ///////////// /////////////////// screen 2 indicator screen2 indicator/////////// EMASlope=(LinRegSlope(EMA(Close,9),5 )); LEMASlope=(LinRegSlope(EMA(Close,35),5)); up=ROC( EMASlope,1,True); down=ROC( LEMASlope,1,True); bar_kol = IIf(up>0, colorBrightGreen, IIf(up<0, colorRed, colorWhite)); Plot( up,"rocEMA ",bar_kol,styleBar); bar_kol = IIf(down>0, colorBrightGreen, IIf(down<0, colorRed, colorWhite)); Plot( down,"rocLEMA ",bar_kol,styleBar); txt2=" "; txt2+= WriteIf(Cross(up,down)," +cross2up "," "); txt2+= WriteIf(up>0 AND Ref(up,-1)<0," +2ema "," "); txt2+= WriteIf(down>0 AND Ref(down,-1)<0," +2lema "," "); txt2+= WriteIf(Cross(down,up)," -cross2down "," "); txt2+= WriteIf(up<0 AND Ref(up,-1)>0," -2ema "," "); txt2+= WriteIf(down<0 AND Ref(down,-1)>0," -2lema "," "); //Title=" "; //Title+= txt2; Plot(0,txt2,colorAqua,styleNoDraw|styleNoLine|styleOwnScale); //Plot( up,"rocEMA ",colorTeal,styleBar); //Plot( up,"rocEMA ",bar_kol,styleBar); //Plot( down,"rocLEMA ",bar,_kol,styleBar); //Plot(0,"zero",colorWhite); //Plot(sign(up)!= sign(Ref(up,-1)),"ROC EMA ",colorGreen,styleStaircase); //Plot(sign(down)!= sign(Ref(down,-1)),"ROC LEMA ",colorRed,styleStaircase); //Plot(down,"ROC LEMA ",colorRed, //styleBar); Plot( 3, "bar" ,IIf( up>down AND (up>0), colorGreen, IIf( updown , colorGreen, IIf( up0, colorBrightGreen, IIf(up<0, colorRed, colorWhite)); Plot( up,"EMA ",bar_kol,styleBar); bar_kol = IIf(down>0, colorBrightGreen, IIf(down<0, colorRed, colorWhite)); Plot( down,"LEMA ",bar_kol,styleBar); Plot( 3, "bar" ,IIf( up>down AND (up>0), colorGreen, IIf( up0 AND Ref(up,-1)<0," +3ema "," "); txt3+= WriteIf(down>0 AND Ref(down,-1)<0," +3lema"," "); txt3+= WriteIf(Cross(LEMASlope,EMASlope)," -cross3down "," "); txt3+= WriteIf(up<0 AND Ref(up,-1)>0," -3ema "," "); txt3+= WriteIf(down<0 AND Ref(down,-1)>0," -3lema "," "); Plot(1,txt3,colorAqua,styleNoDraw|styleNoLine|styleOwnScale); /* Plot(ROC( LEMASlope,1,True),"ROC", IIf(ROC( LEMASlope,1,True)>0, colorGreen,colorRed),styleArea); */ /* Value=ROC(LEMASlope,1,True); Plot( Value,"LEMAROC "+ WriteVal(Value,3.3), IIf(Value>Ref(Value,-1),colorGreen,colorRed),styleCandle); */ //BBVol=(LEMASlope/MA(LEMASlope,50))*100; //Plot(BBVol,"LEMASlope",IIf(BBVol>0,colorAqua,colorRed)); /* Buy1=ROC( LEMASlope,1,True)>0 ;//AND ROC( Ref(LEMASlope,-1),1)<0; Sell1=ROC( LEMASlope,1,True)<0; //;AND ROC( Ref(LEMASlope,-1),1)>0; // PlotShapes(Sell1*shapeDownArrow,colorRed,0,ROC( LEMASlope,1,True)); PlotShapes(Buy1*shapeUpArrow,colorGreen,0,ROC( LEMASlope,1,True)); */ //////////////////////////////////// /////////////////sccreen4 screen4 indicator ////////////// /* SWIM INDEX coded by KAILASH K PAREEK - INDIA . As the name of indicator explains it self, It measures the swim of Price. Day Trader may find it very useful as it gives trend reversal in next 2-3 trading. INTERPATION: Expect trend reversal or at least consolidation when SI Spikes higher, (for Peak) OR lower, (for bottom), than Relative spikes and turns back. I have found couple of times The thing called "HING" which appears 1-2 day before the Price reversal and common in Stochastic Oscillator. */ C1 = Ref ( C , -1 ) ; O1 = Ref ( O, -1 ) ; K = HHV ( ( H - C1 ) OR ( L - C1 ) , 1 ) ; L = C1 * 0.20; R = ATR ( 1 ); SI = ( ( C-C1+0.5*(C-O)+0.25*(C1-O1))/R)*(K/L); //Graph0 = SI; /* Plot( ROC(SI,1), "ROCSI", IIf( ROC(SI,1)> 0, colorGreen, colorRed ) ), ParamStyle "Style", styleCandle | styleOwnScale | styleThick | styleNoLabel) ); */ Plot( ROC(SI,1), "rocsi", IIf( C > O,colorGreen, IIf(C < O,colorRed,colorWhite)), styleCandle); Title = "roc(si): " +EncodeColor( colorRed ) + NumToStr(ROC(SI,1),2.6); /* _N(Title = StrFormat("{{NAME}} - " +FullName() + " - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) SI " + WriteVal( SI, 1.6 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( SI,1,True )) )); */ //////////////////////////////////////////////////////