Советники: Multik

 

Multik:

Мультивалютный советник.

Автор: AM2

Мультивалютный эксперт

Мультивалютный эксперт

 

Что, нормализовать все пары будем по текущему инструменту ?

dsma2 = NormalizeDouble(SMA[2] - SMA[3], _Digits);      // MA на участке 2-3
dsma1 = NormalizeDouble(SMA[1] - SMA[2], _Digits);      // MA на участке 1-2

 
Valmars:

Что, нормализовать все пары будем по текущему инструменту ?


Да, здесь заложена ошибка. Кроме того, функцию определения нового бара можно реализовать без использования функции копирования времени.
 
Valmars:

Что, нормализовать все пары будем по текущему инструменту ?


А как правильно реализовать чтобы без предупреждений было?

В исходном варианте так примерно:

     int Digits_ = SymbolInfoInteger(Symbol_, SYMBOL_DIGITS) + 4;
     dsma2 = NormalizeDouble(SMA[2] - SMA[3], Digits_);      // MA на участке 2-3
     dsma1 = NormalizeDouble(SMA[1] - SMA[2], Digits_);      // MA на участке 1-2

 

 
AM2:

А как правильно реализовать чтобы без предупреждений было?

В исходном варианте так примерно:

А при чем тут +4? Так вроде должно быть по логике вещей

int Digits_ = SymbolInfoInteger(Symbol_, SYMBOL_DIGITS);
dsma2 = NormalizeDouble(SMA[2] - SMA[3], Digits_); // MA на участке 2-3
dsma1 = NormalizeDouble(SMA[1] - SMA[2], Digits_); // MA на участке 1-2
 
Interesting:

А при чем тут +4? Так вроде должно быть по логике вещей

Так тоже предупреждение идет:

possible loss of data due to type conversion Multik.mq5 218 18
 

 
AM2:

Так тоже предупреждение идет:

possible loss of data due to type conversion Multik.mq5 218 18
 

 что бы не было предупреждений, надо сделать конверсию вот так

int Digits_ = (int)SymbolInfoInteger(Symbol_, SYMBOL_DIGITS);
 
sergey1294:

 что бы не было предупреждений, надо сделать конверсию вот так

Спасибо все работает!
 
Принудительно выставив тейкпроит и стоплосс,при открытии сделок они не выставляются,в чем проблема?