Ошибки, баги, вопросы - страница 3143

 

Что возвращается в структуру MqlTradeCheckResult?

В документации написано, что «Размер маржи необходимой для требуемой торговой операции».

Поле

Описание

retcode

Код возврата

balance

Значение баланса, которое будет после выполнения торговой операции

equity

Значение собственных средств, которое будет после выполнения торговой операции

profit

Значение плавающей прибыли, которое будет после выполнения торговой операции

margin

Размер маржи необходимый для требуемой торговой операции

margin_free

Размер свободных собственных средств, которые останутся после выполнения требуемой торговой операции

margin_level

Уровень маржи, который установится после выполнения  требуемой торговой операции

comment

Комментарий к коду ответа, описание ошибки


Но на самом деле получается размер суммарной маржи, текущей и плюс той, что будет взята после выполнения этой операции.

Вот скрипт

#include <Trade\Trade.mqh>
CTrade trade;
  MqlTradeRequest           my_request;
  MqlTradeCheckResult       my_check_result;
  MqlTick                   mqlTick;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
 {
  SymbolInfoTick(_Symbol, mqlTick);
  CheckOrder(0.01, ORDER_TYPE_SELL);
  Print(my_check_result.margin);
//---
  trade.PositionOpen(_Symbol, ORDER_TYPE_SELL, 0.01, mqlTick.bid, 0.0, 0.0);
//---
  CheckOrder(0.01, ORDER_TYPE_SELL);
  Print(my_check_result.margin);
 }/******************************************************************/

/********************************************************************\
||
\********************************************************************/
bool CheckOrder(double volume, ENUM_ORDER_TYPE order_type)
 {
  if(order_type != ORDER_TYPE_BUY && order_type != ORDER_TYPE_SELL)
    return false;
  ZeroMemory(my_request);
  ZeroMemory(my_check_result);
  bool checkOrder = false;
//--- setting my_request
  my_request.action = TRADE_ACTION_DEAL;
  my_request.symbol = _Symbol;
  my_request.volume = volume;
  my_request.type   = order_type;
  my_request.price  = order_type == ORDER_TYPE_BUY ? mqlTick.ask : mqlTick.bid;
  checkOrder = ::OrderCheck(my_request, my_check_result);
  if(my_check_result.retcode != 0)
    return(false);
//---
  return(true);
 }/******************************************************************/

и результат выполнения

2022.02.01 10:11:28.002 Test bag (EURUSD,H1)    2.25
2022.02.01 10:11:28.108 Test bag (EURUSD,H1)    4.5

Пока на счёте нет открытых позиций my_check_result.margin равен марже открытой позиции лотом 0.01, а когда на счёте уже есть позиция 0.01 то размер маржи уже за лот 0.02

Файлы:
Test_bag.mq5  5 kb
 
Alexey Viktorov #:

Но на самом деле получается размер суммарной маржи, текущей и плюс той, что будет взята после выполнения этой операции.

Верно.

MarginOpen = CheckResult.margin - ::AccountInfoDouble(ACCOUNT_MARGIN); // Маржа для открытия.
 
fxsaber #:

Верно.

Пусть будет так, но тогда в документации должно быть одинаково написано.

Если balans — Значение баланса, которое будет после выполнения торговой операции

то и margin — должно быть. Размер маржи, которое будет после выполнения торговой операции

 

Вызываю в МТ5 в тестере стратегий следующий код

Print("!!!  ",AccountInfoString(ACCOUNT_NAME));

Он выдает, что имя аккаунта Tester 

Так задумано?

[Удален]  

В чем может быть причина того, что терминал взбесился и в советнике во входных параметрах типа double начал приписывать нули 00000000 и девятки 999999999 после запятой? Так стало после одного из перезапусков данного терминала MT5, а до перезапуска работал без лишних 0 и 9. На работе советник это не отобразилось, но вот в другом терминале MT5 такой проблемы нет. 

 
Wizard #:

В чем может быть причина того, что терминал взбесился и в советнике во входных параметрах типа double начал приписывать нули 00000000 и девятки 999999999 после запятой? Так стало после одного из перезапусков данного терминала MT5, а до перезапуска работал без лишних 0 и 9. На работе советник это не отобразилось, но вот в другом терминале MT5 такой проблемы нет. 

Избавиться от кол-ва знаков в параметрах - Общее обсуждение - Форум алго-трейдеров MQL5

Проблема в последнем билде. Ждите обновы

Избавиться от кол-ва знаков в параметрах
Избавиться от кол-ва знаков в параметрах
  • 2022.02.01
  • www.mql5.com
Объявляю глобальную переменную , делаю ее внешней Когда прикрепляю советник к графику, то в окне параметров вижу, что у всего, что имеет тип double...
[Удален]  
Благодарю! 
 
Nikita Chernyshov #:

Вызываю в МТ5 в тестере стратегий следующий код

Он выдает, что имя аккаунта Tester 

Так задумано?

Да.

 
fxsaber #:

Да.

А как получить имя аккаунта, с которого был запущен тестер?

 
Nikita Chernyshov #:

А как получить имя аккаунта, с которого был запущен тестер?

Зачем?