При получении имени символа из общего списка MarkerWatch:
(при значении false, символ берется из общего списка) можно ожидать, что во время работы терминала этот самый список будет постоянным и не будет изменяться во-времени? Другими словами, пусть в общем списке при старте терминала на позиции "9" будет символ "AUDUSD.m". А будет ли этот-же символ на позиции "9" через некоторой промежуток времени (до следующей перезагрузки терминала)?
В чем смысл отслеживания позиции пары в обзоре рынка?
// Сколько мультивалютников переделал, никогда не задавался вопросом о том, чтобы наименование символа совпадало с нужным. В мультиэкспертах главное определиться - мажор/кросс...
Думаю, что не обязательно. Ведь у пользователя (и у других программ) есть возможность удалить какие-то символы из окна, а потом вновь добавить. В итоге позиция будет изменена. Не стоит рассчитывать на постоянство. Ведь со списком ордеров работаем, каждый раз полностью его перебирая. И здесь также.
Так я вот, чтобы защититься от таких изменений и интересуюсь полным списком (а не тем списком, который отображается в окне "Обзор рынка"). Полный список - это список из котрого можно получить имя элемента через :
SymbolName(pos,false)
Так я вот, чтобы защититься от таких изменений и интересуюсь полным списком (а не тем списком, который отображается в окне "Обзор рынка"). Полный список - это список из котрого можно получить имя элемента через :
лучше перебрать все и заполнить строковый массив. для этого нужно знать общее количество и выбросить неинтересующие символы.
Я пока проверяю гипотезу о постоянстве общего списка. Не на каждом тике делаю делаю две проверки: изменился ли размер общего списка и если размер не изменился, то проверяю все ли символы на своих местах. Вот прицепил советника:
//+------------------------------------------------------------------+ //| MarketWatchISconst.mq5 | //| Copyright © 2015, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2015, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.00" #property description "MarketWatch (Market), a common list - const or not?" //--- int total=0; string market_watch[]; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Returns the number of available symbols. total=SymbolsTotal(false); Print("The number of available symbols ",total); //--- New size for the first dimension ArrayResize(market_watch,total); //--- Filling an array for(int i=0;i<total;i++) market_watch[i]=SymbolName(i,false); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { static long tic; //--- We check not on each tic if(tic%21==0) { Print("checkup"); int temp_total=SymbolsTotal(false); if(temp_total!=total) Alert("The size of the list of available symbols has changed!"); else { for(int i=0;i<total;i++) { if(market_watch[i]!=SymbolName(i,false)) Alert("The symbol of available symbols has changed!"); } } } tic++; } //+------------------------------------------------------------------+
Отработал советник уже почти пять часов - общий список символов стабильный и все элементы на своих местах. Похоже общий список можно использовать в качестве индекса несколькими индикаторами на разных графиках.
А если двигать инструменты в обзоре рынка?
Проверил. Никакие действия по ручному удалению/добавлению инструментов в "Обзоре рынка" не влияют на общий список терминала и на расположение символов в этом общем списке.
Тогда только брокер может поменять на сервере. И не факт, что без перезагрузки терминала он подгрузится в терминал.
Все равно не понятно, зачем надеяться на статичность списка.
Тогда только брокер может поменять на сервере. И не факт, что без перезагрузки терминала он подгрузится в терминал.
...
...
Все равно не понятно, зачем надеяться на статичность списка.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
При получении имени символа из общего списка MarkerWatch:
(при значении false, символ берется из общего списка) можно ожидать, что во время работы терминала этот самый список будет постоянным и не будет изменяться во-времени? Другими словами, пусть в общем списке при старте терминала на позиции "9" будет символ "AUDUSD.m". А будет ли этот-же символ на позиции "9" через некоторой промежуток времени (до следующей перезагрузки терминала)?