Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 799

 
Artyom Trishkin:
L'immondizia è nei buffer. Prima devi inserire un valore vuoto in tutti i buffer da disegnare (se sono buffer di frecce), e solo dopo calcolare l'indicatore. Non posso vedere il codice dal mio cellulare, non posso dire esattamente.

Intendi dire di fare prima ArrayInitialize?

 
Roman Sharanov:

Intendi dire di fare prima ArrayInitialize?

Questo è già in atto.
Nel ciclo dell'indicatore, dovete assegnare il buffer a un "valore vuoto" nella cella del buffer con l'indice del ciclo.
 
Artyom Trishkin:
Questo è già in atto.
Nel ciclo dell'indicatore, dovete assegnare un "valore vuoto" alla cella del buffer con l'indice del ciclo.

OK, grazie.

 
Artyom Trishkin:

Sì, studia l'esempio:

Grazie, andrò alla fonte della conoscenza :-)


Forum sul trading, sistemi di trading automatico e test di strategia

Qualsiasi domanda per i principianti su MQL4, aiuto e discussione su algoritmi e codici

Artyom Trishkin, 2019.03.31 09:10

È già lì.
In un ciclo indicatore, è necessario assegnare un valore buffer "valore vuoto" alla cella buffer con l'indice del ciclo.

È che ad ogni array deve essere dato esplicitamente un valore nullo?

Questa spazzatura può essere trattata tramite PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0) ?

 
psyman:

Grazie, andrò alla fonte della conoscenza :-)



È necessario impostare esplicitamente ogni array su un valore zero?

Questa spazzatura può essere gestita da PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0)?

Mettete il cursore sul nome della funzione nell'editor e premete F1 e apparirà un miracolo.
 
Ho scaricato il bot, a cosa può essere collegato questo errore?
Tutti quelli che hanno installato il bot funzionano, io sono l'unico che ha questo. Reinstallato il terminale, aperto come amministratore, niente aiuta

 
Nessun errore o avvertimento durante la compilazione. Ma le posizioni non si aprono (ho aperto solo 1 posizione di acquisto e l'ho chiusa sulla linea di take).

Non so ancora quale sia il 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:
Ho scaricato il bot, a cosa può essere collegato questo errore?
Non so cosa farne. Ho reinstallato il terminale, l'ho aperto come amministratore, niente aiuta.

L'unica cosa che resta da fare è reinstallare il sistema operativo, o cambiare... sai cosa.




Ti sei fatto un'idea sbagliata. Intendevo l'Expert Advisor.

 
Alexey Viktorov:

L'unica cosa che resta da fare è reinstallare il sistema operativo, o cambiare... sai cosa.




Ti sei fatto un'idea sbagliata. Intendevo il consulente.

Qual è la ragione?
 
Roman Sharanov:
Qual è la ragione?

In questi casi non cerco di capirlo o di aggiustarlo. Lo butto sempre via senza rimpianti e lo dimentico.