Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 799

 
Artyom Trishkin:
O lixo está nos amortecedores. Primeiro é preciso inserir um valor em branco em todos os amortecedores a serem desenhados (se forem amortecedores de flechas), e só então calcular o indicador. Não consigo ver o código do meu celular, não consigo dizer exatamente.

Você quer dizer que o ArrayInitialize primeiro?

 
Roman Sharanov:

Você quer dizer que o ArrayInitialize primeiro?

Isto já está em vigor.
No loop indicador, você tem que atribuir o buffer a um "valor vazio" na célula buffer com o índice do loop.
 
Artyom Trishkin:
Isto já está em vigor.
No laço indicador, é necessário atribuir um "valor vazio" à célula tampão com o índice do laço.

OK, obrigado.

 
Artyom Trishkin:

Sim. Estude o exemplo:

Obrigado, irei à fonte do conhecimento :-)


Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Qualquer pergunta para iniciantes sobre MQL4, ajuda e discussão sobre algoritmos e códigos

Artyom Trishkin, 2019.03.31 09:10

Já está lá.
Em um loop indicador, é necessário atribuir um valor de reserva "valor vazio" à célula de reserva com o índice do loop.

É necessário que cada matriz tenha um valor nulo explícito?

Este lixo pode ser tratado via PlotIndexSetDouble(0,PLOT_EMPTTY_VALUE,0) ?

 
psyman:

Obrigado, vou até a fonte de conhecimento :-)



É necessário definir explicitamente cada matriz para um valor zero?

Este lixo pode ser tratado pela PlotIndexSetDouble(0,PLOT_EMPTTY_VALUE,0) ?

Coloque o cursor sobre o nome da função no editor e pressione F1 e aparecerá um milagre.
 
Descarregado o bot, a que pode estar relacionado este erro?
Todos que instalaram o bot funcionam, eu sou o único que tem isto. Reinstalou o terminal, abriu-o como administrador, nada ajuda

 
Sem erros ou avisos durante a compilação. Mas as posições não abrem (abriram apenas 1 posição para comprar e a fecharam na linha Take).

Eu ainda não sei qual é o problema.

//+------------------------------------------------------------------+
//|                                    Test advisor on iDeMarker.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//------------------параметры советника -------------------------------
extern double lots=0.01; //
extern int Magic=1111678111;
extern int Slippage=1;
//double sell_level=0.7;
//double buy_level=0.3;

extern double StopLoss=50;
extern double TakeProfit=50;
extern double TrailingStop=30;
double SL,TP;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   if(Digits==3 || Digits==5)
     {
      TakeProfit *=10;
      StopLoss   *=10;
      Slippage   *=10;
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {
   int ticket;
// int cnt,total;

// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     {
      SL = NormalizeDouble(Bid+StopLoss*Point, Digits);
      TP = NormalizeDouble(Bid-TakeProfit*Point, Digits);
        {

         ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
         if(ticket>0)
           {
            // закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
                        if(OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на покупку !");
                    }
                 }
              }
           }
        }
     }
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     {
      TP = NormalizeDouble(Ask+TakeProfit*Point, Digits);
      SL = NormalizeDouble(Ask-StopLoss*Point, Digits);
        {
         ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
         if(ticket>0)
           {
            // закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                        if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на продажу!");
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
int CountSell()//проверкна открытие ордеров на продажу
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)==true)
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            if(OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
int CountBuy()// проверкна открытие ордеров на покупку
  {
   int count=0;
   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)==true)
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            if(OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
 
Roman Sharanov:
Eu baixei o bot, com o que este erro pode estar relacionado?
Eu não sei o que fazer com ele. Eu reinstalei o terminal, abri-o como administrador, nada ajuda.

A única coisa que falta fazer é reinstalar o sistema operacional, ou mudar... você sabe o quê.




Você tem a idéia errada. Referia-me ao Consultor Especialista.

 
Alexey Viktorov:

A única coisa que falta fazer é reinstalar o sistema operacional, ou mudar... você sabe o quê.




Você tem a idéia errada. Referia-me ao conselheiro.

Qual é a razão?
 
Roman Sharanov:
Qual é a razão?

Eu não tento descobrir ou consertar isso em tais casos. Eu sempre o jogo fora sem me arrepender e o esqueço.

Razão: