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

 

Добрый день!

Открываю позицию и хочу вывести на печать содержание MqlTradeResult вот так:


   //--- declare and initialize the trade request and result of trade request
        MqlTradeRequest request={0};
        MqlTradeResult  result={0};
        //--- parameters of request
        request.action   = TRADE_ACTION_DEAL;    // type of trade operation
        request.symbol   = Pair1;                // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;            // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
 //============================================================     
        if(OrderSend(request,result))       
        Print ("result.retcode = " + result.retcode + "; ");        
        Print ("deal = " + result.deal + "; ");
        Print ("order = " + result.order + "; "); 
        Print ("volume = " + result.volume + "; ");  
        Print ("price = " + result.price + "; ");

result.retcode, order и volume выводятся, а deal и price всегда нули.
Подскажите, пожалуйста, что делаю не так?

 
Algotrader18:

Добрый день!

Открываю позицию и хочу вывести на печать содержание MqlTradeResult вот так:


result.retcode, order и volume выводятся, а deal и price всегда нули.
Подскажите, пожалуйста, что делаю не так?

Статья С чего начать при создании торгового робота для Московской биржи MOEX. Пример слушателя "TradeTransactionListener":

Торговать на бирже с помощью роботов — это просто

Язык MQL5 изначально поддерживает все торговые возможности платформы MetaTrader 5: в нем множество торговых функций для работы с ордерами, позициями и торговыми запросами. При этом не имеет значения, на каком рынке вы торгуете — фьючерсами, акциями, опционами и т.д. 

Средствами MQL5 вы можете создать торговый запрос и отослать его на сервер с помощью функций OrderSend() или OrderSendAsync(), получить результат его выполнения, просмотреть торговую историю, узнать спецификацию контракта для инструмента, обработать торговое событие и получить еще множество другой необходимой информации.

Для разработчиков торговых роботов важно понимать одно существенное обстоятельство: каждая торговая операция, будь то открытие позиции, установка StopLoss или TakeProfit,  или закрытие позиции встречной сделкой — всегда состоит из множества транзакций, совершаемых на сервере MetaTrader 5 и на Московской бирже. Чтобы увидеть как это происходит, вы можете запустить на своем счете советника TradeTransactionListener.mql5, который просто слушает события TradeTransaction и выводит краткую информацию по ним:

//+------------------------------------------------------------------+
//|                                     TradeTransactionListener.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+


 
кто нибудь сталкивался с проблемой , не могу войти в мт5, проблема - invalid certificate?
 
Impulsive87:
кто нибудь сталкивался с проблемой , не могу войти в мт5, проблема - invalid certificate?
Windows настоящая (случайно не эмулятор)? Подключаетесь к брокеру который выдавал сертификат или к обычному ДЦ?
 

Какие условия чтобы тестирование продолжалось с тем же кешем который лежит в \Tester\cache, чтобы не создавалась новая таблица оптимизации а дополнялась?

1 чтобы был неизменный скомпилированный файл советника ex5

2 что бы не менялись условия тестирования (за исключением по балансу, или по балансу + прибыльность)

3 ?

 
Impulsive87:
кто нибудь сталкивался с проблемой , не могу войти в мт5, проблема - invalid certificate?
я давным давно сталкивался, проверяй в хранилище сертификатов и в папке с программой чтобы были нужные сертификаты
 
Vladimir Karputov:

Статья С чего начать при создании торгового робота для Московской биржи MOEX. Пример слушателя "TradeTransactionListener":

Спасибо, но это не совсем то - там работают с историей, я мне надо получить данные из MqlTradeResult сразу после открытия позиции. Странно - часть параметров он выводит, а часть нет, т.е. что-то делаю не так. Хотелось бы разобраться именно в этой ситуации...
 
Algotrader18:

Добрый день!

Открываю позицию и хочу вывести на печать содержание MqlTradeResult вот так:


result.retcode, order и volume выводятся, а deal и price всегда нули.
Подскажите, пожалуйста, что делаю не так?

Попробуйте перед печатью вызвать

//+------------------------------------------------------------------+
//| Get the result structure                                         |
//+------------------------------------------------------------------+
void CTrade::Result(MqlTradeResult &result) const
  {
   result.retcode   =m_result.retcode;
   result.deal      =m_result.deal;
   result.order     =m_result.order;
   result.volume    =m_result.volume;
   result.price     =m_result.price;
   result.bid       =m_result.bid;
   result.ask       =m_result.ask;
   result.comment   =m_result.comment;
   result.request_id=m_result.request_id;
   result.retcode_external=m_result.retcode_external;
  }
из класса CTrade
 
Alexey Viktorov:

Попробуйте перед печатью вызвать

из класса CTrade
Спасибо, хотелось бы сделать это без CTrade.
 
Algotrader18:
Спасибо, хотелось бы сделать это без CTrade.

Так вытащите нужный функционал из класса и пропишите к себе.

Причина обращения: