
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Теперь снова запускаю этого же, одновалютного эксперта в тестере, но теперь уже на EURJPY. В журнале Тестера стратегий начинает мельтешить строка с текстом
GetMarginForOpening : Не удалось подобрать валюту расчета для комбинации символа EURJPY
и даже если в функции GetSymbolByCurrencies() поменять малость код на "symbolname = SymbolName(s, false);", то всё-равно инициализации структуры MqlTick по EURUSD не происходит! так что получается деление на ноль. Это глюк терминала или одного вызова функции GetMarginForOpening() для получения маржи недостаточно?
Есть ли в Market Watch валюта USDJPY?
Выражение
symbolname = SymbolName(s, false);
обеспечивает в тестере доступ только к тем символам, которые доступны в окне "Обзор рынка"
Есть ли в Market Watch валюта USDJPY?
Выражение
обеспечивает в тестере доступ только к тем символам, которые доступны в окне "Обзор рынка"
Да в том то и дело, что всё есть! Складывается впечатление, что у Тестера стратегий для одновалютного эксперта свой виртуальный "Обзор рынка" в котором только одна фишка, по которой открывается позиция!
Да в том то и дело, что всё есть! Складывается впечатление, что у Тестера стратегий для одновалютного эксперта свой виртуальный "Обзор рынка" в котором только одна фишка, по которой открывается позиция!
Дык в тестере действительно свой "Обзор рынка", который нужно заполнять при инициализации мультивалютника...
PS
И набор "Глобальных переменных" теперь в тестере тоже свой (насколько я в теме)...
Дык в тестере действительно свой "Обзор рынка", который нужно заполнять при инициализации мультивалютника...
PS
И набор "Глобальных переменных" теперь в тестере тоже свой (насколько я в теме)...
Тут как раз разговор встал то про одновалютник. Ладно, будем считать, что так задумано, но в такой ситуации сей факт было бы, конечно, лучше отразить в справке по Метаэдитору, он отнюдь не очевиден для неискушённого в программировании пользователя. И в общем случае для одновалютного эксперта всё-таки функции из этой статьи в одновалютных экспертах работать не будут, ежели упустить из виду предварительную инициализацию этого хозяйства.
Если необходимо торговать или анализировать другие пары (мультивалютник) то необходимые символы нужно АКТИВИЗИРОВАТЬ (выбрав их с параметром true).
Только нужно иметь ввиду, что перед тестированием символы должны быть выбраны в окне "Обзор рынка" терминала.
Но, дело в том, что для пары XAUUSD, например, для одного лота эта функция возвращает размер торгового контракта по золоту в унциях (то есть 100 унций), а не количество долларов в этих унциях! Это так задумано?
Rosh:
Да, по идее функция SymbolInfoInteger(.., SYMBOL_TRADE_CONTRACT_SIZE) возвращает размер торгового контракта по золоту в неких единицах. Для золота это может быть тройская унция, для нефти баррели и т.д. Как найти стоимость этого самого бареля или унции? Можно попробовать OrderCalcMargin(), кажется её еще не было на момент написания статьи.
Рош! Я про саму функцию GetMarginForOpening() речь веду. В статье утверждается, что эта функция возвращает размер маржи в валюте депозита, но в данной, конкретной ситуации эта функция работает, не так, как написано в статье и возврашает размер маржи в единицах контракта!
Николай, напишите свою. Да, эта статья писалась в предверие чемпионата и для чемпионата (для форексных инсструментов). Судя по вопросам, Вы и сами в этом разоюбрались.
Если есть вопросы по функционалу MQL5 для Ваших целей - тогда это уже другое дело, но это не касается статьи.