Библиотека польльских индикаторовзовате. БИБЛИОТЕКА ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ АЛЬФА-ДИРЕКТ4.0. Инструкция по созданию и импорту пользовательских индикаторов 4 библиотека пользовательских индикаторов 5
Скачать 1.9 Mb.
|
LevelCamarilla (Camarilla Level)– Уровни камариллаУровни камарилла – уровни поддержки и сопротивления для колебаний цен в текущем дне. Индикатор может содержать 8 (без H5 и L5) или 10 уровней. Уровни рассчитываются на основании максимума (high), минимума (low) и цены закрытия (close) предыдущего дня по следующим формулам: H1 = close + (high-low)*1.1 /12 H2 = close + (high-low)*1.1 /6 H3 = close + (high-low)*1.1 /4 H4 = close + (high-low)*1.1 /2 H5 = (high/low)*close L1 = close - (high-low)*1.1 /12 L2 = close - (high-low)*1.1 /6 L3 = close - (high-low)*1.1 /4 L4 = close - (high-low)*1.1 /2 L5 = close - (H5 - close) На основании данных уровней часто строится простая торговая система, которая говорит, что движение цены внутри уровне H3 и L3 подтверждает боковую тенденцию, а выход за пределы H4 и L4 сигнализирует о возможном начале локального тренда. Пример. Автор: Nick Scott Первоисточник: http://www.camarillaequation.com/ Код Альфа-Директ. function Initialize() { IndicatorName = "LevelCamarilla"; PriceStudy = true; AddInput("Input", Inputs.Candle); AddParameter("TF", 100, 5); AddSeries("Cl", DrawAs.Line, Color.Blue, false); // 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); // Resistance AddLevel(0, Color.LightGreen, LineStyles.Dot, 1, "Cl"); AddLevel(0, Color.LightGreen, LineStyles.Dot, 1, "Cl"); AddLevel(0, Color.LightGreen, LineStyles.DashBig, 1, "Cl"); AddLevel(0, Color.LightGreen, LineStyles.Dot, 1, "Cl"); // Suuport AddLevel(0, Color.Coral, LineStyles.Dot, 1, "Cl"); AddLevel(0, Color.Coral, LineStyles.Dot, 1, "Cl"); AddLevel(0, Color.Coral, LineStyles.DashBig, 1, "Cl"); AddLevel(0, Color.Coral, LineStyles.Dot, 1, "Cl"); } function Evaluate() { // AlfaDirect. 2015. OX // LevelCamarilla - уровни Камара только для текущего дня (8 уровней) // Нельзя использовать для тестирования 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 { Cl = Cl[-1] ; if (Input.High[0] > Max ) Max = Input.High[0]; if (Input.Low[0] < Min ) Min = Input.Low[0]; } if (CurrentIndex == MaxIndex) { Levels[0].Level = Cl[0]+(Hi-Lo)*1.1/12; Levels[1].Level = Cl[0]+(Hi-Lo)*1.1/6; Levels[2].Level = Cl[0]+(Hi-Lo)*1.1/4; Levels[3].Level = Cl[0]+(Hi-Lo)*1.1/2; Levels[4].Level = Cl[0]-(Hi-Lo)*1.1/12; Levels[5].Level = Cl[0]-(Hi-Lo)*1.1/6; Levels[6].Level = Cl[0]-(Hi-Lo)*1.1/4; Levels[7].Level = Cl[0]-(Hi-Lo)*1.1/2; } } Автор: Nick Scott Первоисточник: http://www.camarillaequation.com/ Код Альфа-Директ. Индикатор для тестирования. function Initialize() { IndicatorName = "LevelCamar"; PriceStudy = true; AddInput("Input", Inputs.Candle); AddParameter("NeedData", 500, 1); AddSeries("H1", DrawAs.Custom, Color.Green); AddSeries("H2", DrawAs.Custom, Color.Green); AddSeries("H3", DrawAs.Custom, Color.Green); AddSeries("H4", DrawAs.Custom, Color.Green); //AddSeries("H5", DrawAs.Line, Color.Green); AddSeries("L1", DrawAs.Custom, Color.Red); AddSeries("L2", DrawAs.Custom, Color.Red); AddSeries("L3", DrawAs.Custom, Color.Red); AddSeries("L4", DrawAs.Custom, Color.Red); //AddSeries("L5", DrawAs.Line, Color.Red); AddGlobalVariable("Min", Types.Double, 0.0); AddGlobalVariable("Max", Types.Double, 0.0); AddGlobalVariable("CL", Types.Double, 0.0); AddGlobalVariable("H", Types.Double, 0.0); AddGlobalVariable("L", Types.Double, 0.0); } function Evaluate() { // AlfaDirect. 2015. OX // LevelCamar - уровни Камара для всех дней // Можно использовать для тестирования на истории if (CurrentIndex < 1) { CL = Input.Close[0]; H = Input.High[0]; L = Input.Low[0]; Max = 0.0; Min = 100000000000.0; } else if (BarTime() == AsTime(10, 0, 0)) { CL = Input.Close[-1]; H = Max; L = Min; Max = Input.High[0]; Min = Input.Low[0]; { H1 = CL + (H-L)*1.1/12.0; H2 = CL + (H-L)*1.1/6.0; H3 = CL + (H-L)*1.1/4.0; H4 = CL + (H-L)*1.1/2.0; //H5 = CL * (H/L); L1 = CL - (H-L)*1.1/12.0; L2 = CL - (H-L)*1.1/6.0; L3 = CL - (H-L)*1.1/4.0; L4 = CL - (H-L)*1.1/2.0; //L5 = 2.0*CL - H5; } } else { { H1 = H1[-1] ; H2 = H2[-1] ; H3 = H3[-1] ; H4 = H4[-1] ; //H5 = H5[-1] ; L1 = L1[-1] ; L2 = L2[-1] ; L3 = L3[-1] ; L4 = L4[-1] ; //L5 = L5[-1] ; } if (Input.High[0] > Max ) Max = Input.High[0]; if (Input.Low[0] < Min ) Min = Input.Low[0]; H1.DrawLine(Color.LightGreen, LineStyles.Dot, 1); H2.DrawLine(Color.LightGreen, LineStyles.Dot, 1); H3.DrawLine(Color.LightGreen, LineStyles.Dot, 1); H4.DrawLine(Color.LightGreen, LineStyles.Dot, 1); L1.DrawLine(Color.Coral, LineStyles.Dot, 1); L2.DrawLine(Color.Coral, LineStyles.Dot, 1); L3.DrawLine(Color.Coral, LineStyles.Dot, 1); L4.DrawLine(Color.Coral, LineStyles.Dot, 1); } } |