// Downloaded From https://www.WiseStockTrader.com _SECTION_BEGIN("DispWMA"); P = ParamField("Field"); Type = ParamList("Type", "Weighted,Simple,Exponential,Double Exponential,Tripple Exponential,Wilders"); Periods16 = Param("Periods16", 16, 2, 300 ); Displacement3 = Param("Displacement3", 3, -50, 50 ); Plot( WMA( P, Periods16 ), _DEFAULT_NAME(), colorRed, styleStaircase, 0, 0, Displacement3 ); m = 0; Periods8 = Param("Periods8", 8, 2, 300 ); Displacement2 = Param("Displacement2", 2, -50, 50 ); Plot( WMA( P, Periods8 ), _DEFAULT_NAME(), colorSkyblue,styleLine, 0, 0, Displacement2 ); m =0; Periods5 = Param("Periods5", 5, 2, 300 ); Displacement1 = Param("Displacement1", 1, -50, 50 ); Plot( WMA( P, Periods5 ), _DEFAULT_NAME(), colorTan,styleLine, 0, 0, Displacement1 ); m = 0; _SECTION_END(); _SECTION_BEGIN("Speed Lines"); P2 = 2; Plot( EMA( C, P2 ), "Spd 2" , colorBrightGreen,styleStaircase | styleThick ); _SECTION_END(); _SECTION_BEGIN("trend candle"); //////////////////////////////////// // Heikin_Ashi For Amibroker //////////////////////////////////// HaClose =EMA((O+H+L+C)/4,3); HaOpen = AMA( Ref( HaClose, -1 ), 0.5 ); HaHigh = Max( H, Max( HaClose, HaOpen ) ); HaLow = Min( L, Min( HaClose, HaOpen ) ); PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, "Modified " + Name(), colorBrown, styleCandle | styleNoLabel ); //SetChartBkGradientFill( ParamColor("BgTop", colorBrightGreen),ParamColor("BgBottom", colorSeaGreen)); Title=""; _SECTION_END(); _SECTION_BEGIN("MABIUTS"); SetChartOptions(0,chartShowArrows|chartShowDates); _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) )); Buy=EMA(C,13)>EMA(EMA(C,13),9) AND Cross (C,Peak(C,5,1)); Sell=Cross (EMA(EMA(C,13),9),EMA(C,13)); MYcolor = IIf( EMA(C,13)>EMA(EMA(C,13),9) AND C>Peak(C,2,1), colorGreen, IIf(EMA(C,13)>EMA(EMA(C,13),9) AND CRef(res,-1),1,IIf(C H,Ref(C,-1),H); TL=IIf(Ref(C,-1) < L,Ref(C,-1),L); TR = TH-TL; TRa= Wilders(TR,per); UpperBand3 =MA( C, per) + ( 4.2360 * TRa); UpperBand2=MA( C, per) + ( 2.6180 * TRa); UpperBand1=MA( C, per) + ( 1.6180 * TRa); MidPoint=MA(C, per); LowerBand1=MA( C, per) - ( 1.6180 * TRa); LowerBand2=MA( C, per) - ( 2.6180 * TRa); LowerBand3=MA( C, per) - ( 4.2360 * TRa); Plot(MidPoint,"",colorGreen,4); Plot(UpperBand1,"",colorRed,1); Plot(LowerBand1,"",colorRed,1); Plot(UpperBand2,"",colorAqua,1); Plot(LowerBand2,"",colorAqua,1); Plot(UpperBand3,"",colorYellow,1); Plot(LowerBand3,"",colorYellow,1); //PlotOHLC(O,H,L,C,"",colorWhite,64); _SECTION_END(); _SECTION_BEGIN("Ribbon"); // ribbon code Plot( 2, "Ribbon",IIf(C>tsl,colorBlue,colorRed),styleOwnScale|styleArea|styleNoLabel, -0.5, 100 ); _SECTION_END(); /* ********************************** Code to automatically identify pivots ********************************** */ // -- what will be our lookback range for the hh and ll? farback=Param("How Far back to go",100,50,5000,10); nBars = Param("Number of bars", 12, 5, 40); // -- Title. //Title = Name() + " (" + StrLeft(FullName(), 15) + ") O: " + Open + ", //H: " + High + ", L: " + Low + ", C: " + Close; // -- Plot basic candle chart //PlotOHLC(Open, High, Low, Close, //"BIdx = " + BarIndex() + //"\n" + "O = " + O + "\n"+"H = "+ H + "\n"+"L = " + L //+ "\n"+"C ", //colorBlack, styleCandle); GraphXSpace=7; // -- Create 0-initialized arrays the size of barcount aHPivs = H - H; aLPivs = L - L; // -- More for future use, not necessary for basic plotting aHPivHighs = H - H; aLPivLows = L - L; aHPivIdxs = H - H; aLPivIdxs = L - L; nHPivs = 0; nLPivs = 0; lastHPIdx = 0; lastLPIdx = 0; lastHPH = 0; lastLPL = 0; curPivBarIdx = 0; // -- looking back from the current bar, how many bars // back were the hhv and llv values of the previous // n bars, etc.? aHHVBars = HHVBars(H, nBars); aLLVBars = LLVBars(L, nBars); aHHV = HHV(H, nBars); aLLV = LLV(L, nBars); // -- Would like to set this up so pivots are calculated back from // last visible bar to make it easy to "go back" and see the pivots // this code would find. However, the first instance of // _Trace output will show a value of 0 aVisBars = Status("barvisible"); nLastVisBar = LastValue(Highest(IIf(aVisBars, BarIndex(), 0))); _TRACE("Last visible bar: " + nLastVisBar); // -- Initialize value of curTrend curBar = (BarCount-1); curTrend = ""; if (aLLVBars[curBar] < aHHVBars[curBar]) { curTrend = "D"; } else { curTrend = "U"; } // -- Loop through bars. Search for // entirely array-based approach // in future version for (i=0; i lastHPIdx) { // -- Bar and price info for candidate pivot candIdx = curBar - aHHVBars[curBar]; candPrc = aHHV[curBar]; if ( lastHPH < candPrc AND candIdx > lastLPIdx AND candIdx < curBar) { // -- OK, we'll add this as a pivot... aHPivs[candIdx] = 1; // ...and then rearrange elements in the // pivot information arrays for (j=0; j candPrc AND candIdx > lastHPIdx AND candIdx < curBar) { // -- OK, we'll add this as a pivot... aLPivs[candIdx] = 1; // ...and then rearrange elements in the // pivot information arrays for (j=0; j