Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 547

[Удален]  
Alexey Kozitsyn:

Да.

Можете написать так: a_200 = b; Но a-200 = b; - получите ошибку. 

Спасибо.
 
edutak:

О каком Магике речь?

О вашем же!
 
Alexey Kozitsyn:

Да.

Можете написать так: a_200 = b; Но a-200 = b; - получите ошибку. 

Но: b = a-200; не даст ошибку.
[Удален]  
Boris:
Но: b = a-200; не даст ошибку.
Здесь просто нужно понять, что знак равенства это не "равно" как в математике, а операция присваивания. Т.е. левой части (переменной) присваивается значение правой части (выражения или переменной).
[Удален]  
Скажите пожалуйста.

Если компилятор не выдает ошибок, но ордера открываются не правильно, скопом. Это может быть из-за неправильной логики алгоритма.

 

Вернее, если отключить блок закрытия ордеров, то открываются правильно, если включить блок закрытия ордеров. то сразу открываются ордера на каждом тике

 
edutak:
Скажите пожалуйста.

Если компилятор не выдает ошибок, но ордера открываются не правильно, скопом. Это может быть из-за неправильной логики алгоритма.

 

Вернее, если отключить блок закрытия ордеров, то открываются правильно, если включить блок закрытия ордеров. то сразу открываются ордера на каждом тике. 

без кода Вам не помогут. 
 
edutak:
Скажите пожалуйста.

Если компилятор не выдает ошибок, но ордера открываются не правильно, скопом. Это может быть из-за неправильной логики алгоритма.

 

Вернее, если отключить блок закрытия ордеров, то открываются правильно, если включить блок закрытия ордеров. то сразу открываются ордера на каждом тике. 

Ошибки бывают трех видов.

Синтаксические - выявляются на этапе компиляции

Логические - выявляются во время отладки и тестирования.

Времени выполнения - ошибка во время выполнения как правило возникает в результате не верных данных, например  деление на ноль или выход за границу массива.

[Удален]  
Vladislav Andruschenko:
без кода Вам не помогут. 

Мне бы не хотелось показывать код, так как первая версия оказалась очень живучей. Выдержал 10 лет без оптимизации. Теперь хочу сделать его чуть сложней и прибыльней.

Код очень простой.

 

Все таки ордера на каждом тике могут открываться из-за ошибки в логике? 

 
edutak:

Мне бы не хотелось показывать код, так как первая версия оказалась очень живучей. Выдержал 10 лет без оптимизации. Теперь хочу сделать его чуть сложней и прибыльней.

Код очень простой.

 

Все таки ордера на каждом тике могут открываться из-за ошибки в логике? 

Проверку делайте перед открытием позиции на предмет есть ли уже открытые или нет.
[Удален]  
Vitalii Ananev:
Проверку делайте перед открытием позиции на предмет есть ли уже открытые или нет.
Так?
for(int pos=0; pos<OrdersTotal(); pos++)
     {
      OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magik)
         kolpos++;
     }