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

 

Aiutatemi a scrivere un semplice indicatore che disegni linee di massimi e minimi nella finestra principale per il periodo richiesto (che è impostato con una variabile esterna).

 

Per favore, ditemi dove trovare un pianificatore per 15 giorni della settimana.

Per favore, datemi un link o un file o un nome.

E come sempre grazie per il vostro tempo.

 
41ckm39fi:

Buona sera.

Potreste dirmi qual è l'errore, l'indicatore non dà un messaggio sull'attraversamento di due MA.


Hai pensato bene prima di scrivere questo indicatore?

Per favore, spiega la logica, almeno per te stesso.

#property indicator_chart_window

extern int        Period_MA_fast         = 5,
                  Period_MA_med          = 8,
                  Period_MA_slow         = 16,
                  period_DeMarker       = 14;
//---- 
double            DeMarker_buffer0[],
                  Speed_MA_fast[],
                  Speed_MA_med[],
                  Speed_MA_slow[];      

#define SIGNAL_BAR 1
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   //---- indicators
   IndicatorBuffers(4);
   SetIndexBuffer(0,DeMarker_buffer0);
   SetIndexBuffer(1,Speed_MA_fast);
   SetIndexBuffer(2,Speed_MA_med);
   SetIndexBuffer(3,Speed_MA_slow);
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_NONE);
   SetIndexStyle(2,DRAW_NONE);
   SetIndexStyle(3,DRAW_NONE);
   //----
   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
   int    counted_bars=IndicatorCounted();
   int    i,limit;
   
   if(counted_bars>0) counted_bars--;
      limit=Bars-counted_bars;
   //----
   for(i=limit; i>=0; i--) {
      DeMarker_buffer0[i]=iDeMarker(NULL,0,14,i);
      Speed_MA_med[i]=iMA(NULL,0,Period_MA_med,0,MODE_LWMA,PRICE_CLOSE,i);
      Speed_MA_slow[i]=iMA(NULL,0,Period_MA_slow,0,MODE_LWMA,PRICE_CLOSE,i);
   }
   
   for(i=limit; i>=0; i--)
      Speed_MA_fast[i]=iMAOnArray(DeMarker_buffer0,0,5,0,MODE_LWMA,i);
   
   static int PrevTime = 0;

   if(PrevTime >= Time[0] ) return(0);
   PrevTime = Time[0];

   if(Speed_MA_fast[SIGNAL_BAR] - 0.3 > 0)
      if (0.3 - Speed_MA_fast[SIGNAL_BAR+1] >= 0)
         Alert( "sMA(", Symbol(), ", ", Period(), ")  -  BUY!!!" );

   if(0.7 - Speed_MA_fast[SIGNAL_BAR] > 0)
      if (Speed_MA_fast[SIGNAL_BAR+1] - 0.7 >= 0)
         Alert("sMA(", Symbol(), ", ", Period(), ")  -  SELL!!!");

   if(Speed_MA_med[SIGNAL_BAR] - Speed_MA_slow[SIGNAL_BAR] > 0)
      if (Speed_MA_med[SIGNAL_BAR+1] - Speed_MA_slow[SIGNAL_BAR+1] >= 0)  
         Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  BUY!!!" );   

   if(Speed_MA_slow[SIGNAL_BAR] - Speed_MA_med[SIGNAL_BAR] > 0)
      if (Speed_MA_slow[SIGNAL_BAR+1] - Speed_MA_med[SIGNAL_BAR+1] >= 0)  
         Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  SELL!!!" );     
  
  
   return(0);
}
//+------------------------------------------------------------------+
Potrebbe funzionare, non l'ho testato
 

Grazie a tutti! C'è ancora una domanda .........

Ho un EA con condizioni di entrata e uscita basate su certi segnali(non importa cosa)

cioè tre schermi-un indicatore, per esempio Force o Stohostick

condizioni di uscita anche solo da esso -

tutto è OK, ma un ulteriore Stop Loss è necessario per proteggere le posizioni

cioè =10p.

................. posso usare questo EA senza ulteriori perdite, almeno

potrebbe essere possibile utilizzare un tale Expert Advisor senza perdite aggiuntive almeno a piccoli lotti=0,01 perché il segnale di uscita sarà comunque

P.S. Stavo pensando all'email o a ICQ - ho appena aperto e MT ti ha mandato un messaggio

e stai pensando a dove potrebbe essere la tua migliore fermata.

....... non dire di no a nessuno che te lo chieda.

 
KlugerX35:

Grazie a tutti! C'è ancora una domanda .........

Ho un EA con condizioni di entrata e uscita basate su certi segnali(non importa cosa)

cioè tre schermi-un indicatore, per esempio Force o Stohostick

condizioni di uscita anche solo da esso -

tutto è OK, ma un ulteriore Stop Loss è necessario per proteggere le posizioni

cioè =10p.

................. posso usare questo EA senza ulteriori perdite, almeno

potrebbe essere possibile utilizzare un tale Expert Advisor senza perdite aggiuntive almeno a piccoli lotti=0,01 perché il segnale di uscita sarà comunque

P.S. Stavo pensando all'email o a ICQ - ho appena aperto e MT ti ha mandato un messaggio

e stai pensando a dove potrebbe essere la tua migliore fermata.

