Добрый день. Можно ли такую штуку провернуть? Чтобы один эксперт мог получить данные по нескольким инструментам? Грубо говоря, объект инструменты и у каждого из них есть свои данные.
А почему бы и нет? Именно так и пишутся мультисимвольные советники: советник установлен на одном символе, а данные получает и торговлю ведёт по нескольким символам.
А почему бы и нет? Именно так и пишутся мультисимвольные советники: советник установлен на одном символе, а данные получает и торговлю ведёт по нескольким символам.
Можете пожалуйста подсказать, какую именно информацию прочитать, а то не пойму, везде все описывают уже готового советника, а мне просто хотя
бы 2 строчки, записать в стринг название инструмента и получить список свеч или массив данных.
А, всё, нашел информацию)
Можете пожалуйста подсказать, какую именно информацию прочитать, а то не пойму, везде все описывают уже готового советника, а мне просто хотя бы 2 строчки, записать в стринг название инструмента и получить список свеч или массив данных.
Пожалуйста: во входных параметрах задаём три символа, получаем по ним исторические данные и выводим цены закрытия бара #1.
//+------------------------------------------------------------------+ //| Simple MultiSymbol.mq5 | //| Copyright © 2019, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2019, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.00" //--- input parameters input string InpSymbol_1 = "USDJPY"; input string InpSymbol_2 = "USDCHF"; input string InpSymbol_3 = "GBPUSD"; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- MqlRates rates_symbol_1[],rates_symbol_2[],rates_symbol_3[]; ArraySetAsSeries(rates_symbol_1,true); ArraySetAsSeries(rates_symbol_2,true); ArraySetAsSeries(rates_symbol_3,true); int start_pos=0,count=3; if(CopyRates(InpSymbol_1,Period(),start_pos,count,rates_symbol_1)!=count || CopyRates(InpSymbol_2,Period(),start_pos,count,rates_symbol_2)!=count || CopyRates(InpSymbol_3,Period(),start_pos,count,rates_symbol_3)!=count) { return(false); } //--- string text=InpSymbol_1+" close #1 "+DoubleToString(rates_symbol_1[1].close,5)+"\n"+ InpSymbol_2+" close #1 "+DoubleToString(rates_symbol_2[1].close,5)+"\n"+ InpSymbol_3+" close #1 "+DoubleToString(rates_symbol_3[1].close,5); Comment(text); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+
Пожалуйста: во входных параметрах задаём три символа, получаем по ним исторические данные и выводим цены закрытия бара #1.
Оо, спасибо большое) Сейчас буду тестировать)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования