Библиотека польльских индикаторовзовате. БИБЛИОТЕКА ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ АЛЬФА-ДИРЕКТ4.0. Инструкция по созданию и импорту пользовательских индикаторов 4 библиотека пользовательских индикаторов 5
Скачать 1.9 Mb.
|
ConvertEMA (Convert on EMA) – Конверт на EMAКонверт – это канал, границы которого строятся как отклонение от МА (экспоненциального) на заданное число процентных значений. function Initialize() { IndicatorName = "ConvertEMA"; // Задайте название индикатора и сохраните с данным именем AddInput("Input", Inputs.Price); AddParameter("Period", 20); AddParameter("K", 0.5); PriceStudy = true; AddSeries("Upper", DrawAs.Line, Color.LightBlue); // Задаем вид линии индикатора A AddSeries("Lower", DrawAs.Line, Color.LightBlue); // Задаем вид линии индикатора A } function Evaluate() { // AlfaDirect. 2014. OX // Convert - Конверт на EMA if (CurrentIndex < 1) { Upper = Input[0] * (1.0 + (double) K / 100.0); Lower = Input[0] * (1.0 - (double) K / 100.0); } else { Upper = EMA(Input, Period)[0] * (1.0 + (double) K / 100.0); Lower = EMA(Input, Period)[0] * (1.0 - (double) K / 100.0); } } Пример отображения индикаторов KeltnerEMA и ConvertSMA ЯПОНСКИЕ ТРАДИЦИИHeikenAshi (Heiken Ashi Candles) – свечки Heiken AshiИндикатор Heiken Ashi отображает другой вид биржевой свечи. В свече Heiken Ashi применяются модифицированные цены открытия, максимума, минимума бара и цена закрытия (Open, High, Low, Close), которые рассчитываются следующим образом: Close = (O+H+L+C)/4; Open = (Open (предыдущего бара) + Close (предыдущего бара))/2; High = максимальное значение из (H, Open, Close); Low = минимальное значение из (L, Open, Close), где O, H, L, C – цены текущего бара (открытия, максимум, минимум, закрытия). Свечи Heiken Ashi отображаю направление изменения цены с запаздыванием, которое происходит из-за того, что параметры свечи зависят от цен предыдущего бара. Однако в этом запаздывании и проявляется преимущество индикатора, которое позволяет отсекать лишние шумы. Код Альфа-Директ. function Initialize() { IndicatorName = "HeikenAshi"; AddInput("Input", Inputs.Candle); PriceStudy = true; AddSeries("Open", DrawAs.Custom, Color.Gray); AddSeries("High", DrawAs.Custom, Color.Gray); AddSeries("Low", DrawAs.Custom, Color.Gray); AddSeries("Close", DrawAs.Custom, Color.Gray); } function Evaluate() { // AlfaDirect. 2015. OX // HeikenAshi Candles if (CurrentIndex < 1) { Close = Input.Close[0]; Open = Input.Open[0]; High = Input.High[0]; Low = Input.Low[0]; } else { Close = 0.25*(Input.Open[0] + Input.High[0] + Input.Low[0] + Input.Close[0]); Open = 0.5*(Open[-1] + Close[-1]); High = Math.Max(Math.Max(Open[0], Input.High[0]), Close[0]); Low = Math.Min(Math.Min(Open[0], Input.Low[0]), Close[0]); High.DrawVertical(Low, Color.Black, Line.Solid, 1); if ( Close > Open) Close.DrawHistogram(Open, Color.FromArgb(150, Color.Blue), Line.Solid, 1, Color.Blue, 100); else Close.DrawHistogram(Open, Color.FromArgb(150, Color.Magenta), Line.Solid, 1, Color.Magenta, 100); } } Ichimoku – ИШИМОКУИндикатор представляет собой систему, состоящую из линий: TenkanSen, KijunSen, SenkouSpanA, SenkouSpanB, Chikou. TenkanSen — короткая линия тренда, значения которой равны половине суммы самой высокой и низкой цены за короткий промежуток времени (Ts): Линия TenkanSen трактуется как направление движения тренда. Причём, считается, что чем выше крутизна этой линии тем ярче выражен тренд. KijunSen — среднее между максимум и минимум за средний промежуток времени (Tm): KijunSen используется в качестве показателя движения рынка. Если цены выше неё, они, вероятнее будут продолжать расти и наоборот. SenkouSpanA — среднее между Tenkan и Kijun, сдвинутое вперёд на средний временной промежуток (Tm): SenkouSpanB — среднее между максимумом и минимум за длинный промежуток времени (Tl), сдвинутое вперёд на средний промежуток времени (Tm): Chikou — сдвинутое назад на средний промежуток времени (Tm) значение цены: Облако — промежуток между Senkou A и Senkou B, показывающий волатильность рынка. Считается, что если цена находится в облаке, преобладает боковой тренд. Типовые параметры: Ts = 9, Tm = 26, Tl = 52. Автор: Санджин Ишимоку Первоисточник: Wikipedia Код Альфа-Директ function Initialize() { IndicatorName = "Ichimoku"; PriceStudy = true; AddInput("Input", Inputs.Candle); AddSeries("TenkanSen", DrawAs.Line, Color.Red); AddSeries("KijunSen", DrawAs.Line, Color.Cyan); AddSeries("SenkouSpanA", DrawAs.Custom, Color.Gray); AddSeries("SenkouSpanB", DrawAs.Line, Color.Black); // Должно соблюдаться: Ts = 9 << Tm = 26 << Tl = 52; AddParameter("Tl", 52, 2); AddParameter("Tm", 26); AddParameter("Ts", 9); } function Evaluate() { // AlfaDirect. 2014. OX. // ICHIMOKU. Описание по wikipedia. var Max = 0.0; var Min = 1000000000000.0; var T = 0.0; var K = 0.0; var i = 0; if (CurrentIndex < Tm+Tl) { TenkanSen = Input.Close[0]; KijunSen = Input.Close[0]; SenkouSpanA = Input.Close[0]; SenkouSpanB = Input.Close[0]; } else { for (i = 0; i <= Tm+Tl; i++) { if (Input.High[-i] > Max) Max = Input.High[-i]; if (Input.Low[-i] < Min) Min = Input.Low[-i]; if (i == Ts) TenkanSen = (Max + Min) / 2.0; if (i == Tm) { KijunSen = (Max + Min) / 2.0; Max = 0.0; Min = 1000000000000.0; } if (i == Tm + Ts) T = (Max + Min)/2; if (i == Tm + Tm) K = (Max + Min)/2; } // end for SenkouSpanA = (T + K) / 2.0; SenkouSpanB = (Max + Min) / 2.0; SenkouSpanA.DrawChannel( SenkouSpanB ); } // end if } |