функция автоматического расчета размера партии? - страница 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