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

 

Никак не могу открыть файл в тестере. Получаю ошибку 5004.

int               m_file_handle;
short             m_delimiter;

m_delimiter='\t';
m_file_handle=FileOpen(m_filename,FILE_READ|FILE_CSV,m_delimiter);
if(m_file_handle==INVALID_HANDLE)
  {
   Print(__FUNCTION__+": file open failed. Error: ",GetLastError());
   return false;
  }

Обычный файл csv с табуляцией в качестве разделителя. Кладу его в папку MQL5\Files агента. После попытки открытия файл исчезает.

 
leonerd:

Никак не могу открыть файл в тестере. Получаю ошибку 5004.

Обычный файл csv с табуляцией в качестве разделителя. Кладу его в папку MQL5\Files агента. После попытки открытия файл исчезает.

ок, без #property tester_file, видимо, не работает.

[Удален]  
Roman Sharanov:

ПОдскажите, если мне нужно открыть одновременно две сделки, но при этом проверить нет ли какой то ошибки при открытии одной из них, как поймать ошибку?

Есть какая то функция возвращающая возможность открыть сделку по активу?

Использовать OnTradeTransaction().

 

Подскажите, пожалуйста, аналог MQL4 функции MarketInfo(asymbol, MODE_MARGIN_REQUIRED) в MQL5.

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

Перебрала разные варианты  функции SymbolInfoDouble(symbol, ...) в MQL5, не могу найти нужный вариант, везде возвращается 0.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
, то позиции по каждому символу разрешается закрывать только в том порядке, в котором они были открыты — сначала самую старую, затем более новую и т.д. При попытке закрыть позиции в ином порядке будет получена ошибка. Уровень залоговых средств, при достижении которого происходит принудительное закрытие самой убыточной позиции (Stop Out...
 

я торгую через библу CTrade 

 
Elena Baranova:

Подскажите, пожалуйста, аналог MQL4 функции MarketInfo(asymbol, MODE_MARGIN_REQUIRED) в MQL5.

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

Перебрала разные варианты  функции SymbolInfoDouble(symbol, ...) в MQL5, не могу найти нужный вариант, везде возвращается 0.

Вот, но Я использую в таком виде, функция от fxsaber

double AccountFreeMarginCheck(string Symb,int Cmd,double dVolume) {
 double Margin;
   return(::OrderCalcMargin((ENUM_ORDER_TYPE)Cmd, Symb, dVolume,
          ::SymbolInfoDouble(Symb,(Cmd==::ORDER_TYPE_BUY) ? ::SYMBOL_ASK : ::SYMBOL_BID),Margin) ?
          ::AccountInfoDouble(::ACCOUNT_MARGIN_FREE) - Margin : -1);
 }
Документация по MQL5: Торговые функции / OrderCalcMargin
Документация по MQL5: Торговые функции / OrderCalcMargin
  • www.mql5.com
Вычисляет размер маржи, необходимой для указанного типа ордера на текущем счете и при текущем рыночном окружении без учета текущих отложенных ордеров и открытых позиций. Позволяет оценить размер маржи для планируемой торговой операции. Значение возвращается в валюте счета. [out]  Переменная, в которую...
 
Roman Sharanov:

я торгую через библу CTrade 

Правильный ответ:

Почему так: читаем справку по торговому классу CTrade, например открытие позиции Buy

Успешное окончание работы метода Buy(...) не всегда означает успешное совершение торговой операции. Необходимо проверять результат выполнения торгового запроса (код возврата торгового сервера) вызовом метода ResultRetcode(), а также значение, возвращаемое методом ResultDeal().


НО! Даже эта проверка будет не достаточна, так как только в OnTradeTransaction() можно можно получить транзакцию TRADE_TRANSACTION_DEAL_ADD – добавление сделки в историю.


В общем случае нужен комплект - отправка торгового запроса через CTrade, сразу проверка на успешность и дальше ждать в OnTradeTransaction()  транзакцию TRADE_TRANSACTION_DEAL_ADD.

 
Elena Baranova:

Подскажите, пожалуйста, аналог MQL4 функции MarketInfo(asymbol, MODE_MARGIN_REQUIRED) в MQL5.

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

Перебрала разные варианты  функции SymbolInfoDouble(symbol, ...) в MQL5, не могу найти нужный вариант, везде возвращается 0.


bool  OrderCalcMargin( 
   ENUM_ORDER_TYPE       action,           // тип ордера 
   string                symbol,           // имя символа 
   double                volume,           // объем 
   double                price,            // цена открытия 
   double&               margin            // переменная для получения значения маржи 
   );
 
Всем здравствуйте 
Недавно приобрел товар в  MQLe 
Но не могу активировать или скачать так как панеле инструменты MT5 нету вкладки МАРКЕТ. Кто нибудь сталкивался с этим? 
Какие могут быть причины? Или же к кому обратиться по данному вопросу? 
Буду благодарен. Спасибо 
Файлы:
 
Vladimir Karputov:

Правильный ответ:


Почему так: читаем справку по торговому классу CTrade, например открытие позиции Buy


НО! Даже эта проверка будет не достаточна, так как только в OnTradeTransaction() можно можно получить транзакцию TRADE_TRANSACTION_DEAL_ADD – добавление сделки в историю.


В общем случае нужен комплект - отправка торгового запроса через CTrade, сразу проверка на успешность и дальше ждать в OnTradeTransaction()  транзакцию TRADE_TRANSACTION_DEAL_ADD.

благодраю