Библиотека польльских индикаторовзовате. БИБЛИОТЕКА ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ АЛЬФА-ДИРЕКТ4.0. Инструкция по созданию и импорту пользовательских индикаторов 4 библиотека пользовательских индикаторов 5
Скачать 1.9 Mb.
|
УРОВНИLast (Last Price) – уровень последней ценыУровень последней цены – индикатор отображает уровень последней цены и используется в для удобства наблюдения за движением цены. Код Альфа-Директ. function Initialize() { IndicatorName = "Last"; AddInput("Input", Inputs.Price); PriceStudy = true; AddSeries("Last", DrawAs.Line, Color.Red); AddLevel(0, Color.Red, LineStyles.Dot, 1, "Last"); } function Evaluate() { // AlfaDirect. 2015. OX // Last - отображает уровень значения последней сделки if (CurrentIndex == MaxIndex) { Levels[0].Level = Input[0]; } } Last3D (Last Price) – уровень последней цены за 3 дняУровень последней цены за 3 дня – индикатор отображает уровень последних цен за 3 дня. Код Альфа-Директ. function Initialize() { IndicatorName = "Last3D"; AddInput("Input", Inputs.Price); PriceStudy = true; AddParameter("NeedBars", 520, 1); AddGlobalVariable("ListClose", Types.DoubleList); AddSeries("Last", DrawAs.Line, Color.Red); AddLevel(0, Color.Red, LineStyles.Solid, 1, "Last"); AddLevel(0, Color.Blue, LineStyles.DashBig, 1, "Last"); AddLevel(0, Color.Gray, LineStyles.DashSmall, 1, "Last"); } function Evaluate() { // AlfaDirect. 2015 // Запоминаем список закрытий дня if ( BarTime() == AsTime(10,0,0) && CurrentIndex != 0 ) { ListClose.Add(Input[-1]); } if (CurrentIndex == MaxIndex) { for (var i = 0; i < 3; i++) { Levels[i].Level = ListClose[ListClose.Count - i - 1]; if ( i >= 2 ) break; } } } RangeOfDay (Range Of Day) – Дневной диапазонДневной диапазон – индикатор отображает диапазон текущего дня, построенного по экстремумам. Пример. График с индикаторами Last и RangeOfDay. Код Альфа-Директ. function Initialize() { IndicatorName = "RangeOfDay"; AddInput("Input", Inputs.Candle); PriceStudy = true; AddSeries("RangeOfDay", DrawAs.Histogram, Color.Red); // Задаем вид линии 2 AddLevel(0, Color.Green, LineStyles.DashBig, 1, "RangeOfDay"); AddLevel(0, Color.Red, LineStyles.DashBig, 1, "RangeOfDay"); AddGlobalVariable("High", Types.Double, 0); AddGlobalVariable("Low", Types.Double, 0); } function Evaluate() { // AlfaDirect. 2015. OX // RangeOfDay - дневной диапазон if (BarDate() == DateTime.Today && BarTime() == AsTime(10, 0, 0)) { High = Input.High[0]; Low = Input.Low[0]; } else if (BarDate() == DateTime.Today && BarTime() > AsTime(10, 0, 0)) { if ( Input.High[-1] > High && Input.High[0] <= Input.High[-1] && Input.High[-2] <= Input.High[-1]) High = Input.High[-1]; if ( Input.Low[-1] < Low && Input.Low[0] >= Input.Low[-1] && Input.Low[-2] >= Input.Low[-1]) Low = Input.Low[-1]; } if (CurrentIndex < MaxIndex - 2) { Levels[0].Level = High; Levels[1].Level = Low; } } LevelPivot (PIVOT Level)– Уровни РАЗВОРОТАУровни разворота – это возможные уровни поддержки и сопротивления для колебаний цен в текущем дне. Уровни строятся относительно PivotPoint (точки разворота), которая рассчитывается как среднее максимума, минимума и закрытия предыдущего дня. Pivot = (High+Low+Close)/3 Сами уровни рассчитываются на основании максимума (high), минимума (low) и цены закрытия (close) предыдущего дня по следующим формулам: R1 = 2Pivot – Low S1 = 2Pivot – High R2 = Pivot + (R1 - S1) S2 = Pivot – (R1-S1) R3 = High + 2*(Pivot - Low) S3 = Low – 2*(High - Pivot) Код Альфа-Директ. function Initialize() { IndicatorName = "LevelPivot"; PriceStudy = true; AddInput("Input", Inputs.Candle); AddParameter("TF", 100, 5); AddSeries("LevelPivot", DrawAs.Line, Color.Gray); // Global AddGlobalVariable("Min", Types.Double, 0.0); AddGlobalVariable("Max", Types.Double, 0.0); AddGlobalVariable("Hi", Types.Double, 0.0); AddGlobalVariable("Lo", Types.Double, 0.0); AddGlobalVariable("Cl", Types.Double, 0.0); // Уровни AddLevel(0, Color.LightGreen, LineStyles.DashBig, 1, "LevelPivot"); AddLevel(0, Color.LightGreen, LineStyles.Dot, 1, "LevelPivot"); AddLevel(0, Color.LightGreen, LineStyles.Dot, 1, "LevelPivot"); AddLevel(0, Color.LightGreen, LineStyles.Dot, 1, "LevelPivot"); AddLevel(0, Color.Coral, LineStyles.Dot, 1, "LevelPivot"); AddLevel(0, Color.Coral, LineStyles.Dot, 1, "LevelPivot"); AddLevel(0, Color.Coral, LineStyles.Dot, 1, "LevelPivot"); } function Evaluate() { // AlfaDirect. 2015. OX // LevelPivot - уровни разворота для текущего (последнего) дня if (CurrentIndex < 1) { Cl = Input.Close[0]; Hi = Input.High[0]; Lo = Input.Low[0]; Max = Input.High[0]; Min = Input.Low[0]; } else if (BarTime() == AsTime(10, 0, 0)) { Cl = Input.Close[-1]; Hi = Max; Lo = Min; Max = Input.High[0]; Min = Input.Low[0]; } else { if (Input.High[0] > Max ) Max = Input.High[0]; if (Input.Low[0] < Min ) Min = Input.Low[0]; } if (CurrentIndex == MaxIndex) { var Pivot = (Hi+Lo+Cl)/3; Levels[0].Level = Pivot; // Resistance Levels[1].Level = Pivot * 2 - Lo; Levels[2].Level = Pivot + Hi - Lo; Levels[3].Level = Hi + 2*(Pivot-Lo); // Support Levels[4].Level = Pivot * 2 - Hi; Levels[5].Level = Pivot - Hi + Lo; Levels[6].Level = Lo - 2*(Hi-Pivot); } } |