Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 8

 
gyfto:

Dal mio punto di vista, penso che Close[] possa essere passato nel ciclo da Bars-1 a 0, e puoi raccogliere questo array in dll e lavorarci. Non l'ho ancora provato, ma sta arrivando.

Non c'è bisogno di passare l'array stesso. È sufficiente passare un puntatore ad esso e la sua dimensione.

https://docs.mql4.com/ru/array/ArrayCopySeries

https://docs.mql4.com/ru/array/ArrayCopyRates

 

Ragazzi, per favore datemi una semplice condizione "se ilprezzo corrente>prezzo di apertura della barra allora eseguite l'azione". Non ho ancora lavorato con le barre. E il mio cervello non può arrivare a 4:49

 
oDin48:

Ragazzi, per favore datemi una semplice condizione "se il prezzo corrente>prezzo della barra aperta, allora eseguite l'azione". Non ho ancora lavorato con le barre. E il mio cervello non può arrivare a 4:49



if(Close[0]>Open[0])
    {
  //Ваше действие
    }
 
Ciao a tutti .... come si può abbreviare la seguente espressione: if(a>b && a>c && a>d)
 

Saluti!

Non so dove chiedere meglio, ma ho deciso di non creare un nuovo argomento dopo tutto. Ho provato a trovare un Expert Advisor in CodeBase e sembra che ce ne siano abbastanza, ma siccome non sono un esperto di mql, ho capito che non sarò in grado di allocare le funzioni di cui ho bisogno. Potete consigliarmi se esiste un semplice EA che tiene traccia degli ordini già aperti (e di quelli nuovi) e se uno di essi si chiude (per stop, prima di tutto), viene creato un nuovo ordine pendente con i parametri di quello chiuso (prezzo, take, stop)?

E un'altra domanda. Abbiamo l'indicatore i-SignalOfTrade. Poiché i terminali mobili non forniscono notifiche sonore degli eventi, questo indicatore può essere molto utile. Ma ha alcune funzioni extra che non possono essere disabilitate se fai trading da solo - ti notifica eventi come la creazione e la modifica di ordini pendenti ecc. Cioè la notifica di azioni di cui si è già a conoscenza. Vi sarei grato se poteste aiutarmi a disabilitarli (o forse c'è un altro indicatore simile), ho solo bisogno di lasciare la notifica dell'attivazione dell'ordine pendente, prendere e fermare l'attivazione.

 
i999i:
Ciao a tutti, .... come posso abbreviare la seguente espressione: if(a>b && a>c && a>d)

Si potrebbe scrivere if((b-a)*(c-a)*(d-a)>0), ma non necessariamente più veloce. AND logico è la moltiplicazione binaria, è solo un'altra notazione della stessa espressione, l'unica differenza è la dimensione dei tipi di variabile. a>b è una variabile booleana, 4 byte, mentre b-a, se sono doppi, allora la differenza sarà doppia (8 byte), e questa moltiplicazione è almeno 2 volte più lunga.

Zhunko:

Non c'è bisogno di passare l'array stesso. È sufficiente passare un puntatore ad esso e la sua dimensione.


Un consiglio inestimabile.

gyfto:

a>b è una variabile booleana, 4 byte

Lasciatemi spiegare. Potete riscrivere la vostra espressione come if(((a>b)*(a>c)*(a>d)==1), perché le espressioni tra parentesi assumono valori 0 o 1 (e sono, a loro volta, definite in define nel precompilatore come false e true).
 
gyfto:

Potete scrivere if((b-a)*(c-a)*(d-a)>0), ma non necessariamente più velocemente. AND logico è la moltiplicazione binaria, è solo un'altra notazione della stessa espressione, l'unica differenza è la dimensione dei tipi di variabile. a>b è una variabile booleana, 4 byte, e b-a, se sono doppi, allora la differenza sarà doppia (8 byte), e questa moltiplicazione è almeno 2 volte più lunga.


Un consiglio inestimabile.


gyfto:

Potete scrivere if((b-a)*(c-a)*(d-a)>0), ma non è sicuro che funzionerà più velocemente. AND logico è la moltiplicazione binaria, è solo un'altra notazione della stessa espressione, l'unica differenza è la dimensione dei tipi di variabile. a>b è una variabile booleana, 4 byte, e b-a, se sono doppi, allora la differenza sarà doppia (8 byte), e questa moltiplicazione è almeno 2 volte più lunga.


Un consiglio inestimabile.

grazie per il suggerimento .... c'è un altro modo per calcolare il valore più piccolo e più grande da a,b,c?
 
i999i:

Grazie per il suggerimento .... c'è un altro modo per calcolare i valori più piccoli e più grandi da a,b,c?


MathMax(MathMax(a,b),c) e viceversa MathMin. Se quattro valori, allora int max = MathMax(MathMax(x1, x2), MathMax(x3, x4)). Se i valori sono un carico di auto, forma anche un array tramite ArrayMaximum.
 
gyfto:

MathMax(MathMax(a,b),c) e viceversa MathMin. Se quattro valori, allora int max = MathMax(MathMax(x1, x2), MathMax(x3, x4)). Se avete bisogno di formare un array anche attraverso ArrayMaximum.
.

dovrete usare ArrayMaximum, ci sono dozzine di valori ....a ArrayMaximum sarà più veloce di questo - a>b && a>c && a>d
 
i999i:

grazie per il consiglio .... c'è un altro modo per calcolare i valori più piccoli e più grandi da a,b,c?


Per prima cosa, ditemi perché ne avete bisogno. Dovete sapere il perché. È solo per divertimento e interesse, o c'è qualche scopo dietro?