....... non dire di no a nessuno che te lo chieda.


Se l'Expert Advisor ha un'uscita "tecnica", non ha bisogno di uno stop, se vuoi mettere uno stop per sicurezza, allora mettine uno più grande.

10p è una vera perdita.

Per quale periodo è così piccolo, per un minuto? Naturalmente è in tilt, e farà a pezzi anche i trade potenzialmente redditizi.

È possibile utilizzare un tale Expert Advisor senza LOS aggiuntivi, almeno

basta usare un piccolo lotto=0,01

Se funziona in modo stabile, gestisce gli errori normalmente e siete soddisfatti dei risultati di trading, allora potete farlo.
 

Questa è una domanda - qualcuno può spiegare per favore.

Perché si dice che chiudere con un contrordine fa risparmiare uno spread? Dopo tutto la prima operazione, per esempio Comprare viene comprata a Ask e venduta al prezzo Bid in quel momento (non c'è profitto nella dimensione totale della posizione), e la seconda operazione - Vendere viene aperta a Bid e corrispondentemente la lunghezza della posizione viene calcolata in base al prezzo di chiusura di Ask.

Il manuale dà alcuni esempi poco chiari https://book.mql4.com/ru/trading/orderclose dove la differenza non è nello spread come dichiarato, ma nella dimensione del secondo affare - in una chiusura 2 per 15 di un affare, e l'opposto - solo 15, cioè tutte le perdite dell'affare scompaiono, ma non lo spread.

Allora, qual è la fregatura qui?

 
FatyM:

Per favore, ditemi dove trovare un pianificatore per 15 giorni della settimana.

Per favore, datemi un link o un file o un nome.

E come sempre grazie per il vostro tempo.

File:
 
Vinin:


Hai pensato bene prima di scrivere questo indicatore?

Scrivi la logica, almeno per te stesso.

Forse funzionerà, non ho controllato

Ho riscritto la logica del confronto dei muwings ancora nessun messaggio, non riesco a capire quale sia l'errore.
#property indicator_chart_window
#property  indicator_level1 0.3
#property  indicator_level2 0.7
//---- 
extern int        Period_DeMarker       = 14;
//---- 
double            DeMarker_buffer0[],
                  MA0[],
                  MA1[],
                  MA11[],
                  MA2[],                        
                  MA22[];      

#define SIGNAL_BAR 1
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
IndicatorBuffers(6);
SetIndexBuffer(0,DeMarker_buffer0);
SetIndexBuffer(1,MA0);
SetIndexBuffer(2,MA1);
SetIndexBuffer(3,MA2);
SetIndexBuffer(4,MA11);
SetIndexBuffer(5,MA22);
SetIndexStyle(0,DRAW_NONE);
SetIndexStyle(1,DRAW_NONE);
SetIndexStyle(2,DRAW_NONE);
SetIndexStyle(3,DRAW_NONE);
SetIndexStyle(4,DRAW_NONE);
SetIndexStyle(5,DRAW_NONE);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int    i,limit;
//----
if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//----
  for(i=limit; i>=0; i--)
  DeMarker_buffer0[i]=iDeMarker(NULL,0,14,i);
//---- 
  for(i=limit; i>=0; i--)
  
  MA0[i]=iMAOnArray(DeMarker_buffer0,0,5,0,MODE_LWMA,i);
//----   
  static int PrevTime = 0;
//---- 
  if(PrevTime >= Time[0]) return(0);
//---- 
  PrevTime = Time[0];
//----
                if(MA0[SIGNAL_BAR] - 0.3 > 0 && 0.3 - MA0[SIGNAL_BAR+1] >= 0)  
//---- 
                                Alert( "sMA(", Symbol(), ", ", Period(), ")  -  BUY!!!" );
//----
if(PrevTime <= Time[0]) 

return(0);
//---- 
  PrevTime = Time[0];
//----          
                if(0.7 - MA0[SIGNAL_BAR] > 0 && MA0[SIGNAL_BAR+1] - 0.7 >= 0)
//----               
                                Alert("sMA(", Symbol(), ", ", Period(), ")  -  SELL!!!");
                                
                                
MA1[i]=iMA(NULL,0,8,0,MODE_LWMA,PRICE_CLOSE,i);
                        
MA2[i]=iMA(NULL,0,16,0,MODE_LWMA,PRICE_CLOSE,i);

MA11[i]=iMA(NULL,0,8,0,MODE_LWMA,PRICE_CLOSE,i);
                        
MA22[i]=iMA(NULL,0,16,0,MODE_LWMA,PRICE_CLOSE,i);                                                       
                
//----   
if((MA1[i]>MA2[i]) && (MA11[i+1]<MA22[i+1]))  
//---- 
                                Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  SIGNAL1!!!" );    

if((MA1[i]<MA2[i]) && (MA11[i+1]>MA22[i+1]))  
//---- 
                                Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  SIGNAL2!!!" );   

   return(0);
  }
 

Come faccio a far funzionare correttamente MathRand, ottengo lo stesso set di numeri casuali ogni volta che lo eseguo. Il che significa che non sono casuali.

 

Come faccio a far funzionare correttamente MathRand, ottengo lo stesso set di numeri casuali ogni volta che lo eseguo. Il che significa che non sono casuali.