Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1010
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
при открытии ордера пишите ему в коммент номер правила/переменной по которому его открываете.
потом когда будете рыть историю - вытаскиваете этот номер, добавляете к нему 1 и получаете новый номер правила
Спасибо! Хороший способ. Попробую
Поэкспериментируйте с таким кодом, возможно это Вам нужно
2019.11.28 22:31:26.409 tst EURUSD,H1: 0.7 ---> 0.7
2019.11.28 22:31:26.409 tst EURUSD,H1: 0.6 ---> 0.7
2019.11.28 22:31:26.409 tst EURUSD,H1: 0.5 ---> 0.6
2019.11.28 22:31:26.409 tst EURUSD,H1: 0.4 ---> 0.5
2019.11.28 22:31:26.409 tst EURUSD,H1: 0.3 ---> 0.4
2019.11.28 22:31:26.409 tst EURUSD,H1: 0.2 ---> 0.3
2019.11.28 22:31:26.409 tst EURUSD,H1: 0.1 ---> 0.2
в мою функцию GetNextLot() будете подавать обьем последнего закрытого ордера, а она будет возвращать следующее значение настройки Lot_XX
единственное ограничение в таком коде это настройки лотов должны быть по возрастанию - ну думаю код простой и понятный, переделаете под свои задачи
Спасибо!!
Спасибо!!
пожалуйста
если расчет лота у Вас вообще произвольный, можно попробовать в моем примере заменить if на switch-case
Как лучше написать алгоритм?
Задача:
Один советник запускается на разных графиках.
Нужно чтоб в отдельный файл писалась по минутам информация о счете про Баланс, эквити и т.д.
Сейчас получается, что все советники в один файл пишут всю инфу. В итоге, получается много лишних записей.
Какое можно придумать оригинальное решение, чтоб в файл записи делал только один бот. (А если его например удалили, то записи начинал делать другой бот и т.д.)
Я хочу открыть 2 терминала МТ4 и с них подключаться к одному советнику, т.е. программа одна будет установлена в один терминала а второй тоже сможет находить советника, очень тяжело компилировать программу и каждый раз бросать файл туда и туда. Можно ли такое сделать?
Так нельзя.
Поищите программу для винды, которая синхронизирует данные в папках. И настройте так, чтоб советник автоматом копировался в новый терминал
Как лучше написать алгоритм?
Задача:
Один советник запускается на разных графиках.
Нужно чтоб в отдельный файл писалась по минутам информация о счете про Баланс, эквити и т.д.
Сейчас получается, что все советники в один файл пишут всю инфу. В итоге, получается много лишних записей.
Какое можно придумать оригинальное решение, чтоб в файл записи делал только один бот. (А если его например удалили, то записи начинал делать другой бот и т.д.)
Можно попробовать через GV организовать взаимодействие.
Например: Запустил первый, он не находит GV и создаёт её с определённым именем. В качестве значения можно использовать ID графика. Запускаешь следующий советник, GV есть, не пишет. Удаляешь первый, он проверяет значение, если значение равно ID графика, то удаляет GV. Следующий видит, что GV отсутствует и создаёт со своим значением.
Таким образом удалить GV может только тот кто её создал или тот, кто всем этим руководит, в прямом смысле этого слова. Удаляет руками.
Здравствуйте, все. У меня глупый вопрос, просто экспериментировать немного не хочется. Есть индикатор, мне не нужно из него ничего выводить, но эксперт должен бырать из него данные. Каким свойствам правильнее инициализировать массивы?
INDICATOR_DATA или INDICATOR_CALCULATIONS?
Т.е. вопрос в общем в том, смогу ли я по номеру буфера из функции iCustom получить данные из буфера объявленного как SetIndexBuffer(N, BufferName, INDICATOR_CALCULATIONS);
Здравствуйте, все. У меня глупый вопрос, просто экспериментировать немного не хочется. Есть индикатор, мне не нужно из него ничего выводить, но эксперт должен бырать из него данные. Каким свойствам правильнее инициализировать массивы?
INDICATOR_DATA или INDICATOR_CALCULATIONS?
Т.е. вопрос в общем в том, смогу ли я по номеру буфера из функции iCustom получить данные из буфера объявленного как SetIndexBuffer(N, BufferName, INDICATOR_CALCULATIONS);
Возьмите стандартную МА, измените тип данных буфера, скомпилируйте и проверьте в окне данных терминала (Ctrl+D)
В глобальные переменные терминала записывается ChartID() с ошибкой. что за ерунда?
Попробуйте такой код: