[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 264

 

Potete dirmi per favore come assegnare il tempo della linea dell'indicatore val1[]. O ditemi come farlo e cosa usare perché non riesco a capirlo. Indicatore di Laguerre.

i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
         

   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   if(limit>CountBars)
      limit=CountBars;
  
   for(int c=1;c<limit;c++)
        
{if(val1[c]>0.45)
  // присваиваем время;}

Per esempio, quando la linea val1[c] attraversa 0,45 verso l'alto il valore del tempo è impostato nella variabile TimeBegin e quando attraversa verso il basso il valore del tempo è impostato nella variabile TimeEnd. E così via per tutto il grafico.

L'idea è che quando la linea attraversa 0,45 verso l'alto e dopo che attraversa 0,45 verso il basso, per questo periodo, conta i punti nel grafico (Quanti punti ha l'indicatore massimo dato per questo segnale). Spero di essere stato in grado di spiegare.

File:
 
VeyRON123:
C'è un modo per disconnettere MT4 stesso da internet senza spegnere internet sul tuo computer?
hrenfx 20.03.2011 16:18

Disconnettiti dal broker tramite la casella di controllo "proxy" nelle impostazioni del terminale. Una mossa e sei offline o online.

 
Ciao, potresti dirmi perché la funzione standard OrderSend non funziona ? Basta prendere il codice sorgente dal tutorial su questo sito, ma non succede nulla. Quando ho aggiunto l'output di errore, ha mostrato 4109 - stringa non inizializzata in un array...
 
Grazie per i consigli, ci darò un'occhiata...
 
Golden-dark:
Ciao, potresti dirmi perché la funzione standard OrderSend non funziona ? Basta prendere il codice sorgente dal tutorial su questo sito, ma non succede nulla. Quando ho aggiunto l'output di errore, ha mostrato 4109 - stringa non inizializzata in un array...
mostrami il codice completo
 

Saluti compagni!

Potete dirmi per favore quale potrebbe essere l'errore nel seguente codice:

//+------------------------------------------------------------------+
//|                                                         BB_k.mq4 |
//|                                                     |
//|                                                          no link |
//+------------------------------------------------------------------+
#property copyright "123"
#property link      "no link"

#property indicator_separate_window
#property indicator_buffers 1

#property indicator_color1 MediumSpringGreen

#property indicator_width1 1

double   buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {

   SetIndexBuffer (0, buf_0);
   SetIndexStyle (0, DRAW_LINE);
   SetIndexLabel (0, "Koefficient");
   SetIndexShift (0, 0);

   return;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i;
   int    counted_bars=IndicatorCounted();
//----
   i = Bars - counted_bars - 1;
   
   while (i>=0)
   {
      double x1 = iBands(NULL, 0, 20, 2, 0, PRICE_LOW, 1, i); //Верхняя полоса
      double x2 = iBands(NULL, 0, 20, 2, 0, PRICE_LOW, 2, i); //Нижняя полоса
   
      buf_0[i] = x1 / x2;
      i--;
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+

E il succo è questo: voglio un indicatore che mostri una linea di valori che divida la Bollinger Band superiore dalla Bollinger Band inferiore.

Ma non c'è alcun risultato.

La finestra dell'indicatore è vuota:

Grazie in anticipo se qualcuno può aiutare!

 
ramirez17:

Saluti compagni!

Potete dirmi per favore quale potrebbe essere l'errore nel seguente codice:

E il succo è questo: voglio un indicatore che mostri una linea di valori che divida la Bollinger Band superiore dalla Bollinger Band inferiore.

Ma non c'è alcun risultato.

La finestra dell'indicatore è vuota:

Grazie in anticipo se qualcuno può aiutare!

buf_0[i] = x1 / x2;

avete x2=0 sulle barre più a sinistra. E dividere per zero non è una buona cosa...

 
ilunga:

avete x2=0 sulle barre più a sinistra. E dividere per zero non è una buona cosa...


Cosa si può fare, per esempio, per prevenire questo?
 
ramirez17:

Cosa si può fare, per esempio, per prevenire questo?
if (x2 == 0) buf_0[i] = 0;
else buf_0[i] = x1 / x2;
È meglio evitare che questo accada del tutto.
 
Puoi darmi un suggerimento? Ci sono due condizioni, per comprare e per vendere. Dopo aver catturato un falso segnale di vendita, per esempio di acquisto, l'expert advisor inizia ad aprire di nuovo la posizione successiva da questo falso segnale e ne cattura di nuovo uno falso. Come posso fare in modo che il mio EA aspetti il segnale nella direzione opposta dopo la perdita e non si apra di nuovo con un falso segnale? Grazie!
Motivazione: