функция автоматического расчета размера партии? - страница 4

 

Находится ли включаемый файл в правильной папке?

 
Antonsan:

Это ошибка, которая случилась только со мной?
Я не могу скомпилировать ни один файл с помощью MetaEditor mq4, если я помещаю строку с # include.
Я также не могу скомпилировать файлы mq4, в коде которых есть строка # include.
Позволяет только строки
# Include <stderror.mqh>
# Include <stdlib.mqh>
# Include <WinUser32.mqh>

В дополнение к сообщению Филиппа:

ЕСЛИ вышеприведенное является тем, что у вас есть в коде... пожалуйста, внимательно прочитайте документацию по языку.

НЕТ пробелов между # и include

НЕТ прописной буквы I... используйте строчную i

 

В файле Analyze Currency у меня, похоже, возникла проблема с методом SymbolType().

Я торгую CADJPY, моя accountcurrency() - USD, но он все время возвращает SymbolType = 6.

Причина в том, что MarketInfo("USDJPY", MODE_LOTSIZE) всегда возвращает 0.

Я могу получить только LOT_SIZE для текущего графика. Например, MarketInfo("CADJPY", MODE_LOTSIZE) работает нормально.

Это проблема MetaTrader, почему я не могу получить свойства других пар?

 

Каким брокером вы пользуетесь, Ricotter? Предлагают ли они USDJPY для торговли?

Для того, чтобы убедиться, что ваш код реализован правильно, вам следует скачать FXDD, открыть демо-счет и попробовать ваш код на CADJPY. Он должен работать, если у вас правильно настроены включаемые файлы.

 
1005phillip:

Каким брокером вы пользуетесь, Ricotter? Предлагают ли они USDJPY для торговли?

Для того, чтобы убедиться, что ваш код реализован правильно, вам следует скачать FXDD, открыть демо-счет и попробовать ваш код на CADJPY. Он должен работать, если у вас правильно настроены включаемые файлы.

Я только что провел еще одно тестирование. Я удалил все, а в функции start() добавил только вызов MarketInfo. В реальной торговле он работает нормально, но когда я использую тестер, он возвращает 0 для всего, кроме символа, на котором я запускаю тест.

Я проверю это с FXDD, спасибо.

 
Ricotter:

Я только что провел еще одно тестирование. Я удалил все, а в функции start() добавил только вызов MarketInfo. В реальной торговле он работает нормально, но когда я использую тестер, он возвращает 0 для всего, кроме символа, на котором я запускаю тест.

Я проверю это с FXDD, спасибо.

То же самое с FXDD. Если я пытаюсь вызвать MarketInfo("USDJPY", MODE_LOTSIZE) во время работы тестера на паре CADJPY, он возвращает 0. Я даже загрузил историю для USDCAD и USDJPY.

 
Ricotter:

То же самое с FXDD. Если я пытаюсь вызвать MarketInfo("USDJPY", MODE_LOTSIZE) при запуске тестера против пары CADJPY, он возвращает 0. Я даже загрузил историю для USDCAD и USDJPY.

MarketInfo() работает только для проверенного символа в тестере. Посмотреть все ограничения тестера можно здесь -> https://www.mql5.com/en/articles/1512.
 
gordon:
MarketInfo() работает только для проверенного символа в тестере. Смотрите все ограничения Тестера здесь -> https://www.mql5.com/en/articles/1512.

Спасибо!

 

Код будет делать несколько вещей для вас, он не зависит от символа(), и он вычислит максимальный размер лота для позиции на основе капитала, которым вы готовы рискнуть, и цены стоплосса. Как только вы получите значение лота, он также может рассчитать для вас потенциал прибыли на основе вашей цены тейкпрофита.

Он также правильно рассчитывает кроссы, что и было вашей целью... однако вы должны знать, что вы не можете правильно тестировать кроссы из-за фундаментального ограничения дизайна бэктестера MT4, которое не позволяет вашему советнику получить доступ к историческим ценовым данным для других валютных пар во время бэктеста. На практике это означает, что все денежные оценки, полученные в результате торговли кросс-парами в бэктесте, в корне неверны, то есть прибыль/убыток самих сделок при конвертации в валюту счета бэктестером просто неверны.

Код, на который я сослался, вычисляет их правильно, аналитически, без сокращений. Но их нельзя использовать в бэктестинге на кроссах, потому что код будет пытаться правильно рассчитать рыночные оценки, а бэктестер не позволит ему этого сделать, и поэтому код просто вернет предупреждение об ошибке (как это было бы в реальном форвардном тестировании, если бы брокер каким-то образом нарушил свои определения валют).

 
1005phillip:

Код будет делать несколько вещей для вас, он не зависит от символа(), и он вычислит максимальный размер лота для позиции на основе капитала, которым вы готовы рискнуть, и цены стоплосса. Как только вы получите значение лота, он также может рассчитать для вас потенциал прибыли на основе вашей цены тейкпрофита.

Он также правильно рассчитывает кроссы, что и было вашей целью... однако вы должны знать, что вы не можете правильно тестировать кроссы из-за фундаментального ограничения дизайна бэктестера MT4, которое не позволяет вашему советнику получить доступ к историческим ценовым данным для других валютных пар во время бэктеста. На практике это означает, что все денежные оценки, полученные в результате торговли кросс-парами в бэктесте, в корне неверны, то есть прибыль/убыток самих сделок при конвертации в валюту счета бэктестером просто неверны.

Код, на который я сослался, вычисляет их правильно, аналитически, без сокращений. Но их нельзя использовать в бэктестинге на кроссах, потому что код будет пытаться правильно рассчитать рыночные оценки, а бэктестер не позволит ему этого сделать, и поэтому код просто вернет предупреждение об ошибке (как это было бы в реальном форвардном тестировании, если бы брокер каким-то образом нарушил свои определения валют).

Этот парень делает это с помощью истории файлов.

https://www.mql5.com/en/articles/1493