[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 498

 
rigc:
(non sta disegnando affatto))


Non lo so - lo fa. L'indicatore è semplicissimo:

int start()
  {
   
//----
  double F1=0, F3=0, F13;    // номера фракталов
  int    B1, B3, SR=3;               // номера баров
  
  while(F3==0)                       //поиск фракталов
  {
    F13=iFractals(NULL,0,MODE_UPPER,SR);
    if (F13!=0) 
    {
      if      (F1==0){B1=SR; F1=F13;}
      else if (F3==0){B3=SR; F3=F13;}
    }
    SR++; 
  }
    ObjectSet("Rezist", OBJPROP_TIME1 ,iTime(NULL,0,B3));
    ObjectSet("Rezist", OBJPROP_TIME2 ,iTime(NULL,0,B1));
    ObjectSet("Rezist", OBJPROP_PRICE1,iHigh(NULL,0,B3));
    ObjectSet("Rezist", OBJPROP_PRICE2,iHigh(NULL,0,B1));
    ObjectSet("Rezist", OBJPROP_RAY   , True);

  
//----
   return(0);
  }

SR=3, è quello che ho corretto. Era SR=2 numero di barra da cui partire per cercare un frattale

 
Figar0:


Non lo so, l'ho provato. L'indicatore è semplicissimo:

SR=3, è quello che ho corretto. Era SR=2 numero di barra da cui partire per la ricerca di un frattale

Sì, capito)))

Grazie

Ti devo un favore.

 
sss2019:
Puoi dirmi come eseguire una condizione? Abbiamo una condizione per aprire un ordine di acquisto al prezzo corrente non appena il prezzo raggiunge 1,2550. Quindi, quando il prezzo è superiore o uguale a 1,2550, l'ordine viene aperto e quando l'ordine viene aperto, la variabile statica blocca l'apertura di nuovi ordini, fino a quando l'ordine raggiunge lo 0. Quindi, non appena l'ordine viene chiuso e non ci sono più ordini con questa magia, il divieto di apertura viene rimosso e viene aperto un nuovo ordine, ma il prezzo si è allontanato da questo livello da tempo. Abbiamo bisogno che l'EA apra gli ordini a mercato quando il prezzo raggiunge questo livello ma non quelli pendenti.
Avete un controllo per più o uguale a 1,2550. In altre parole, quando il prezzo è più alto(è andato via da tempo), il criterio è invariabilmente vero e quindi le posizioni saranno aperte.
Dovresti considerare la condizione - il prezzo ha attraversato il livello 1,2550.
 
artmedia70:
Avete un controllo per maggiore o uguale a 1,2550. Cioè quando è più alto(il prezzo è uscito da tempo), il criterio è ancora vero, il che significa che le posizioni saranno aperte.
Dovresti considerare la condizione - il prezzo ha attraversato il livello 1,2550.


Grazie, penso che si possa fare con il calcolo del tempo. Per esempio, se il deposito sul mio conto è in euro o per esempio in rubli, il mio Expert Advisor può commettere errori?

 

Puoi dirmi come l'EA può ridurre la dimensione della RAM, azzerarla ogni tanto o qualcosa del genere, perché un terminale mangia fino a 100 MB e, come ho notato, mangia fino a raggiungere il 100%. Ho 25 terminali installati su un computer da qualche parte.

Vi ricordo che ho solo un grafico in uso e non è mostrato. Tuttavia, i dati sono utilizzati da decine di coppie di valute.

La dimensione dei file di dati storici può influenzare il carico di memoria? Se lasciamo solo i dati giornalieri, funzionerà più velocemente?

 
sss2019:


Grazie, penso che possa essere fatto con il tempismo. Per esempio, se il deposito è in EUR o RUB, il mio Expert Advisor può fare errori?

Perché l'hai fatto? Si potrebbe, per esempio, usare una MA con un periodo di 0. Si controlla la prima e la seconda barra per l'intersezione con il livello. A quello attuale si apre.

Gli errori possono essere nella testa del programmatore, non nel deposito del conto :)

 

Ciao a tutti!

Cari professionisti - per favore, risolvete la mia domanda: https://www.mql5.com/ru/forum/116542

 

Potete dirmi perché questo ciclo non funziona correttamente, non cerca il massimo più alto, non riesco a trovare l'errore. Salta il massimo più alto e prende come risultato il massimo della candela precedente.

Tutti i valori dell'array buystoploss sono 0 per impostazione predefinita.

Nell'immagine sembra che il ciclo abbia trovato il massimo della 13esima candela, saltando i massimi superiori

  i2=0;
  for(i=0;i<7;i++)
    {
    while(i2 <= 19)
      {
      if(High[i2]>buystoploss[i])
        {
        buystoploss[i]=High[i2];
        }
      i2++;
      }
    }
    Alert(" ",buystoploss[4]);
 
sss2019:

Potete dirmi perché questo ciclo non funziona correttamente, non cerca il massimo più alto, non riesco a trovare l'errore. Salta il massimo più alto e prende come risultato il massimo della candela precedente.

Tutti i valori nell'array buystoploss sono 0 per impostazione predefinita.


Questo è uno scherzo:

Alert(" ",buystoploss[4]);

?

 
sss2019:

Potete dirmi perché questo ciclo non funziona correttamente, non cerca il massimo più alto, non riesco a trovare l'errore. Salta il massimo più alto e prende come risultato il massimo della candela precedente.

Tutti i valori nell'array buystoploss sono 0 per impostazione predefinita.

Beh, per cominciare, l'i2 è azzerato solo una volta...