// Downloaded From https://www.WiseStockTrader.com _SECTION_BEGIN("TDREI-w-TDPOQ"); /* * TD's Range Expansion Index (TD REI) * with Price Oscillator Qualifier (TD POQ) * * Notes: Code was modified to follow TD's rules. * Improvements: plenty of bug fixes. * * Buy when the "varPrimaryBuySetupSignal" is 1 * Sell when the "varPrimarySellSetupSignal" is 1 * */ varPeriod = Param("Periods", 5, 1, 8, 1); //default is 5. varSignal = Param("Signal", 40, 35, 45, 1);// default is 40. varOversoldSignal = (0-1)*varSignal; varOverboughtSignal = varSignal; // End set variables HighMom = H - Ref( H, -2 ); LowMom = L - Ref( L, -2 ); Cond1 = ( H >= Ref( L,-5) OR H >= Ref( L, -6 ) ) OR ( Ref( H, -2 ) >= Ref( C,-7 ) OR Ref( H, -2 ) >= Ref( C, -8 ) ); Cond2 = ( L <= Ref( H, -5 ) OR L <= Ref( H, -6) ) OR ( Ref( L, -2 ) <= Ref( C,-7 ) OR Ref( L, -2 ) <= Ref( C, -8 ) ); Cond = ( Cond1 AND Cond2 ); Num = IIf( Cond, HighMom + LowMom, 0 ); Den = abs( HighMom ) + abs( LowMom ); TDREI = 100 * Sum( Num, varPeriod )/Sum( Den, varPeriod ) ; // Identify oversold conditions nOversold = 0; nOverbought = 0; nOversold = Sum( TDREI <= varOversoldSignal, 6 ) == 6 OR Sum( TDREI <= varOversoldSignal, 5 ) == 5 OR Sum( TDREI <= varOversoldSignal, 4 ) == 4 OR Sum( TDREI <= varOversoldSignal, 3 ) == 3 OR Sum( TDREI <= varOversoldSignal, 2 ) == 2 OR TDREI <= varOversoldSignal ; // Identify overbought conditions nOverbought = Sum( TDREI >= varOverBoughtSignal, 6) == 6 OR Sum( TDREI >= varOverBoughtSignal, 5) == 5 OR Sum( TDREI >= varOverBoughtSignal, 4) == 4 OR Sum( TDREI >= varOverBoughtSignal, 3) == 3 OR Sum( TDREI >= varOverBoughtSignal, 2) == 2 OR TDREI >= varOverBoughtSignal ; // Tom DeMark Price Oscillator Qualifier (TD POQ) // Primary and Secondary Buy Setups apply to EOD of today // Buy = H > (H,-1) varPrimaryCheck = 0; varPrimaryBuySetup = 0; varSecondaryBuySetup = 0; varPrimaryBuySetup = ( Ref(C,-1) > Ref (C,-2) AND O <= Ref(H,-1) AND O<= Ref(H,-2) AND O<=Ref(H,-1) AND O<=L AND (H > Ref(H,-1) OR H > Ref(H,-2)) ); varPrimarySellSetup = ( Ref(C,-1) > Ref(C,-2) AND O >= Ref(L,-1) AND O >= Ref(L,-2) AND O >= H AND (L < Ref(L,-1) OR L < Ref(L,-2)) ); varPrimaryBuySetupSignal = IIf(varPrimaryBuySetup AND Ref( nOversold,-1),1,0); varPrimarySellSetupSignal = IIf(varPrimarySellSetup AND Ref(nOverbought,-1),1,0); // Start: Plot all lines Graph0=TDREI; Graph0Style=styleThick; Graph0Color=colorRed; Graph1=varOverboughtSignal; Graph1Style=styleLine; Graph1Color=colorBlue; Graph2=varOversoldSignal; Graph2Style=styleLine; Graph2Color=colorBlue; IIf(varPrimaryBuySetupSignal>0, PlotShapes(shapeUpArrow*varPrimaryBuySetupSignal,colorGreen),0); IIf(varPrimarySellSetupSignal>0, PlotShapes(shapeDownArrow*varPrimarySellSetupSignal,colorRed),0); // End: plot all lines Title =Name() + " -TDREI: " + "("+ WriteVal ( Graph0,format=1.2)+")"; _SECTION_END();