Помогите пожалуйста разобратся:
Извините за дурацкий вопрос - "Обзор рынка" ето как будет в English версии МТ4? Просто у меня Windows не русский, наверное заметили - я изпользую 'Е' вместо 'Е-оборотное"...
Если речь идет о History Center то нужная пара там есть. Я тестера гонял на EURGBP, а в терминале MetaQuotes AccountCurrency() выдает "USD", т.e. нужная мне пара будет GBPUSD, и она там есть.
Извините за дурацкий вопрос - "Обзор рынка" ето как будет в English версии МТ4?
Market Watch
- Scriptong, artmedia70 если не трудно, могли бы вы подтвердить что у вас етот код в тестере (на EURGBP, H1, Control Points) работает без ошибки и дает правилный спред?
double spr = 100000; //+------------------------------------------------------------------+ //| Start function | //+------------------------------------------------------------------+ int start() { if( spr == 100000 ) { int ercode = 0; spr = MarketInfo( "GBPUSD", MODE_SPREAD ); ercode = GetLastError(); Print( " ========= SPR2 for GBPUSD is ", DoubleToStr( spr, 5 ), " | err=", ercode ); } return( 0 ); }
У меня результат принта:
2013.12.05 15:09:30 2013.12.02 00:00 TestCalcProf-EA EURGBP,H1: ========= SPR2 for GBPUSD is 0.00000 | err=4059
Тоесть именно ERR_FUNC_NOT_ALLOWED_IN_TESTING...
Пробовал гонять тестера в режиме Every Tick, в результате чего в Journal (терминала а не тестера) появились около 30 сообщений:
2013.12.05 15:32:22 Memory handler: cannot allocate 218122564 bytes of memory
Несмотря на ето тестер тест довел до конца но результат тот же (ERR_FUNC_NOT_ALLOWED_IN_TESTING)
:(
В етой статье gordon тоже говорит что MaqrketInfo на другие символы в тестере на работает (см. его комментарий от 2010.04.08 06:42 ) :
artmedia70 - возможно ли что ты ошибаешся и MaqrketInfo на другие символы в тестере не работает?
Также возможно (поскольку та статья с 2010 года) что с тех пор ето исправлено.. в таком случае подскажите пожалуйста где у меня ошибка?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Помогите пожалуйста разобратся:
Тестую советника, который кроме Symbol() изпользует еще и другие 2 пары (base_home и home_base). Они нужны чтобы вычислять прибыль в валюте брокера если текущая пара не включает в себя валюту брокера. Например - советника сбросили на GBPUSD, а валюта брокера EUR [1] или CHF [2]. Вычисляются base_home и home_base путем MarketInfo(symb, MODE_SPREAD ), так как SPREAD мне и так и так нужен для других вычислений. Да я знаю про OrderProfit но специфика такова что я считаю прибыль так сказать "виртуалную" т.е. не ордеров у меня как тоаковых в етот момент нет.
Рассматриваю подробнее оба примера которые привел чтобы было понятнее:
----------
Пример [1]: Советник на GBPUSD, валюта брокера EUR:
base = Right( Symbol(), 3 ); // = "USD";
home = AccountCurrency(); // = "EUR";
base_home ="USDEUR"; // Invalid! MarketInfo will give ERR_UNKNOWN_SYMBOL.
home_base = "EURUSD"; // MarketInfo should not give error so we know we must use 'home_base' (EURUSD).
----------
Пример [2]: Советник на GBPUSD, валюта брокера CHF:
base = Right( Symbol(), 3 ); // = "USD";
home = AccountCurrency(); // = "CHF";
base_home ="USDCHF"; // OK. MarketInfo should not give error so we we must use 'base_home' (USDCHF).
home_base = "CHFUSD"; // Invalid! MarketInfo will give ERR_UNKNOWN_SYMBOL.
----------
Все бы хорошо но в тестере получется ошибка: ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059). Тоесть я так понимаю - в тестере MarketInfo( MODE_SPREAD ) на другие пары кроме Symbol не доступен?
Что же мне делать? Во первых - как проверить которая комбинация верна (base_home или home_base)? Во вторых, как сказал - мне нужен spread cross-a...
Я могу кое-как справится с обеими проблемами задав массив с именами всех пар/кроссов и их спредами но ето решение выглядит както не-елегантно и уж конечно не достоверно, ведь спред динамичен... Кто нибудь может подсказать что нибудь поуниверсальнее?