Здравствуйте.
Помогите, пожалуйста, написать код, в котором к периоду усреднения (ma_period1) индикатора Moving Average 1 прибавляется значение, полученное как частное от двух других индикаторов Moving Average 2 и Moving Average 3, с округлением результата деления до целого значения.
MA1 = iMA(Symbol, Period, ma_period1, 0, MODE_SMA, PRICE_MEDIAN);
MA2 = iMA(Symbol, Period, ma_period2, 0, MODE_SMA, PRICE_MEDIAN);
MA3 = iMA(Symbol, Period, ma_period2, 0, MODE_SMA, PRICE_MEDIAN);
частное от значений или периодов?
int Result=0;
if(MA3!=0)Result=ma_period1+(int)NormalizeDouble(MA2/MA3,0);
MA1 = iMA(Symbol(), Period(), ma_period1, 0, MODE_SMA, PRICE_MEDIAN,0);
MA2 = iMA(Symbol(), Period(), ma_period2, 0, MODE_SMA, PRICE_MEDIAN,0);
MA3 = iMA(Symbol(), Period(), ma_period2, 0, MODE_SMA, PRICE_MEDIAN,0);

- docs.mql4.com
Здравствуйте.
Помогите, пожалуйста, написать код, в котором к периоду усреднения (ma_period1) индикатора Moving Average 1 прибавляется значение, полученное как частное от двух других индикаторов Moving Average 2 и Moving Average 3, с округлением результата деления до целого значения.
MA1 = iMA(Symbol, Period, ma_period1, 0, MODE_SMA, PRICE_MEDIAN);
MA2 = iMA(Symbol, Period, ma_period2, 0, MODE_SMA, PRICE_MEDIAN);
MA3 = iMA(Symbol, Period, ma_period2, 0, MODE_SMA, PRICE_MEDIAN);
выше ответили...
но какой смысл ? как физик - физику, размерности получаются разные. выходит сложение кислого с мягким
частное от значений или периодов?
int Result=0;
if(MA3!=0)Result=ma_period1+(int)NormalizeDouble(MA2/MA3,0);
Спасибо за оперативность.
Имелось ввиду частное от значений.
Спасибо за оперативность.
Имелось ввиду частное от значений.
так и сделано, только у Вас МА2 и МА3 с одним и тем же периодом почему то
ma_period2 в обоих
частное всегда будет равно 1 при таких параметрах
Внес изменения в код по аналогии указанной в сообщении выше.
Компилятор ошибок не выдает, но при оптимизации параметров результаты не меняются.
Подскажите, пожалуйста , в чем ошибка.
input int MAP = 12; input int MATS = 10; input int kMA_L = 3; input int kMA_M = 5; input int kMA_H = 7; input int kMA_S = 10; input int ATRPeriod = 14; input double kATR_L = 2.5; input double kATR_M = 3.5; input double kATR_H = 5; int HMA, MATS, HATRF, MAPeriod, MATSPeriod; int OnInit() { HATRF = iATR(_Symbol, _Period, ATRPeriod); if (MAPeriod != 0 || MATSPeriod != 0 || HVMAF <= kATR_L || HVMAF < kATR_M || HVMAF < kATR_H) MAPeriod = MAP + kMA_L; MATSPeriod = MATSP + kMA_L; { if (MAPeriod != 0 || MATSPeriod != 0 || HVMAF > kATR_L || HVMAF <= kATR_M || HVMAF < kATR_H) MAPeriod = MAP + kMA_M; MATSPeriod = MATSP + kMA_M; { if (MAPeriod != 0 || MATSPeriod != 0 || HVMAF > kATR_L || HVMAF > kATR_M || HVMAF <= kATR_H) MAPeriod = MAP + kMA_H; MATSPeriod = MATSP +kMA_H; { if (MAPeriod != 0 || MATSPeriod != 0 || HVMAF > kATR_L || HVMAF > kATR_M || HVMAF > kATR_H) MAPeriod = MAP + kMA_S; MATSPeriod = MATSP +kMA_S; } } } HMA = iMA(_Symbol, _Period, MAPeriod, 0, MODE_SMA, PRICE_CLOSE); MATS = iMA(_Symbol, _Period, MATSPeriod, 0, MODE_SMA, PRICE_CLOSE);
поменяйте все input на extern, авось? ...
поменяйте все input на extern, авось? ...
И что это даст?
И что это даст?
это был ответ на уровне психологии
дождемся ответа
;)
поменяйте все input на extern, авось? ...
В этом случае отсутствует возможность производить подбор параметров при оптимизации автоматической торговой системы в терминале Meta Trader. 5

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте.
Помогите, пожалуйста, написать код, в котором к периоду усреднения (ma_period1) индикатора Moving Average 1 прибавляется значение, полученное как частное от двух других индикаторов Moving Average 2 и Moving Average 3, с округлением результата деления до целого значения.
MA1 = iMA(Symbol, Period, ma_period1, 0, MODE_SMA, PRICE_MEDIAN);
MA2 = iMA(Symbol, Period, ma_period2, 0, MODE_SMA, PRICE_MEDIAN);
MA3 = iMA(Symbol, Period, ma_period2, 0, MODE_SMA, PRICE_MEDIAN);