[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 519

 
Ancora una volta la domanda non è chiara. Distruggere dal grafico o non contare in EA? Scollegare per condizione o ? Disconnettersi da dove e con cosa?
Una domanda specifica avrà una risposta specifica e rapidamente.
 
zhuki >>:
Опять вопрос непонятный. Уничтожить с графика или не считать в эксперте? Отключить по условию или ?. Отключить откуда и чем?
На конкретный вопрос будет конкретный ответ и быстро.

Una volta che gli ordini pendenti sono stati piazzati, l'indicatore deve essere disabilitato. Non contare nell'Expert Advisor.

 
Vuoi dire che non contano nell'esperto Tuck?
Fare un faro. Una volta che gli ordini sono stati effettuati non fare riferimento all'indicatore.
 
Come non potrei? L'indicatore invia costantemente dati a un file esterno, l'Expert Advisor legge questi dati, poi piazza gli ordini e legge nuovamente i dati, non dovrebbe.
 
vlandex >>:
А как не обращаться? Данные индикатор выкидывает в внешний файл постоянно, эксперт считывает эти данные, потом выставляет ордера и опять считывает данные, а не должен.

utilizzare

Totale ordini( )
 
Leggi di più...
 
Ora sapete cosa fare.
Usare una variabile globale. Se c'è, l'indicatore non conta né scrive. E viceversa.
 
vlandex >>:
Подробнее...

Leggi il tuo indicatore quando la condizione è soddisfatta

if(OrdersTotal()==0){Leggi il tuo indicatore}

 
ma si noti che
int OrdiniTotale( )
Restituisce il numero totale di ordini aperti e in sospeso.
 

Buona sera a tutti...

Ho provato a cambiare l'indicatore OsMA per ottenere linee con il numero Sift della media delle barre (Somma di tutti i valori positivi e negativi dell'indicatore perSift barra divisa per Sift)

Ma per qualche ragione le letture delle linee non vogliono dipenderedal valore di Sift...

//+------------------------------------------------------------------+
//|                                                         OsMA.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2004, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Silver
#property  indicator_color2  Red
#property  indicator_color3  ForestGreen
//---- indicator parameters
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
extern int Sift=20;
extern int Sift1=100;
//---- indicator buffers
double     ind_buffer1[];
double     ind_buffer2[];
double     ind_buffer3[];
double     ind_buffer4[];
double     ind_buffer5[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(3);
//---- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);
   SetIndexDrawBegin(0,SignalSMA);
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 3 indicator buffers mapping
   if(!SetIndexBuffer(0,ind_buffer1) &&
      !SetIndexBuffer(1,ind_buffer2) &&
      !SetIndexBuffer(2,ind_buffer3))
      Print("cannot set indicator buffers!");
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Average of Oscillator                                     |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
//---- check for possible errors
   if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st additional buffer
   for(int i=0; i<limit; i++)
      ind_buffer2[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- signal line counted in the 2-nd additional buffer
   for(i=0; i<limit; i++)
      ind_buffer3[i]=iMAOnArray(ind_buffer2,Bars,SignalSMA,0,MODE_SMA,i);
//---- main loop
   for(i=0; i<limit; i++)
      ind_buffer1[i]=ind_buffer2[i]-ind_buffer3[i];
//---- done
   for(i=0; i<limit; i++)
      ind_buffer4[i]=(ind_buffer2[i]+ind_buffer3[i])/Sift;
//---------      
   for(i=0; i<limit; i++)
      ind_buffer5[i]=(ind_buffer2[i]+ind_buffer3[i])/Sift1;
//---------      
   return(0);
  }
//+------------------------------------------------------------------+
Motivazione: