Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 829
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Коллеги - подскажите как преобразовать массив типа double в string. Надо для записи его в файл. Вот общий тренировочный код.
инф-ия взята из статьи
Сохранение и загрузка массивов из файла
При сохранении и загрузке массива из файла следует учитывать разницу значений размера массива по первому измерению и общее количество элементов массива. При сохранении массива сначала запишем в файл размер массива (общее количество элементов определяемое функцией ArraySize()), затем весь массив:
Здравствуйте, столкнулся с такой проблемой.
Есть два советника по одному инструменту, с разными магиками соответственно. Магик выставляю через CTrade, открываю позицию соответственно тоже через CTrade. При открытой позиции первого советника его магик присваевается второму советнику (установил проверку после открытии позиции, с.м. ниже), поэтому проверка на наличие открытых позиций не видит своего магика, в дальнейшем открывая множество позиций в одну сторону. Счет стоит на демке, в тестере такое выявить невозможно. Если значение магика сохраняется в классе, может его обнулять нужно, но я не знаю как.
Здравствуйте, столкнулся с такой проблемой.
Есть два советника по одному инструменту, с разными магиками соответственно. Магик выставляю через CTrade, открываю позицию соответственно тоже через CTrade. При открытой позиции первого советника его магик присваевается второму советнику (установил проверку после открытии позиции, с.м. ниже), поэтому проверка на наличие открытых позиций не видит своего магика, в дальнейшем открывая множество позиций в одну сторону. Счет стоит на демке, в тестере такое выявить невозможно. Если значение магика сохраняется в классе, может его обнулять нужно, но я не знаю как.
Пожалуйста, Вставляйте код правильно, а не в виде простыни текста.
По коду: задавайте во входных параметрах каждому советнику СВОЙ магик. Допустим первому задаёте 10001, тогда второму 10002.
Пожалуйста, Вставляйте код правильно, а не в виде простыни текста.
По коду: задавайте во входных параметрах каждому советнику СВОЙ магик. Допустим первому задаёте 10001, тогда второму 10002.
Спасибо за быстрый ответ. Но в том то и дело, что магики разные. Таким образом я и определил, что оказывается у второго робота позиции открываются с магиком первого. Как так получается и где он сохраняет магик номер первого советника я не знаю, но хотел бы разобраться.
Спасибо за быстрый ответ. Но в том то и дело, что магики разные. Таким образом я и определил, что оказывается у второго робота позиции открываются с магиком первого. Как так получается и где он сохраняет магик номер первого советника я не знаю, но хотел бы разобраться.
В этом случае, лучше задавать магик
// выставляем магик m_trade.SetExpertMagicNumber(Magic);перед каждым открытием позиции\ордера, а не в OnInit.В этом случае, лучше задавать магик
перед каждым открытием позиции\ордера, а не в OnInit.В данном случае не "лучше", а именно так и нужно - это класс-обёртка для стандартных торговых функций. Он не хранит множественные магики. Поэтому магик ему нужно устанавливать каждый раз перед тем, как, и когда требуется открывать позиции с новым магиком.
В общем последовательность такова:
и т.д. ...
В этом случае, лучше задавать магик
перед каждым открытием позиции\ордера, а не в OnInit.Изначально было так, не помогает. Но в примерах обычно стоит в OnInit поэтому перенес. Давно с этим вожусь, стоят совы на тесте вроде всё ровно идет, вдруг открываешь сервер, а там 20 позиций в одну сторону. Может ли влиять то что проверка открытых позиций не через классы?
Спасибо за быстрый ответ. Но в том то и дело, что магики разные. Таким образом я и определил, что оказывается у второго робота позиции открываются с магиком первого. Как так получается и где он сохраняет магик номер первого советника я не знаю, но хотел бы разобраться.
Так как в классе CTrade нет метода GetExpertMagicNumber, после торговой операции распечатайте этот код:
так проверите, точно ли разные магики у обоих экспертов.
В данном случае не "лучше", а именно так и нужно - это класс-обёртка для стандартных торговых функций. Он не хранит множественные магики. Поэтому магик ему нужно устанавливать каждый раз перед тем, как, и когда требуется открывать позиции с новым магиком.
В общем последовательность такова:
и т.д. ...
Я выразился так по той причине, что у некоторых может быть иное мнение и тоже рабочее.
В данном случае не "лучше", а именно так и нужно - это класс-обёртка для стандартных торговых функций. Он не хранит множественные магики. Поэтому магик ему нужно устанавливать каждый раз перед тем, как, и когда требуется открывать позиции с новым магиком.
В общем последовательность такова:
и т.д. ...
Вот было так:
m_trade.SetExpertMagicNumber(Magic); перед открытием позиции или после m_trade.Buy(lots1,_Symbol,0,SL,TP,"Lag-MA_IAMA(conversely)_2.5.6.7 + 2");