Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 515

 

Прошу помощи у сообщества.

// MQL4
// Последняя известная цена продажи (запрашиваемая цена) текущего инструмента. Для обновления необходимо использовать функцию RefreshRates().
Ask 

// MQL5
// 1
Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK)      // Возвращает лучшее предложение на покупку (Так в справочнике MQL5)
// 2
SymbolInfoTick(_Symbol,last_tick))              // Возвращает текущие цены  для указанного символа в переменной типа MqlTick
Ask = last_tick.ask								

Чем отличается значение Ask, полученное двумя функциями MQL5 ?
Какая из этих функций возвращает значение, аналогичное Ask из MQL4 ?

 
MikeZv:

Прошу помощи у сообщества.

Чем отличается значение Ask, полученное двумя функциями MQL5 ?
Какая из этих функций возвращает значение, аналогичное Ask из MQL4 ?

Оба примера работают

[Удален]  
MikeZv:

Прошу помощи у сообщества.

Чем отличается значение Ask, полученное двумя функциями MQL5 ?
Какая из этих функций возвращает значение, аналогичное Ask из MQL4 ?

Прежде, чем что-то написать (в плане кода) подумайте, как будет экономичнее по ресурсам и правильнее в условиях данной задачи. В первом случае запрашивается только текущая цена аск, во втором же - вся структура тика. Скорее всего (надо замерять) второй случай работает гораздо медленнее и, если Вам нужна только цена аск, то смысла получать структуру нет.
 
Alexey Kozitsyn:
Прежде, чем что-то написать (в плане кода) подумайте, как будет экономичнее по ресурсам и правильнее в условиях данной задачи. В первом случае запрашивается только текущая цена аск, во втором же - вся структура тика. Скорее всего (надо замерять) второй случай работает гораздо медленнее и, если Вам нужна только цена аск, то смысла получать структуру нет.
Алексей, спасибо за ответ.  Я сейчас переписываю эксперт из МТ4 в МТ5, в первую очередь мне нужно знать точно, как получить то, что в MQL4 называется Ask. А вопросы производительности буду потом обдумывать .. :)
 
MikeZv:
Алексей, спасибо за ответ.  Я сейчас переписываю эксперт из МТ4 в МТ5, в первую очередь мне нужно знать точно, как получить то, что в MQL4 называется Ask. А вопросы производительности буду потом обдумывать .. :)
О извиняюсь не понял вашего вопроса сразу, я написал что эти оба варианта работают в МТ4, а в МТ5 это аналоги ask и MarketInfo(_Symbol,SYMBOL_ASK); из старого МТ4
 
Sergey Gritsay:
О извиняюсь не понял вашего вопроса сразу, я написал что эти оба варианта работают в МТ4, а в МТ5 это аналоги ask и MarketInfo(_Symbol,SYMBOL_ASK); из старого МТ4

Там же два варианта было из MQL5 ...
И они аналоги "ask и MarketInfo(_Symbol,SYMBOL_ASK)из старого МТ4", я правильно Вас понял ?

 
MikeZv:

Там же два варианта было из MQL5 ...
И они аналоги "ask и MarketInfo(_Symbol,SYMBOL_ASK)из старого МТ4", я правильно Вас понял ?

Да, правильно.

 
Sergey Gritsay:
О извиняюсь не понял вашего вопроса сразу, я написал что эти оба варианта работают в МТ4, а в МТ5 это аналоги ask и MarketInfo(_Symbol,SYMBOL_ASK); из старого МТ4
SymbolInfoDouble(Symbol(),SYMBOL_ASK);

 
Artyom Trishkin:
SymbolInfoDouble(Symbol(),SYMBOL_ASK);

Это вопрос? Если да, то вот пример на МТ4

 

//+------------------------------------------------------------------+
//|                                                       тест 2.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
double ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK);
Print("ask = ",ask);

MqlTick last_tick;

if(SymbolInfoTick(Symbol(),last_tick)) 
     { 
      Print(last_tick.time,": Bid = ",last_tick.bid, 
            " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume); 
     } 
   else Print("SymbolInfoTick() failed, error = ",GetLastError()); 
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

Результат 

0       22:40:49.415    Script тест 2 EURUSD,H1: loaded successfully
0       22:40:49.446    тест 2 EURUSD,H1: initialized
0       22:40:49.447    тест 2 EURUSD,H1: ask = 1.11422
0       22:40:49.447    тест 2 EURUSD,H1: 2016.02.16 17:40:51: Bid = 1.11412 Ask = 1.11422  Volume = 0
0       22:40:49.447    тест 2 EURUSD,H1: uninit reason 0
0       22:40:49.448    Script тест 2 EURUSD,H1: removed
 
Здравствуйте. Можете написать советник по данному индикатору? Стрелочка вверх-бай,вниз-сэл. Индикатор может рисовать до закрытия свечи,как свеча закрылась стрелочка уже не пропадает. Можно ли сделать так чтобы ордера открывались после фиксации стрелочки индикатора? Тоесть на следующей свече после образования стрелки. Фиксированный лот и возможность переноса в безубыток сделки при прохождении указанного количества пунктов. Буду очень благодарен! demonoid123000@mail.ru
Файлы:
trendsignal_alert.mq4 5 kb
trendsignal_alert.ex4 15 kb