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

 
chief2000:

La domanda non è più come scrivere il codice, ma a livello di un'idea - è possibile evitare i cicli multipli,

che mette molto carico sul processore. Per esempio, c'è stata l'idea di tracciare il numero di ordini STOP aperti - se è diminuito di uno, ma l'ordine non è stato cancellato => aprire un ordine a mercato =>

il suo tempo di apertura e il suo tipo dovrebbero essere messi in un array. Qualcosa del genere.

Qualsiasi idea è benvenuta.


Basta duplicare tutte le proprietà degli ordini di mercato in array e confrontarle con gli ordini di mercato attuali. Confrontali per ticket e se non c'è corrispondenza per tipo di ordine, significa che l'ordine in sospeso è scattato, se non si trova nell'array, è andato in history, ecc.

Può tornare utile https://www.mql5.com/ru/code/9366

 

Salve.

In realtà sto chiedendo del codice che confronti gli ultimi due frattali (sia verso l'alto che verso il basso).

Per me, è ancora una regione selvaggia.

Grazie in anticipo.

 

COME CALCOLARE IL NUMERO DI POSIZIONI LUNGHE REDDITIZIE E SEPARATAMENTE IL NUMERO DI POSIZIONI CORTE REDDITIZIE NEL PROCESSO DI LAVORO DI UN EA?

La strategia è la seguente: se il numero di posizioni lunghe redditizie dall'inizio dell'EA (o meglio, su tutta la storia del conto) è maggiore del numero di posizioni corte, allora solo le posizioni lunghe dovrebbero essere aperte. E viceversa.

È chiaro come contare queste operazioni, se sono chiuse dall'Expert Advisor: close - counted. Ma se una posizione viene chiusa da TP o SL, allora ... ?

Forse qualcuno ha un codice pronto della funzione?

 
splxgf:

Duplica solo tutte le proprietà degli ordini di mercato negli array e li confronta con gli ordini di mercato attuali. Confronta per ticket, se c'è una mancata corrispondenza per tipo di ordine, significa che l'ordine in sospeso è scattato, se non si trova nell'array, significa che è andato in history, ecc.

Può essere utile https://www.mql5.com/ru/code/9366

Grazie!

 
nemo811:

Salve.

In realtà sto chiedendo del codice che confronti gli ultimi due frattali (sia verso l'alto che verso il basso).

Per me, è ancora una regione selvaggia.

Grazie in anticipo.

Nel caso semplice, qualcosa come:

      Fractal_Up[i+3]   = iFractals(NULL, 0, MODE_UPPER, i+3);
      Fractal_Down[i+3] = iFractals(NULL, 0, MODE_LOWER, i+3);


      if(Fractal_Down[i+3]>0) {
         Fractal_Sell_Low_3  = Fractal_Sell_Low_2;
         Fractal_Sell_Time_3 = Fractal_Sell_Time_2;

         Fractal_Sell_Low_2  = Fractal_Sell_Low_1;
         Fractal_Sell_Time_2 = Fractal_Sell_Time_1;

         Fractal_Sell_Low_1  = Fractal_Down[i+3];
         Fractal_Sell_Time_1 = Time[i+3];
      }


      if(Fractal_Up[i+3]>0) {
         Fractal_Buy_Up_3   = Fractal_Buy_Up_2;
         Fractal_Buy_Time_3 = Fractal_Buy_Time_2;

         Fractal_Buy_Up_2   = Fractal_Buy_Up_1;
         Fractal_Buy_Time_2 = Fractal_Buy_Time_1;

         Fractal_Buy_Up_1   = Fractal_Up[i+3];
         Fractal_Buy_Time_1 = Time[i+3];
      }
 
chief2000:

Grazie - ci daremo un'occhiata
 
Roger:

In realtà è una sciocchezza fare queste domande a uno scrittore esperto :) Si scopre che non sei abbastanza maturo per essere un principiante, quindi se vuoi controllare se gli stop e i take calcolati sono vicini al prezzo aperto dell'ordine, probabilmente non imparerai proprio nulla.
Ma certo che no... ))) Il consiglio è buono )))) Ma è stato testato a lungo! Prese e arresti maggiori dei valori minimi consentiti ... E tutto funziona alla grande nel tester! Ma in modalità "live" non vuole aprire le posizioni! Forse, caro ROGER, non sono ancora abbastanza maturo per essere un principiante ))))) Ma dovresti almeno dare un'occhiata al codice che ho scritto - se non è troppo disturbo... Forse ci troverai un bug...
 
7sintez:
Perché no... ))) Il consiglio è buono )))) Solo che tutto è stato testato molto tempo fa! Prese e arresti maggiori dei valori minimi consentiti ... E tutto funziona alla grande nel tester! Ma in modalità "live" non vuole aprire le posizioni! Forse, caro ROGER, non sono ancora abbastanza maturo per essere un principiante ))))) Ma dovresti almeno dare un'occhiata al codice che ho scritto - se non è troppo disturbo... Forse ci troverai un bug...
Ho avuto una tale cimice in una casa di intermediazione. Si è scoperto che dovremmo aprire un ordine con TP=0 e SL=0, e poi impostare i livelli richiesti con OrderModify(). Altrimenti, l'errore "Le fermate sono troppo vicine" veniva mostrato in continuazione.
 
ikatsko:
Ho avuto un tale problema con una società di intermediazione. Ho scoperto che dovevo aprire un ordine con TP=0 e SL=0, e poi usare OrderModify() per impostare i livelli richiesti. Altrimenti, l'errore "Le fermate sono troppo vicine" veniva mostrato in continuazione.
Grazie...! Forse questo è il problema... Ho guardato tutto nel mio codice - non riesco a trovare l'errore!!!
 

Non ho trovato una risposta nella ricerca

come posso vedere dallo script quali indicatori sono sul grafico, quali parametri e indicatori, in quali sottofinestre si trovano?

grazie