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

 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
#property version   "1.00"
#property strict
#property script_show_inputs

input int                        Magic                      =100;
input double                     Volume                     =0.01;
input bool                       EURUSD                     =true;
input bool                       EURGBP                     =true;
input bool                       GBPUSD                     =true;
input double                     Grid                       =0.5;
extern int                       Slippage                   =5;   

int i,type,ticket,MagiX;
double price;
string symbol,iOrderComment;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
   {
   return(INIT_SUCCEEDED);  
   }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
   {
   }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int iGridCreate()
   {
   double dGC1;
   dGC1=SymbolInfoDouble(symbol,SYMBOL_BID);
   for(i=0; i<25; i++)
      {GlobalVariableSet(symbol+" BUY "+(1001+i),NormalizeDouble(dGC1=dGC1-(dGC1/100*Grid),SymbolInfoInteger(symbol,SYMBOL_DIGITS)));}
   dGC1=SymbolInfoDouble(symbol,SYMBOL_BID);
   for(i=0; i<25; i++)
      {GlobalVariableSet(symbol+" SELL "+(1001+i),NormalizeDouble(dGC1=dGC1+(dGC1/100*Grid),SymbolInfoInteger(symbol,SYMBOL_DIGITS)));}
   return(0);
   }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int iMagic()
   {
   MagiX=Magic;
   return(0);
   }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int iGridOpen()
   {
   double dGO1;
   string sGO1;
   for(i=0; i<GlobalVariablesTotal(); i++)
      {
      sGO1=GlobalVariableName(i);
      symbol=StringSubstr(sGO1,0,StringFind(sGO1," ",0));
      dGO1=SymbolInfoDouble(symbol,SYMBOL_BID);
      if(StringFind(sGO1,"BUY",0)!=-1)
         {
         if(dGO1<GlobalVariableGet(sGO1))
            {
            type=0;
            iOrderComment=dGO1+"<"+GlobalVariableGet(sGO1);
            intOpenPosition();
            GlobalVariableDel(sGO1);
            }
         }
      if(StringFind(sGO1,"SELL",0)!=-1)
         {
         if(dGO1>GlobalVariableGet(sGO1))
            {
            type=1;
            iOrderComment=dGO1+">"+GlobalVariableGet(sGO1);
            intOpenPosition();
            GlobalVariableDel(sGO1);
            }
         }
      }
   return(0);
   }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int intOpenPosition()
   {
   MqlTradeRequest TradeRequest={}; MqlTradeResult TradeResult={};
   ZeroMemory(TradeRequest);ZeroMemory(TradeResult);
   TradeRequest.action=TRADE_ACTION_DEAL;
   TradeRequest.symbol=symbol;
   TradeRequest.volume=Volume;
   TradeRequest.type=type;
   if(type==0){price=SymbolInfoDouble(symbol,SYMBOL_ASK);}
   if(type==1){price=SymbolInfoDouble(symbol,SYMBOL_BID);}
   TradeRequest.price=price;
   TradeRequest.deviation=Slippage;
   TradeRequest.magic=MagiX;
   TradeRequest.comment=iOrderComment;
   if(!OrderSend(TradeRequest,TradeResult)){Print("110");intOpenPosition();}
   else{ticket=TradeResult.deal;}
   return(0);
   }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
   {
   iMagic();
   iGridOpen();
   if(EURUSD==true)
      {
      symbol="EURUSD";
      SymbolSelect(symbol,true);
      if(GlobalVariablesTotal()==0){iGridCreate();}
      for(i=0; i<GlobalVariablesTotal(); i++)
         {
         if(StringFind(GlobalVariableName(i),symbol,0)!=-1){break;}
         }
      if(i==GlobalVariablesTotal()){iGridCreate();}
      }
   if(EURGBP==true)
      {
      symbol="EURGBP";
      SymbolSelect(symbol,true);
      if(GlobalVariablesTotal()==0){iGridCreate();}
      for(i=0; i<GlobalVariablesTotal(); i++)
         {
         if(StringFind(GlobalVariableName(i),symbol,0)!=-1){break;}
         }
      if(i==GlobalVariablesTotal()){iGridCreate();}
      }
   if(GBPUSD==true)
      {
      symbol="GBPUSD";
      SymbolSelect(symbol,true);
      if(GlobalVariablesTotal()==0){iGridCreate();}
      for(i=0; i<GlobalVariablesTotal(); i++)
         {
         if(StringFind(GlobalVariableName(i),symbol,0)!=-1){break;}
         }
      if(i==GlobalVariablesTotal()){iGridCreate();}
      }
   }
 

Тикеты 6,7,8 получили не свои данные. Если я пишу что то не правильно, буду признателен, если подскажете что не так. Однако пробовал много изменений и ошибка сохраняется.

Проблему наблюдаю в тестере MT5 в режиме визуализации.

Файлы:
bhshrzc2g7.png  27 kb
 

Пытаюсь решить проблему.

Заметил следующее:

В тестере перестают писать логи, какие либо. И в этот момент происходит сбой, рушится метаматика.

2020.08.17 06:12:21   EURGBP 0.90496

2020.08.17 06:12:21   EURGBP BUY 0.90496

2020.08.17 06:47:12   GBPUSD 1.3098

2020.08.17 06:47:12   GBPUSD BUY 1.3098

Как раз в 6:34:15 происходит открытие сделок, которые не должны открываться.

Проверьте, пожалуйста, мой код на тестере. Мне кажется, что тестер после последних обновлений не правильно работает.


Файлы:
du8ozf0qs9.png  67 kb
 
 Помогите решить проблему с индикатором. Есть индикатор, установлен на двух ПК. После смены торгового счёта индикатор перестал отображаться на графике(1 пк), сменил таймфрейм и  индикатор пропал (2 пк). Делал: закидывал-удалял индикатор, компилировал, переустанавливал терминал. Результата нет.
 
Ilyas #:
Ждите следующий билд, не могу точно назвать номер, сейчас мне эта информация недоступна.

Спасибо.

Он поддерживался сборкой 3031.

 
Что эта запись в логе обозначает?
2021.09.02 04:14:56.118 Broker  TradeServer-Live: no demo/preliminary groups on server side
2021.09.02 04:15:15.774 Network '12345': authorization on TradeServer-Live failed (Invalid account)
 
Доброго времени суток уважаемые дамы и/или господа!

У меня предложение, ранее его уже представлял, то решил еще раз напомнить.

В чем суть: Всё просто, предлагаю рассмотреть идею по MetaEditor - то-есть добавить очень нужную и полезную функцию, касающуюся редактора исходного кода, а именно добавить регионы. Что-бы, например, фрагмент кода можно было сворачивать и помечать регион комментариями и цветом.

Я понимаю, что закладки и #include тоже отлично, но регионы особенно когда большие перечисления и куча настроек по каждой валюте - очень были бы кстати и пошли бы на пользу.

Спасибо. Всем всего хорошего и успехов!
 

Ордер есть а функция его не видит. В этом коде Выбирается ордер Функцией 

OrderSelect

если его нет то идет поиск в истории 

HistoryOrderSelect
 if(!OrderSelect(tic))
     {
      Error = GetLastError();
       ResetLastError();
      if(Error ==4754)
        {
         if(HistoryOrderSelect(tic))
           {
            statusOrder = HistoryOrderGetInteger(tic,ORDER_STATE);

            if(statusOrder==ORDER_STATE_FILLED)
              {
               int position_ID = HistoryOrderGetInteger(tic,ORDER_POSITION_ID);
                       }
           }
        }

Но проходя багером Функция не находит ордер хотя он еще не сработал и находит в истории со статусом

Ордер выполнен полностью

тикет = 9. Что  тут не так? Скрины дебага и ордеров. ыф йц

 
Igor Petrov #:

Ордер есть а функция его не видит. В этом коде Выбирается ордер Функцией 

если его нет то идет поиск в истории 

Но проходя багером Функция не находит ордер хотя он еще не сработал и находит в истории со статусом

Ордер выполнен полностью

тикет = 9. Что  тут не так? Скрины дебага и ордеров.

Запустите эксперта - он распечатает количество отложенных ордеров и позиций в рынке. Именно в рынке, а не в торговой истории.

 

BarsCalculated() https://www.mql5.com/ru/docs/series/barscalculated

что возвращает? - это просто  число которое после окончания расчетов в OnCalculate() индикатор вернул в return(rates_total)  ?