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

 
artmedia70:
Come pensate di decidere se si tratta di un pullback o di un'inversione? O aprirete due posizioni ad ogni pullback? È un fallimento...

Vorrei che prima funzionasse, e poi vorrei eseguire l'EA nel tester per trovare la dimensione del parametro lim.
 
Ciao a tutti, sto cercando di fare un programma e sto avendo

Non riesco a capire perché non funziona.

Posso spiegarlo :-)

Vorrei fare una linea che cambia colore a seconda del trend per così dire (indicatore primitivo)

Sembra cambiare ma ci sono delle lacune come se mancasse una barra nel calcolo

qual è il mio errore



//--------------------------------------------------------------------
#proprietà indicator_chart_window
#proprietà indicator_buffers 2
#property indicator_color1 Blue // Colore della prima linea
#property indicator_color2 Red // colore della seconda linea

double Buf_0[],Buf_1[]; //aprire gli array di indicatori
//--------------------------------------------------------------------
int init() // Funzione speciale init()
{
//--------------------------------------------------------------------
SetIndexBuffer(0,Buf_0); // Assegnazione di un array al buffer
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);// Stile linea
//--------------------------------------------------------------------
SetIndexBuffer(1,Buf_1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
//--------------------------------------------------------------------
ritorno;
}
//--------------------------------------------------------------------
int start()
{
int i,counted_bars;
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Numero di barre calcolate
i=Bars-Counted_bars-1; // Indice del primo non contato
while(i>=0) // Ciclo attraverso le barre non contate
{
doppio a=(Alto[i]+Basso[i])/2;
double b=(High[i+1]+Low[i+1])/2;
if (a=>b) Buf_0[i]=a; //cambia o non cambia colore
se (a<b) Buf_1[i]=a;
i--;
}
//--------------------------------------------------------------------
ritorno;
}
//--------------------------------------------------------------------
 
Ciao!!! Puoi per favore consigliarmi come implementare questo nel codice? Dovrei avere 3 (gli importi sono impostati separatamente) ordini sl non redditizi per aprire due ordini di acquisto e di vendita. La distanza tra loro dovrebbe essere impostata in una variabile separata.
 
Ciao, voglio calcolare l'"ATR storico intraday" (cioè dire la media per ogni ora negli ultimi 30 giorni) e vorrei credere che qualcosa del genere dovrebbe già esistere - forse l'indicatore si chiama in un altro modo o quelli esistenti possono essere adattati in qualche modo? se qualcuno lo sa, per favore consigliatemi!
 
zelek:

Vorrei prima farlo funzionare e poi eseguire l'EA nel tester per dimensionare il parametro lim.
E si può attaccare ad ATR. Ci saranno dinamiche e non c'è bisogno di adattarsi - tutto dipenderà dalla volatilità del mercato
 
Top2n:
Ciao!!! Potete per favore consigliarmi come implementare questo nel codice? Dovrei avere 3 (il numero totale è impostato separatamente) ordini perdenti sl dovrebbe aprire due ordini di acquisto e vendita. La distanza tra loro dovrebbe essere impostata in una variabile separata.


Impostiamo una variabile uguale a zero e la incrementiamo di 1 quando la posizione è in perdita. Una volta raggiunto il valore richiesto, apriamo le posizioni necessarie.
Questa è la logica...
 

Puoi dirmi quali robot funzionano per 15 giorni e quali non differiscono in profitto da Cheetah 2.5?

Per favore, datemi un link o un sito web ecc.

Grazie in anticipo per il vostro tempo

 
artmedia70:
E lo si collega ad ATR. Sarà dinamico e non c'è bisogno di adeguarsi - dipenderà dalla volatilità del mercato


Per favore date un'occhiata al codice, non capisco perché gli ordini non vengono chiusi

extern int     lim=20;             // Дистанция возврата курса

/
int init()
  {
 

   return(0);
  }
/
int deinit()
  {
//----
   
//----
   return(0);
  }

int start()
  {
 
  double 
   max, min;                                            
  int b, s;
   if (Bid>max) max=Bid; 
    if (Ask<min) min=Ask;  
       if (OrdersTotal()>0)
       {                                   
           if ((max-Bid)>=lim*Point) 
           {                   
          OrderSelect(b,SELECT_BY_TICKET);                                  
          b=OrderClose(OrderTicket(),0.1,Bid,3,Blue);
          }
          
          
          if ((Ask-min)>=lim*Point)  
          {         
      OrderSelect(s,SELECT_BY_TICKET); 
      s=OrderClose(OrderTicket(),0.1,Ask,3,Red);
         }
}
else
{
  if (OrdersTotal()<1)
  {
 b=OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,"",5,0);
      
 s=OrderSend(Symbol(),OP_SELL,0.1,Bid,5,0,0,"",5,0); 
    }                           
   }
         return;

   return(0);
  }
 
zelek:


Per favore date un'occhiata al codice, non riesco a capire perché gli ordini non si chiudono

struttura interessante:
se (Bid>max) max=Bid;
se (Ask<min) min=Ask;

Sei sicuro che se il prezzo sale, allora se ((max-Bid)>=lim*Point) sarà eseguito?

Io farei quanto segue - nella sezione init(), per esempio, memorizzerei il prezzo quando l'EA parte (potrebbe non essere nell'init) - e poi ballerei da questo prezzo.

Se hai un Expert Advisor, memorizzeresti il prezzo, ma come sembra dividerai il tuo min e max per ticks e poi controllerai i tuoi ordini in questo corridoio


 
Logicamente dovrebbe funzionare, ma perché no, puoi spiegare?
Motivazione: