/*[[ Name := Dynamic_Period_Test Author := Copyright © 2004, David W Honeywell Link := DavidHon@msn.com Separate Window := Yes First Color := Coral First Draw Type := Line First Symbol := 217 Use Second Data := No Second Color := Red Second Draw Type := Line Second Symbol := 218 ]]*/ Inputs: Periods(14),Trend_Periods(7),Noise_Periods(1),Bars_Shown(200); Variable : shift(0),Test(0),prevbars(0),is_First(False),CheckSum(0),CheckSumPrev(0); variable : Trend_High(0),Trend_Low(0),Noise_High(0),Noise_Low(0),Dynamic_Periods(0); Trend_High = High[Highest(MODE_HIGH,Trend_Periods,Trend_Periods)]; Trend_Low = Low[Lowest(MODE_LOW,Trend_Periods,Trend_Periods)]; Noise_High = High[Highest(MODE_HIGH,Noise_Periods,Noise_Periods)]; Noise_Low = Low[Lowest(MODE_LOW,Noise_Periods,Noise_Periods)]; Dynamic_Periods=Round((Periods*((100/(Trend_High-Trend_Low))*(Noise_High-Noise_Low)))*0.01); Comment("Dynamic_Periods"," ",Dynamic_Periods); /*======================*/ /* Begin Pre-Loop Setup */ /*======================*/ //Check for additional bars loading or total reloadng. If Bars1 Then is_First=True; prevbars=Bars; //Have any Inputs changed? CheckSum=Bars_Shown+Dynamic_Periods+Periods+Trend_Periods+Noise_Periods; If CheckSum!=CheckSumPrev Then is_First=True; CheckSumPrev=CheckSum; //-------------------------------------------------------------------- If is_First Then { SetLoopCount(0); // loop from first bar to current bar (with shift=0) For shift=Bars_Shown-1 Downto 0 Begin Test=iForce(Dynamic_Periods,MODE_EMA,PRICE_CLOSE,shift); //Test=iRSI(Dynamic_Periods,shift); //Test=iWPR(Dynamic_Periods,shift); SetIndexValue(shift, Test); End; };