| Trading Indicators Post your custom trading indicators. If you download, remember to click INSTALL. |
![]() | | Tweet | |
Negative/Reverse Divergence Details »» | |||||||||||||||||||||||||
Following on the great work done by aaa on the divergence indicator; I wanted to know if someone could potentially help in creating an indicator which shows negative or reverse divergence. The attached indicator is a slight tweak from aaa's, and shows regular divergence only. The attached images show the negative divergence. Code: // StochRSI Divergence TrendLine // Author: MARKPLEX // http://markplex.com/tutorial4.php // version: 1.0 // Author: aaa // version: 2.0 // Date: 20091129 // added: // divergence on top + // Line.Color.Top + Line.Color.Bot + Line.Size + Plot.Sto in inputs //---------------------------------------------------- inputs: //---------------------------------------------------- RSILength(9), StochLength(18), KLength(6), DLength(3), OverSold(20), OverBought(80), Length(20), LeftStrength(3), RightStrength(3), Line.Color.Top(yellow), Line.Color.Bot(white), Line.Size(2), Plot.stochrsi(1), AlertOn.Off(1); //---------------------------------------------------- variables: //---------------------------------------------------- DToscK(0), DToscD(0), oPivotPrice1(0), oPivotBar1(0), oPivotPrice2(0), oPivotBar2(0), oPivotPrice11(0), oPivotBar11(0), oPivotPrice12(0), oPivotBar12(0); value1 = FastKCustomEasy(RSI(C, RSILength),StochLength); DToscK = average(value1,KLength); DToscD = average(DToscK,DLength); Condition1 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, -1, oPivotPrice1, oPivotBar1 ) <> -1 AND ( oPivotBar1 - RightStrength ) = 0 ; Condition11 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, 1, oPivotPrice11, oPivotBar11 ) <> -1 AND ( oPivotBar11 - RightStrength ) = 0 ; Condition2 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, -1, oPivotPrice2, oPivotBar2 ) <> -1; Condition12 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, 1, oPivotPrice12, oPivotBar12 ) <> -1; If Condition1 and Condition2 // added condition2 = referecne future data AND L[oPivotBar2] >= L[oPivotBar1] AND DToscK[oPivotBar2] < DToscK[oPivotBar1] then Begin Value2 = TL_New(D[oPivotBar2], T[oPivotBar2], L[oPivotBar2], D[oPivotBar1], T[oPivotBar1], L[oPivotBar1]); TL_SetColor( Value2, Line.Color.Bot ); TL_SetSize( Value2, Line.Size ); if AlertOn.Off <> 0 then Alert( "Divergence in Bottom" ); End; If Condition11 and Condition12 // added condition12 referecne future data AND H[oPivotBar12] <= H[oPivotBar11] AND DToscK[oPivotBar12] > DToscK[oPivotBar11] then Begin Value12 = TL_New(D[oPivotBar12], T[oPivotBar12], H[oPivotBar12], D[oPivotBar11], T[oPivotBar11], H[oPivotBar11]); TL_SetColor( Value12, Line.Color.Top ); TL_SetSize( Value12, Line.Size ); if AlertOn.Off <> 0 then Alert( "Divergence in Top" ); End; condition3 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, -1, oPivotPrice1, oPivotBar1 ) <> -1 AND ( oPivotBar1 - RightStrength ) = 0 ; condition32 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, 1, oPivotPrice11, oPivotBar11 ) <> -1 AND ( oPivotBar11 - RightStrength ) = 0 ; condition4 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, -1, oPivotPrice2, oPivotBar2 ) <> -1; condition42 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, 1, oPivotPrice12, oPivotBar12 ) <> -1; If Condition3 and condition4 AND L[oPivotBar2] >= L[oPivotBar1] AND DToscK[oPivotBar2] < DToscK[oPivotBar1] then Begin Value2 = TL_New_SELF(D[oPivotBar2], T[oPivotBar2], DToscK[oPivotBar2], D[oPivotBar1], T[oPivotBar1], DToscK[oPivotBar1]); TL_SetColor( Value2, Line.Color.Bot ); TL_SetSize( Value2, Line.Size ); End; If Condition32 and Condition42 AND H[oPivotBar12] <= H[oPivotBar11] AND DToscK[oPivotBar12] > DToscK[oPivotBar11] then Begin Value12 = TL_New_SELF(D[oPivotBar12], T[oPivotBar12], DToscK[oPivotBar12], D[oPivotBar11], T[oPivotBar11], DToscK[oPivotBar11]); TL_SetColor( Value12, Line.Color.Top ); TL_SetSize( Value12, Line.Size ); End; Plot1( DToscK, "stochrsi", blue ); plot2( 20, "oversold", white); plot3(80, "overbought", white); Screenshots Show Your Support
| |||||||||||||||||||||||||
| ∧ Similar Indicator | ||||
| Mod | Developer | Type | Replies | Last Post |
| MAMA Combo | Tams | Trading Indicators | 6 | 10:10 PM 01-24-2011 |
| Simple Indicator | pimind | Trading Indicators | 0 | 03:02 PM 05-07-2009 |
| Fast BB MACD | simterann22 | Trading Indicators | 14 | 01:47 AM 07-08-2009 |
| Ergodic (Double Weighted) | Tams | Trading Indicators | 17 | 11:57 AM 04-26-2010 |
| MACD Divergence TrendLine | aaa | Trading Indicators | 42 | 08:20 AM 02-20-2011 |
| Comments |
| | #2 | ||
![]() | Re: Negative/Reverse Divergence Following on the great work done by aaa on the divergence indicator; First of all thank you very much for the kind words, but I've done nothing = it is a 100% code from one of Martyn Whittaker' Xcellent 46 free tutorial martyn.whittaker@markplex .com *********** His site is a real gold mine 2 learn EL http://markplex.com/tutorials.php Code: If Condition1 and Condition2 AND L[oPivotBar2] >= L[oPivotBar1] AND DToscK[oPivotBar2] < DToscK[oPivotBar1] then Value2 = TL_New(D[oPivotBar2], T[oPivotBar2], L[oPivotBar2], D[oPivotBar1], T[oPivotBar1], L[oPivotBar1]); Have U tried 2 "reverse" the code or anything else ? When we post our personnal work ( even tho if it doesn't work ), and if there is a solution, they is always a kind coder 2 help us here. rgds Last edited by aaa; 05-28-2010 at 05:52 AM. | ||
| |
|
| | #3 | ||
![]() | Re: Negative/Reverse Divergence Code: // StochRSI Divergence TrendLine // Author: MARKPLEX // http://markplex.com/tutorial4.php // version: 1.0 // Author: aaa // version: 2.0 // Date: 20091129 // added: // divergence on top + // Line.Color.Top + Line.Color.Bot + Line.Size + Plot.Sto in inputs //---------------------------------------------------- inputs: //---------------------------------------------------- RSILength(9), StochLength(18), KLength(6), DLength(3), OverSold(20), OverBought(80), Length(20), LeftStrength(3), RightStrength(3), Line.Color.Top(yellow), Line.Color.Bot(white), Line.Size(2), Plot.stochrsi(1), AlertOn.Off(1); //---------------------------------------------------- variables: //---------------------------------------------------- DToscK(0), DToscD(0), oPivotPrice1(0), oPivotBar1(0), oPivotPrice2(0), oPivotBar2(0), oPivotPrice11(0), oPivotBar11(0), oPivotPrice12(0), oPivotBar12(0); value1 = FastKCustomEasy(RSI(C, RSILength),StochLength); DToscK = average(value1,KLength); DToscD = average(DToscK,DLength); Condition1 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, -1, oPivotPrice1, oPivotBar1 ) <> -1 AND ( oPivotBar1 - RightStrength ) = 0 ; Condition11 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, 1, oPivotPrice11, oPivotBar11 ) <> -1 AND ( oPivotBar11 - RightStrength ) = 0 ; Condition2 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, -1, oPivotPrice2, oPivotBar2 ) <> -1; Condition12 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, 1, oPivotPrice12, oPivotBar12 ) <> -1; If Condition1 and Condition2 // added condition2 = referecne future data AND L[oPivotBar1] >= L[oPivotBar2] AND DToscK[oPivotBar2] > DToscK[oPivotBar1] then Begin Value2 = TL_New(D[oPivotBar2], T[oPivotBar2], L[oPivotBar2], D[oPivotBar1], T[oPivotBar1], L[oPivotBar1]); TL_SetColor( Value2, Line.Color.Bot ); TL_SetSize( Value2, Line.Size ); if AlertOn.Off <> 0 then Alert( "Hid Div Bottom" ); End; If Condition11 and Condition12 // added condition12 referecne future data AND H[oPivotBar11] <= H[oPivotBar12] AND DToscK[oPivotBar11] > DToscK[oPivotBar12] then Begin Value12 = TL_New(D[oPivotBar12], T[oPivotBar12], H[oPivotBar12], D[oPivotBar11], T[oPivotBar11], H[oPivotBar11]); TL_SetColor( Value12, Line.Color.Top ); TL_SetSize( Value12, Line.Size ); if AlertOn.Off <> 0 then Alert( "Hid Div Top" ); End; condition3 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, -1, oPivotPrice1, oPivotBar1 ) <> -1 AND ( oPivotBar1 - RightStrength ) = 0 ; condition32 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, 1, oPivotPrice11, oPivotBar11 ) <> -1 AND ( oPivotBar11 - RightStrength ) = 0 ; condition4 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, -1, oPivotPrice2, oPivotBar2 ) <> -1; condition42 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, 1, oPivotPrice12, oPivotBar12 ) <> -1; If Condition3 and condition4 AND L[oPivotBar1] >= L[oPivotBar2] AND DToscK[oPivotBar2] > DToscK[oPivotBar1] then Begin Value2 = TL_New_SELF(D[oPivotBar2], T[oPivotBar2], DToscK[oPivotBar2], D[oPivotBar1], T[oPivotBar1], DToscK[oPivotBar1]); TL_SetColor( Value2, Line.Color.Bot ); TL_SetSize( Value2, Line.Size ); End; If Condition32 and Condition42 AND H[oPivotBar11] <= H[oPivotBar12] AND DToscK[oPivotBar11] > DToscK[oPivotBar12] then Begin Value12 = TL_New_SELF(D[oPivotBar12], T[oPivotBar12], DToscK[oPivotBar12], D[oPivotBar11], T[oPivotBar11], DToscK[oPivotBar11]); TL_SetColor( Value12, Line.Color.Top ); TL_SetSize( Value12, Line.Size ); End; Plot1( DToscK, "stochrsi", blue ); plot2( 20, "oversold", white); plot3(80, "overbought", white); | ||
| |
|
| The Following User Says Thank You to lonew0lf For This Useful Post: | ||
aaa (05-30-2010) | ||
| | #4 | ||
![]() | Re: Negative/Reverse Divergence The solution was hidden in my suggestion ( HeHeHe !!) and U've made good homework ***************** I will not post any more Div indic than Sto + Rsi + MACD In fact I try 2 trade with the trend, not against it. Below is the Martyn Whittaker' logic of divergence Everybody can easily apply it 2 any kind of indicators in 3 steps 1 Copy the entire Divergence code 2 your new div TrendLine indicator 2 Put the code of your preferate indicator in My.Indicator variable 3 Add personnal ideas 2 suit your way of Trading rgds aaa *********************** inputs: MyIndicator.Length(30), variables: My.Indicator(0), My.Indicator=RSI(Close,MyIndicator.Length); Condition1=Pivot( My.Indicator,Length,LeftStrength,RightStrength,1,-1, oPivotPrice1,oPivotBar1)<>-1 AND (oPivotBar1-RightStrength)=0; Condition2=Pivot( My.Indicator,,Length,LeftStrength,RightStrength,2,-1, oPivotPrice2,oPivotBar2)<>-1; If Condition1AND Condition2AND L[oPivotBar2]>=L[oPivotBar1]AND My.Indicator,[oPivotBar2]> My.Indicator,[oPivotBar1]then // Change the sign < divergence > hidden divergence etc.. ************** Last edited by aaa; 05-30-2010 at 08:43 AM. | ||
| |
|
| | #5 | ||
![]() | Re: Negative/Reverse Divergence I seem to be running into a new problem now, it appears that the indicator is firing off alerts late. In the attached picture for example (15 min chart). The positive divergence is completed at 1am est, however the alert doesn't trigger until 1:45am. I looked at the code but can't seem to figure out what's causing the delay. Open to suggestions. Code: //---------------------------------------------------- inputs: //---------------------------------------------------- RSILength(9), StochLength(18), KLength(6), DLength(3), OverSold(20), OverBought(80), Length(20), LeftStrength(3), RightStrength(3), Div.Color.Down(yellow), Div.Color.Up(white), HD.Color.Down (red), HD.Color.Up (green), Line.Size(2), Plot.stochrsi(1), AlertOn.Off(1); //---------------------------------------------------- variables: //---------------------------------------------------- DToscK(0), DToscD(0), oPivotPrice1(0), oPivotBar1(0), oPivotPrice2(0), oPivotBar2(0), oPivotPrice11(0), oPivotBar11(0), oPivotPrice12(0), oPivotBar12(0); value1 = FastKCustomEasy(RSI(C, RSILength),StochLength); DToscK = average(value1,KLength); DToscD = average(DToscK,DLength); Condition1 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, -1, oPivotPrice1, oPivotBar1 ) <> -1 AND ( oPivotBar1 - RightStrength ) = 0 ; Condition11 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, 1, oPivotPrice11, oPivotBar11 ) <> -1 AND ( oPivotBar11 - RightStrength ) = 0 ; Condition2 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, -1, oPivotPrice2, oPivotBar2 ) <> -1; Condition12 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, 1, oPivotPrice12, oPivotBar12 ) <> -1; If Condition1 and Condition2 // added condition2 = referecne future data AND L[oPivotBar1] >= L[oPivotBar2] AND DToscK[oPivotBar2] > DToscK[oPivotBar1] then Begin Value2 = TL_New(D[oPivotBar2], T[oPivotBar2], L[oPivotBar2], D[oPivotBar1], T[oPivotBar1], L[oPivotBar1]); TL_SetColor( Value2, HD.Color.up ); TL_SetSize( Value2, Line.Size ); if AlertOn.Off <> 0 then Alert( "HD Bottom" ); End; If Condition1 and Condition2 // added condition2 = referecne future data AND L[oPivotBar2] >= L[oPivotBar1] AND DToscK[oPivotBar2] < DToscK[oPivotBar1] then Begin Value2 = TL_New(D[oPivotBar2], T[oPivotBar2], L[oPivotBar2], D[oPivotBar1], T[oPivotBar1], L[oPivotBar1]); TL_SetColor( Value2, Div.Color.up ); TL_SetSize( Value2, Line.Size ); if AlertOn.Off <> 0 then Alert( "DIV Bottom" ); End; If Condition11 and Condition12 // added condition12 referecne future data AND H[oPivotBar11] <= H[oPivotBar12] AND DToscK[oPivotBar11] > DToscK[oPivotBar12] then Begin Value12 = TL_New(D[oPivotBar12], T[oPivotBar12], H[oPivotBar12], D[oPivotBar11], T[oPivotBar11], H[oPivotBar11]); TL_SetColor( Value12, HD.Color.down ); TL_SetSize( Value12, Line.Size ); if AlertOn.Off <> 0 then Alert( "HD Top" ); End; If Condition11 and Condition12 // added condition12 referecne future data AND H[oPivotBar12] <= H[oPivotBar11] AND DToscK[oPivotBar12] > DToscK[oPivotBar11] then Begin Value12 = TL_New(D[oPivotBar12], T[oPivotBar12], H[oPivotBar12], D[oPivotBar11], T[oPivotBar11], H[oPivotBar11]); TL_SetColor( Value12, Div.Color.down ); TL_SetSize( Value12, Line.Size ); if AlertOn.Off <> 0 then Alert( "DIV Top" ); End; condition3 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, -1, oPivotPrice1, oPivotBar1 ) <> -1 AND ( oPivotBar1 - RightStrength ) = 0 ; condition32 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, 1, oPivotPrice11, oPivotBar11 ) <> -1 AND ( oPivotBar11 - RightStrength ) = 0 ; condition4 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, -1, oPivotPrice2, oPivotBar2 ) <> -1; condition42 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, 1, oPivotPrice12, oPivotBar12 ) <> -1; If Condition3 and condition4 AND L[oPivotBar1] >= L[oPivotBar2] AND DToscK[oPivotBar2] > DToscK[oPivotBar1] then Begin Value2 = TL_New_SELF(D[oPivotBar2], T[oPivotBar2], DToscK[oPivotBar2], D[oPivotBar1], T[oPivotBar1], DToscK[oPivotBar1]); TL_SetColor( Value2, HD.Color.up ); TL_SetSize( Value2, Line.Size ); End; If Condition3 and condition4 AND L[oPivotBar2] >= L[oPivotBar1] AND DToscK[oPivotBar2] < DToscK[oPivotBar1] then Begin Value2 = TL_New_SELF(D[oPivotBar2], T[oPivotBar2], DToscK[oPivotBar2], D[oPivotBar1], T[oPivotBar1], DToscK[oPivotBar1]); TL_SetColor( Value2, Div.Color.up ); TL_SetSize( Value2, Line.Size ); End; If Condition32 and Condition42 AND H[oPivotBar11] <= H[oPivotBar12] AND DToscK[oPivotBar11] > DToscK[oPivotBar12] then Begin Value12 = TL_New_SELF(D[oPivotBar12], T[oPivotBar12], DToscK[oPivotBar12], D[oPivotBar11], T[oPivotBar11], DToscK[oPivotBar11]); TL_SetColor( Value12, HD.Color.down ); TL_SetSize( Value12, Line.Size ); End; If Condition32 and Condition42 AND H[oPivotBar12] <= H[oPivotBar11] AND DToscK[oPivotBar12] > DToscK[oPivotBar11] then Begin Value12 = TL_New_SELF(D[oPivotBar12], T[oPivotBar12], DToscK[oPivotBar12], D[oPivotBar11], T[oPivotBar11], DToscK[oPivotBar11]); TL_SetColor( Value12, Div.Color.down ); TL_SetSize( Value12, Line.Size ); End; Plot1( DToscK, "stochrsi", blue ); plot2( 20, "oversold", white); plot3(80, "overbought", white); | ||
| |
|
| | #6 | ||
![]() | Re: Negative/Reverse Divergence Unfortunately pivot is not a RT function Suggestion RightStrength(2), try 2 put 2 and U'll have 2 wait 2 bars instead of 3 ************************* * The PPivot function returns the value of a pivot point and the number of bars ago the pivot occurred. RightStrength Numeric Sets the required number of bars on the right side of the pivot bar. ************************* ************ aaa ************************* PS I'm wondering how 2 trade if we have 2 wait 3 bars (45 mns delay in your resolution) 2 have a signal ?! Same problem with Carter scalper After Observing during a long time a market, we can visualy anticipate a divergence with prior signs IMO it's interesting 2 put an order at The anticipated level at the opposite of the trend (A kangourou tail where traders changing position) and after waiting 4 a div or any kind of other confirmation or exit with a quick profit If it works, it's like a lift rocket ! But it is risky Bcoz we can get killed many times B4 it works And then A traders enters after, when the divergence signal is confirmed B There is a DT/DB and it was an 2 early entry C Or the trend keep going and the stop is reached Not easy At the end it's a matter of observation and intuitive quick decision + strong stomach ************************* ******* On your graph we can C a kangourou trail ( in fact 1 + 1 the second one killed the first one) a lift rocket DB with certainly a divergence and then the trend changes at the broken line where there was certainly a lot of stop buy orders above So what should we do after 1:00 AM ? Take profit ? Trust in the hidden div and hold our position ? Last edited by aaa; 05-31-2010 at 06:18 AM. | ||
| |
|
| The Following User Says Thank You to aaa For This Useful Post: | ||
Stat (03-12-2011) | ||
| | #7 | ||
![]() | Re: Negative/Reverse Divergence I use the 15min, 1hr, etc as a signal for the direction I want to trade in and use a 3 min chart for entry. I'll try changing the right strength to 2, why not use 1? | ||
| |
|
| | #8 | ||
![]() | Re: Negative/Reverse Divergence Put 3 charts on the same screen Put right strength to 1 Put right strength to 2 Put right strength to 3 in each screen and choose the one which suits U best | ||
| |
|
| The Following User Says Thank You to aaa For This Useful Post: | ||
Stat (03-12-2011) | ||
![]() |
| Tags |
| macd, stochastic |
| Thread Tools | |
| Help Others By Rating This Thread | |
| |
| ∧ Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| RSI Divergence TrendLine | aaa | Trading Indicators | 11 | 02-25-2011 02:36 PM |
| MACD Divergence TrendLine | aaa | Trading Indicators | 42 | 02-20-2011 08:20 AM |
| Stochastic Divergence TrendLine | aaa | Trading Indicators | 9 | 05-15-2010 05:13 AM |