Stock Portfolio Organizer
The ultimate porfolio management solution.
Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
TREND for Amibroker (AFL)
Copy & Paste Friendly
Back
SetChartOptions(0, chartShowArrows | chartShowDates); SetChartBkColor(ParamColor("Outer Panel", colorBlack)); SetChartBkGradientFill(ParamColor("Upper Chart", colorDarkGrey), ParamColor("Lower Chart", colorDarkGrey)); GraphXSpace = Param("GraphXSpace", 10, 0, 100, 1); colorHighliter = IIf(C >= O, ColorRGB(0, 128, 0), ColorRGB(128, 0, 0)); //Demand Point colorDemandPoint = ParamColor("Demand Line", ColorRGB(0, 128, 255)); DemandPoint = (Ref(L, -1) < Ref(L, -2)) & (L < Ref(L, -1)) & (L < Ref(L, 1)) & (Ref(L, 1) < Ref(L, 2)); //Supply Point colorSupplyPoint = ParamColor("Supply Line", ColorRGB(255, 128, 0)); SupplyPoint = (Ref(H, -1) > Ref(H, -2)) & (H > Ref(H, -1)) & (H > Ref(H, 1)) & (Ref(H, 1) > Ref(H, 2)); CountTrendBars = 0; CurrentBar = BarCount - 1; dx0 = dx1 = dy0 = dy1 = 0; sx0 = sx1 = sy0 = sy1 = 0; for (i = 0; i < BarCount; i++) { CurrentBar = (BarCount - 1) - i; if (DemandPoint[CurrentBar]) { if (dx1 == 0 & dy1 == 0) { dx1 = CurrentBar; dy1 = L[CurrentBar]; } else { dx0 = CurrentBar; dy0 = L[CurrentBar]; } if (dx0 != 0 & dx1 != 0 & dy0 != 0 & dy1 != 0) { if (dy0 < dy1) { a = (-dy0 + dy1) / (-dx0 + dx1); b = dy0 - dx0 * a; for (j = dx1; j < BarCount; j++) { if (j != dx1) { y2 = a * j + b; if (C[j] < y2) { dy1 = y2; dx1 = j; colorHighliter[j] = ColorRGB(128, 0, 128); CountTrendBars[j] = dx1 - dx0 - 1; break; } } } if (dy1 != y2) { dy1 = y2; dx1 = BarCount - 1; } Plot(LineArray(dx0, dy0, dx1, dy1, 0), "", colorDemandPoint, styleLine, Null, Null, 0, 0, 2); } dx1 = dx0; dy1 = dy0; dx0 = dy0 = 0; } } if (SupplyPoint[CurrentBar]) { if (sx1 == 0 & sy1 == 0) { sx1 = CurrentBar; sy1 = H[CurrentBar]; } else { sx0 = CurrentBar; sy0 = H[CurrentBar]; } if (sx0 != 0 & sx1 != 0 & sy0 != 0 & sy1 != 0) { if (sy0 > sy1) { a = (-sy0 + sy1) / (-sx0 + sx1); b = sy0 - sx0 * a; for (j = sx1; j < BarCount; j++) { if (j != sx1) { y2 = a * j + b; if (C[j] > y2) { sy1 = y2; sx1 = j; colorHighliter[j] = ColorRGB(128, 128, 0); CountTrendBars[j] = sx1 - sx0 - 1; break; } } } if (sy1 != y2) { sy1 = y2; sx1 = BarCount - 1; } Plot(LineArray(sx0, sy0, sx1, sy1, 0), "", colorSupplyPoint, styleLine, Null, Null, 0, 0, 2); } sx1 = sx0; sy1 = sy0; sx0 = sy0 = 0; } } } //Stop Loss & Targets for (i = 0; i < BarCount; i++) { CurrentBar = (BarCount - 1) - i; if (colorHighliter[CurrentBar] == ColorRGB(128, 0, 128)) { StopLoss = 0; for (j = CurrentBar - CountTrendBars[CurrentBar]; j <= CurrentBar; j++) { StopLoss = Max(H[j], StopLoss); } if (CurrentBar - (BarCount - 1) != 0) { t1 = C[CurrentBar] - (StopLoss - C[CurrentBar]); t2 = C[CurrentBar] - ((StopLoss - C[CurrentBar]) * 1.272); t3 = C[CurrentBar] - ((StopLoss - C[CurrentBar]) * 1.618); Plot(LineArray(CurrentBar, StopLoss + 0.01, BarCount - 1, StopLoss + 0.01, 0), "", ColorRGB(255, 0, 0), styleDots | styleNoLabel, Null, Null, 0, 0, 1); Plot(LineArray(CurrentBar, C[CurrentBar], BarCount - 1, C[CurrentBar], 0), "", ColorRGB(255, 255, 0), styleDots, Null, Null, 0, 0, 1); Plot(LineArray(CurrentBar, t1, BarCount - 1, t1, 0), "", ColorRGB(0, 255, 0), styleDots | styleNoLabel, Null, Null, 0, 0, 1); Plot(LineArray(CurrentBar, t2, BarCount - 1, t2, 0), "", ColorRGB(0, 255, 0), styleDots | styleNoLabel, Null, Null, 0, 0, 1); Plot(LineArray(CurrentBar, t3, BarCount - 1, t3, 0), "", ColorRGB(0, 255, 0), styleDots | styleNoLabel, Null, Null, 0, 0, 1); PlotText("Stop Loss\n@" + WriteVal(StopLoss + 0.01, 1.2), BarCount, StopLoss + 0.01, ColorRGB(255, 255, 255)); PlotText("T1 @" + WriteVal(t1, 1.2), BarCount, t1, ColorRGB(255, 255, 255)); PlotText("T2 @" + WriteVal(t2, 1.2), BarCount, t2, ColorRGB(255, 255, 255)); PlotText("T3 @" + WriteVal(t3, 1.2), BarCount, t3, ColorRGB(255, 255, 255)); } break; } if (colorHighliter[CurrentBar] == ColorRGB(128, 128, 0)) { StopLoss = 9999; for (j = CurrentBar - CountTrendBars[CurrentBar]; j <= CurrentBar; j++) { StopLoss = Min(L[j], StopLoss); } if (CurrentBar - (BarCount - 1) != 0) { t1 = C[CurrentBar] + (C[CurrentBar] - StopLoss); t2 = C[CurrentBar] + ((C[CurrentBar] - StopLoss) * 1.272); t3 = C[CurrentBar] + ((C[CurrentBar] - StopLoss) * 1.618); Plot(LineArray(CurrentBar, StopLoss - 0.01, BarCount - 1, StopLoss - 0.01, 0), "", ColorRGB(255, 0, 0), styleDots | styleNoLabel, Null, Null, 0, 0, 1); Plot(LineArray(CurrentBar, C[CurrentBar], BarCount - 1, C[CurrentBar], 0), "", ColorRGB(255, 255, 0), styleDots, Null, Null, 0, 0, 1); Plot(LineArray(CurrentBar, t1, BarCount - 1, t1, 0), "", ColorRGB(0, 255, 0), styleDots | styleNoLabel, Null, Null, 0, 0, 1); Plot(LineArray(CurrentBar, t2, BarCount - 1, t2, 0), "", ColorRGB(0, 255, 0), styleDots | styleNoLabel, Null, Null, 0, 0, 1); Plot(LineArray(CurrentBar, t3, BarCount - 1, t3, 0), "", ColorRGB(0, 255, 0), styleDots | styleNoLabel, Null, Null, 0, 0, 1); PlotText("Stop Loss\n@" + WriteVal(StopLoss - 0.01, 1.2), BarCount, StopLoss - 0.01, ColorRGB(255, 255, 255)); PlotText("T1 @" + WriteVal(t1, 1.2), BarCount, t1, ColorRGB(255, 255, 255)); PlotText("T2 @" + WriteVal(t2, 1.2), BarCount, t2, ColorRGB(255, 255, 255)); PlotText("T3 @" + WriteVal(t3, 1.2), BarCount, t3, ColorRGB(255, 255, 255)); } break; } } //Price SetBarFillColor(colorHighliter); Plot(C, "Close", IIf(colorHighliter == ColorRGB(128, 0, 128), ColorRGB(255, 0, 255), IIf(colorHighliter == ColorRGB(128, 128, 0), ColorRGB(255, 255, 0), IIf(C > O, ColorRGB(0, 255, 0), IIf(C < O, ColorRGB(255, 0, 0), ColorRGB(255, 255, 255))))), styleCandle, Null, Null, 0, 0, 1); //Volume /*colorVolume = ParamColor("Volume Area", ColorRGB(0, 0, 0)); Plot(Volume, "", colorVolume, styleArea | styleOwnScale | styleNoLabel, Null, Null, 0, 0, 1);*/ Title = Name() + " - {{INTERVAL}} - {{DATE}} - Open = " + NumToStr(O, 1.2) + ", High = " + NumToStr(H, 1.2) + ", Low = " + NumToStr(L, 1.2) + ", Close = " + NumToStr(C, 1.2) + " (" + WriteVal(ROC(C, 1), 1.2) + "%)"; /*, Volume = " + WriteVal(Volume, 1.2);*/