Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 217

 
artmedia70:


Cercando di chiamare Alert per controllare, non viene fuori niente. Il fatto è che il mio indicatore non è cambiato nelle ultime tre barre. L'ho impostato per tagliare i falsi movimenti.

Per esempio, quando vedo la crescita sale, ma se i movimenti successivi avvengono all'interno del filtro specificato non cambia e si muove rigorosamente in orizzontale. Nebhodhimosti prima che l'indicatore piatto, confrontare gli ultimi due valori e determinare la tendenza. Se vuoi posso mandarti il codice.

 
Forexman77:

Cercando di chiamare Alert per controllare, non viene fuori niente. Il fatto è che il mio indicatore non è cambiato nelle ultime tre barre. L'ho impostato per tagliare i falsi movimenti.

Per esempio, quando vedo la crescita sale, ma se i movimenti successivi avvengono all'interno del filtro specificato non cambia e si muove rigorosamente in orizzontale. Nebhodhimosti prima che l'indicatore piatto, confrontare gli ultimi due valori e determinare la tendenza. Se vuoi posso mandarti il codice.

Vi ho mostrato come trovare l'estremo più vicino della linea dell'indicatore nel vostro Expert Advisor. Rendere nBars uguale a Bars o semplicemente sostituire nBars con Bars
 
artmedia70:
Vi ho mostrato come trovare l'estremo più vicino di una linea di indicatore in un EA. Rendere nBars uguale a Bars o semplicemente sostituire nBars con Bars

Molti parametri ora escono quando si chiama un valore qualsiasi: a, b o c.

Il codice dell'indicatore:

#property copyright ""
#property link      ""
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//--- input parameters

//--- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,0,2);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    raznica,raznica_static,
    MA_1_t,                                                  
    MA_2_t;
 
   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   static double MA_otshet;
   for(int i=0;i<limit;i++)
   {
      MA_1_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+0);  
      MA_2_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+1); 
      raznica=MA_1_t-MA_2_t;
      raznica_static=MA_1_t-MA_otshet;
      if(raznica_static > -0.001 && raznica_static < 0.001)
      {
      ExtMapBuffer1[i]=MA_otshet;
      }
      else
      if(raznica > -0.001 && raznica < 0.001)
      {
      ExtMapBuffer1[i]=MA_2_t;
      MA_otshet=MA_2_t;
      }
      if((raznica > 0.001) || (raznica <- 0.001))
      {
      ExtMapBuffer1[i]=MA_1_t;
      }
   }
   return(0);
  }
//+------------------------------------------------------------------+
 
No... Faresti meglio a mostrarmi cosa stai facendo nel tuo EA. Come ottenete i dati del vostro indicatore?
 
artmedia70:
No... Faresti meglio a mostrarmi cosa stai facendo nel tuo EA. Come prendi i dati dal tuo induttore?

Niente di che, cercando di allertare e vedere l'alto più vicino)

Caricare l'indicatore sul quotidiano, tre giorni senza alcun cambiamento, questo deve essere il problemaA?

for (i=2; i<Bars; i++) {
double a=iCustom(NULL, 0, "EMAF",0,0,i+1);
double b=iCustom(NULL, 0, "EMAF",0,0,i);
double c=iCustom(NULL, 0, "EMAF",0,0,i-1);
if ((a-b)*(b-c)<0) {
if (b<c) {
;// Trovato fondo
}
if (b>c) {
Alert ("b=",b) // Trovato fondo
}
}
}

 
Forexman77:

Niente di che, cercando di allertare e vedere l'alto più vicino)

Caricare l'indicatore sul quotidiano, tre giorni senza cambiamento, deve essere il problemaA?

per (i=2; i<Bars; i++) {
double a=iCustom(NULL, 0, "EMAF",0,0,i+1);
double b=iCustom(NULL, 0, "EMAF",0,0,i);
double c=iCustom(NULL, 0, "EMAF",0,0,i-1);
se ((a-b)*(b-c)<0) {
se (b<c) {
;//Trova il fondo
}
se (b>c) {
Alert ("b=",b)// Trovato peg
}
}
}

Non può essere questo il problema. Abbiamo fatto un giro prima di Bars. Scrivi pausa dopo l'avviso;
 
artmedia70:
Non può essere questo il problema. Abbiamo fatto il giro prima di Bars. Dopo l'avviso, scrivere break;

.
Dopo la pausa; appare un messaggio. Ma il valore non corrisponde all'indicatore, forse c'è qualcosa di sbagliato nell'indicatore stesso?
L'indicatore mostra la linea come mi serve. Il calcolo dell'indicatore si basa su tre condizioni, che corrispondono alla situazione attuale.
 
Forexman77:
Dopo la pausa; appare un messaggio. Ma il valore non corrisponde all'indicatore, forse c'è qualcosa di sbagliato nell'indicatore stesso?
L'indicatore mostra la linea come mi serve. L'indicatore è calcolato in base a tre condizioni che corrispondono alla situazione attuale.

Invece di Alert("b=",b); Tipo:

Alert("Цена b="+DoubleToStr(b,Digits)+"\nВремя бара="+TimeToStr(Time[i]));
 
artmedia70:

Invece di Alert("b=",b); Write:



Non posso, ho provato in diversi modi. I valori non sono chiaramente appropriati,

Sì e il tempo in tutti i valori "Bar time=2010.11.04 00:00". Chiamata attraverso lo script.

Molto probabilmente il problema è con l'indicatore: il valore è ottenuto da

ExtMapBuffer1[i]

che si ottiene da tre diverse condizioni corrispondenti al tempo corrente.

Quando chiamo l'attuale valore EURUSD tutto è OK: 1,3717, ciò che non si può dire dei massimi.

 
Gente, potreste dirmi il codice che mostrava il saldo che c'era all'inizio del mese...