Период усреднения. Арифметические действия.

 

Здравствуйте.

Помогите, пожалуйста, написать код, в котором к периоду усреднения (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);  

 
Andrei Litiagin:

Здравствуйте.

Помогите, пожалуйста, написать код, в котором к периоду усреднения (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);  

https://docs.mql4.com/ru/indicators/ima
iMA - Технические индикаторы - Справочник MQL4
iMA - Технические индикаторы - Справочник MQL4
  • docs.mql4.com
iMA - Технические индикаторы - Справочник MQL4
 
Andrei Litiagin:

Здравствуйте.

Помогите, пожалуйста, написать код, в котором к периоду усреднения (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);  

выше ответили...

но какой смысл ? как физик - физику, размерности получаются разные. выходит сложение кислого с мягким

 
Renat Akhtyamov:

частное от значений или периодов?

int Result=0;

if(MA3!=0)Result=ma_period1+(int)NormalizeDouble(MA2/MA3,0);

Спасибо за оперативность.

Имелось ввиду частное от значений.

 
Andrei Litiagin:

Спасибо за оперативность.

Имелось ввиду частное от значений.

так и сделано, только у Вас МА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, авось? ...

 
Renat Akhtyamov:

поменяйте все input на extern, авось? ...

И что это даст?

 
Alexey Viktorov:

И что это даст?

это был ответ на уровне психологии

дождемся ответа

;)

 
Renat Akhtyamov:

поменяйте все input на extern, авось? ...

В этом случае отсутствует возможность производить подбор параметров при оптимизации автоматической торговой системы в терминале Meta Trader. 5

Причина обращения: