MarketInfo( MODE_SPREAD ) от "чужого" символа в тестере МТ4 - страница 2

 
4x4ever:

- Scriptong, artmedia70 если не трудно, могли бы вы подтвердить что у вас етот код в тестере (на EURGBP, H1, Control Points) работает без ошибки и дает правилный спред?

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

Поэтому лучше не работать в тестере с такими данными или работать только в тех случаях, когда тестер это разрешает. Например, можно получить данные о свечах другого символа.

 

Почему архивариуса в команду не включите?

 
evillive:
Ошибка одна - при всём при том что на форуме мильён раз сказано что тестер не работает с чужими симвлоами, всё равно найдётся кто-то кто в мильён первый раз попытается так делать...

Да ошибки явно есть и наверное не една, но главная - что в Документации про эту особенность MarketInfo НИЧЕГО не сказано. Нормальный процесс, когда собираешься използовать функцию - прочитать документацию, а не рытся в форумах.

Как бы там ни было - спасибо всем за помощь, общими усилиями дошли таки до сути...

 
tara:

Почему архивариуса в команду не включите?


Уточните пожалуйста что имеете ввиду под "Архивариусом", если ето поможет мне найти workaround проблемы?
 
Scriptong:

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

Поэтому лучше не работать в тестере с такими данными или работать только в тех случаях, когда тестер это разрешает. Например, можно получить данные о свечах другого символа.


Нашел ограничения (возможно не все?) про которые упоминает Scriptong: https://www.mql5.com/ru/articles/1512,

и также дискуссию подобной проблемы: https://www.mql5.com/ru/forum/115801 ...

 

Провернул все вариант MarketInfo для чужого символа в тестере .

Валюта тестера - EURGBP. Валюта MarketIfno - EURJPY. Результат одинаков для Visual ON и Visual OFF.

Ошибка 4059 возникает всегда, но в некоторых случаях MarketInfo выдает результат отличный от 0 (и даже в некотором роде - верный).


MODE RESULT ERROR ERROR DESCRIPTION
MODE_LOW 0 4059 function is not allowed in testing mode
MODE_HIGH 0 4059 function is not allowed in testing mode
MODE_TIME 1385942400 4059 function is not allowed in testing mode
MODE_BID 0 4059 function is not allowed in testing mode
MODE_ASK 0 4059 function is not allowed in testing mode
MODE_POINT 0.001 4059 function is not allowed in testing mode
MODE_DIGITS 3 4059 function is not allowed in testing mode
MODE_SPREAD 0 4059 function is not allowed in testing mode
MODE_STOPLEVEL 0 4059 function is not allowed in testing mode
MODE_LOTSIZE 0 4059 function is not allowed in testing mode
MODE_TICKVALUE 0 4059 function is not allowed in testing mode
MODE_TICKSIZE 0 4059 function is not allowed in testing mode
MODE_SWAPLONG 0 4059 function is not allowed in testing mode
MODE_SWAPSHORT 0 4059 function is not allowed in testing mode
MODE_STARTING 0 4059 function is not allowed in testing mode
MODE_EXPIRATION 0 4059 function is not allowed in testing mode
MODE_TRADEALLOWED 0 4059 function is not allowed in testing mode
MODE_MINLOT 0 4059 function is not allowed in testing mode
MODE_LOTSTEP 0 4059 function is not allowed in testing mode
MODE_MAXLOT 0 4059 function is not allowed in testing mode
MODE_SWAPTYPE 0 4059 function is not allowed in testing mode
MODE_PROFITCALCMODE 0 4059 function is not allowed in testing mode
MODE_MARGINCALCMODE 0 4059 function is not allowed in testing mode
MODE_MARGININIT 0 4059 function is not allowed in testing mode
MODE_MARGINMAINTENANCE 0 4059 function is not allowed in testing mode
MODE_MARGINHEDGED 0 4059 function is not allowed in testing mode
MODE_MARGINREQUIRED 1366.81 4059 function is not allowed in testing mode
MODE_FREEZELEVEL 0 4059 function is not allowed in testing mode


Комментарии:

MODE_TIME - значение правильное в контексте тестера, тоесть не равно TimeCurrent() реала.

MODE_POINT, MODE_DIGITS - очевидно правильное для EURJPY.

MODE_MARGINREQUIRED - рассчитано в контексте реала (EURUSD сегодня, 2013-12-06 колеблется около $1.36...).

Причина обращения: