Эти функции совершенно разные.
Приложите точный код, пожалуйста. Что-то не понятно, что Вы имели в виду.
Приложите точный код, пожалуйста. Что-то не понятно, что Вы имели в виду.
Renat:
Эти функции совершенно разные.
Приложите точный код, пожалуйста. Что-то не понятно, что Вы имели в виду.
Эти функции совершенно разные.
Приложите точный код, пожалуйста. Что-то не понятно, что Вы имели в виду.
Советник стоит на Евро , вот это место
// Нет открытых позиций.
if (!PosExist && OldBar!=Time[0])
{
double DeltEURUSD=NormalizeDouble(Porog1*MarketInfo("EURUSD",MODE_POINT), Digits);
double DeltUSDJPY=NormalizeDouble(Porog1*MarketInfo("USDJPY",MODE_POINT), Digits);
double DeltUSDCAD=NormalizeDouble(Porog1*MarketInfo("USDCAD",MODE_POINT), Digits);
Print(" DeltEURUSD ",DeltEURUSD);// == 0.0001
Print(" DeltEURUSD ",DeltUSDJPY);// == 0
Print(" DeltEURUSD ",DeltUSDCAD);// == 0
Print(" iClose ",NormalizeDouble(iClose("USDJPY",TF1, 1),Digits)); // == 116.30
за // это в журнале ...
А у Вас все эти символы в MarketWatch открыты?
Renat:
А у Вас все эти символы в MarketWatch открыты?
А у Вас все эти символы в MarketWatch открыты?
Да, конечно. Просто перед открытием позиции по Евро хотел посмотреть пробила ли Йена предыдущий лоу ниже на n пунктов,
вполне уместное желание... Тогда не ясно как это реализовать.
Сделайте проще - выводите результат вызова MarketInfo сразу же в Print, а не прогоняйте через нормализацию.
Кстати, нормализуете то Вы всегда на Digits от текущего символа, а не на Digits каждого желаемого символа, что и может быть причиной зануления.
Кстати, нормализуете то Вы всегда на Digits от текущего символа, а не на Digits каждого желаемого символа, что и может быть причиной зануления.
Если Вы запустите этого скрипта на йене, у которой Digits=2, то по всем остальным парам, у которых Digits=4, Вы получите законные нули.
Почему бы не сделать так:
double DeltEURUSD=NormalizeDouble(Porog1*MarketInfo("EURUSD",MODE_POINT),MarketInfo("EURUSD",MODE_DIGITS)); double DeltUSDJPY=NormalizeDouble(Porog1*MarketInfo("USDJPY",MODE_POINT),MarketInfo("USDJPY",MODE_DIGITS)); double DeltUSDCAD=NormalizeDouble(Porog1*MarketInfo("USDCAD",MODE_POINT),MarketInfo("USDCAD",MODE_DIGITS));
stringo писал (а):
double DeltEURUSD=NormalizeDouble(Porog1*MarketInfo("EURUSD",MODE_POINT),
MarketInfo("EURUSD",MODE_DIGITS));Если Вы запустите этого скрипта на йене, у которой Digits=2, то по
всем остальным парам, у которых Digits=4, Вы получите законные нули.
Почему бы не сделать так:
double DeltEURUSD=NormalizeDouble(Porog1*MarketInfo("EURUSD",MODE_POINT),MarketInfo("EURUSD",MODE_DIGITS)); double DeltUSDJPY=NormalizeDouble(Porog1*MarketInfo("USDJPY",MODE_POINT),MarketInfo("USDJPY",MODE_DIGITS)); double DeltUSDCAD=NormalizeDouble(Porog1*MarketInfo("USDCAD",MODE_POINT),MarketInfo("USDCAD",MODE_DIGITS));
Да, скосячил немного, но проблема осталась MarketInfo выдает только по символу где тестируется советник и больше ни чего.
Ставишь на Йену показывает ее, а Евро становится 0, ну и т.д.
Ну так сразу надо было сказать, что это в тестере.
В тестере MarketInfo ограничен и не выдает текущих рыночных данных других символов, так как тестер не моделирует развития чужих символов во время теста.
Из статьи "Особенности и ограничения тестирования в MetaTrader 4"
В тестере MarketInfo ограничен и не выдает текущих рыночных данных других символов, так как тестер не моделирует развития чужих символов во время теста.
Из статьи "Особенности и ограничения тестирования в MetaTrader 4"
Использование функции MarketInfo формирует ошибку ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE(4059), однако выдается корректная информация о текущих ценах тестируемого символа, о размере уровней стопов, размере пункта, размере спреда любого символа, присутствующего в окне котировок.
Renat:
Ну так сразу надо было сказать, что это в тестере.
В тестере MarketInfo ограничен и не выдает текущих рыночных данных других символов, так как тестер не моделирует развития чужих символов во время теста.
Из статьи "Особенности и ограничения тестирования в MetaTrader 4"
А в реале аналогично? Интересно, ограничение принципиально или
... Обойти конечно можно, но уже без аппетита.Ну так сразу надо было сказать, что это в тестере.
В тестере MarketInfo ограничен и не выдает текущих рыночных данных других символов, так как тестер не моделирует развития чужих символов во время теста.
Из статьи "Особенности и ограничения тестирования в MetaTrader 4"
Использование функции MarketInfo формирует ошибку ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE(4059), однако выдается корректная информация о текущих ценах тестируемого символа, о размере уровней стопов, размере пункта, размере спреда любого символа, присутствующего в окне котировок.
Спасибо за разяснение.
В реале ограничений нет, можно пользоваться любыми функциями.
Ограничение только в тестере, так как он не занимается моделированием других символов. Но моделированием других таймфремов этого же символа он занимается и делает это точно.
Ограничение только в тестере, так как он не занимается моделированием других символов. Но моделированием других таймфремов этого же символа он занимается и делает это точно.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
При этом iHigh(“USDJPY”,1440,1) дает четко по любым символам!
В чем прикол?
Спасибо заранее.