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

 
Artyom Trishkin:

Просматривать сделки, принадлежащие позиции и смотреть их объём.

Просто распринтуйте все найденные сделки позиции (свойства каждой) - там и сообразите что нужно для поиска.

Спасибо.

 

Прошу помощи в создании файла, а именно указании правильного места его хранения.

Дело в том, что я использую портативную версию MT5, и мне надо что б файл при инициализации в тестере создавался в папке MT5\MQL5\Files , а он зараза создается в MT5\Tester\Agent-127.0.0.1-3000\MQL5\Files

   filename = (Dir=="" ? filename : Dir+"\\"+filename)+".csv";
   handle= Common ? FileOpen(filename,FILE_CSV|FILE_COMMON|FILE_READ|FILE_WRITE|FILE_SHARE_READ) :
                        FileOpen(filename,FILE_CSV|FILE_READ|FILE_WRITE|FILE_SHARE_READ);
 
Aleksey Vyazmikin:

Прошу помощи в создании файла, а именно указании правильного места его хранения.

Дело в том, что я использую портативную версию MT5, и мне надо что б файл при инициализации в тестере создавался в папке MT5\MQL5\Files , а он зараза создается в MT5\Tester\Agent-127.0.0.1-3000\MQL5\Files

Никак не решить на чистом MQL. Только с привлечением WinAPI. Или руками перенести )))

Такое распределение файлов было специально сделано для безопасности.

 
Ihor Herasko:

Никак не решить на чистом MQL. Только с привлечением WinAPI. Или руками перенести )))

Такое распределение файлов было специально сделано для безопасности.

Так оптимизатор пишет не в папку агентов а в папку MT5\MQL5\Files - не логично как то.

 
if(crossed==1)
     {
      double sl=(InpStopLoss==0)?0.0:m_symbol.Bid()+ExtStopLoss;
      double tp=(InpTakeProfit==0)?0.0:m_symbol.Bid()-ExtTakeProfit;
      m_trade.Sell(InpLots,m_symbol.Name(),m_symbol.Bid(),
                   m_symbol.NormalizePrice(sl),
                   m_symbol.NormalizePrice(tp));
      datetime time=TimeCurrent();
      for(int i=0;i<4;i++)
        {

Как задать другой магический номер выставляемому ордеру в этом коде? Отличный от этого общего -

int OnInit()
//---
   m_trade.SetExpertMagicNumber(m_magic);
//---
 
ilyav:

Как задать другой магический номер выставляемому ордеру в этом коде? Отличный от этого общего -

Перед отправкой приказа на открытие с другим магиком, выполните эту строку с нужным магиком. Далее верните магик на место.
 
подскажите пожалуйста как сделать функцию задания нужного количества ордеров ! например что б открывалось в заданное нами кол-во ордеров не более . в mql4
 
в MQL-4 последний параметр функции OrderSend:

arrow_color=clrNONE  [in]  Цвет открывающей стрелки на графике. Если CLR_NONE - стрелка отсутствует. В MT5 стрелка отображается всегда - в структуре MqlTradeRequest отсутствует соответствующий параметр. Как Вы с этим боретесь? На своем графике просто. Но если по инструменту открыт еще один график - надо перебирать...


 
Лауреат:
подскажите пожалуйста как сделать функцию задания нужного количества ордеров ! например что б открывалось в заданное нами кол-во ордеров не более . в mql4
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("Открыто нужное количество ордеров");
 
Artyom Trishkin:
Перед отправкой приказа на открытие с другим магиком, выполните эту строку с нужным магиком. Далее верните магик на место.


if(crossed==1)
     {
      m_trade.SetExpertMagicNumber(m_magic2); // меняем мэджик на новый
      double sl=(InpStopLoss==0)?0.0:m_symbol.Bid()+ExtStopLoss;
      double tp=(InpTakeProfit==0)?0.0:m_symbol.Bid()-ExtTakeProfit;
      m_trade.Sell(InpLots,m_symbol.Name(),m_symbol.Bid(),
                   m_symbol.NormalizePrice(sl),
                   m_symbol.NormalizePrice(tp));
      m_trade.SetExpertMagicNumber(m_magic);  // меняем мэджик на оригинал
      datetime time=TimeCurrent();
      for(int i=0;i<4;i++)
        {
Так верно ? Спасибо
Причина обращения: