Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 184

 
Taras Slobodyanik:

Grazie!

Se non ti dispiace la mia domanda, potresti per favore rendere la funzione del risultato come una somma di pip per tutte le posizioni aperte? Uso una libreria per lavorare con gli ordini e non posso eseguire operazioni sugli ordini senza di essa :(

 

Saluti.

Può dirmi qualcosa?

OrderSend ha

datetimeexpiration=0,// data di scadenza


Come posso impostare la cancellazione dell'ordine dopo la sua apertura, per esempio, dopo 3 ore o 3 candele del grafico corrente?

 
Andrey Sokolov:

Saluti.

Può dirmi qualcosa?

OrderSend ha

datetimeexpiration=0,// data di scadenza


Come posso specificare che l'ordine viene cancellato dopo che è stato aperto, per esempio, dopo 3 ore o 3 candele del grafico corrente?


Periodo()*3*60

Periodo()- numero di minuti nel periodo

3 - numero candelieri di cui hai bisogno

60 secondi in un minuto

Poi lo aggiungiamo a Time[0].

Questo è tutto.

 
Cпасиб
 
Alekseu Fedotov:


Periodo()*3*60

Periodo()- numero di minuti nel periodo

3 - numero candele che vuoi

60 secondi in un minuto

Aggiungete a Time[0] ciò che ottenete.

Questo è tutto.

È stato a lungo possibile scrivere PeriodSeconds() con l'intervallo di tempo richiesto invece di Period()*60

In totale, si presenta come segue:

time_expiratonn=Time_set_order+PeriodSeconds(PERIOD_CURRENT)*number_of_words;

Oppure, invece del periodo corrente, usa il numero richiesto di candele di un dato timeframe: PeriodSeconds(PERIOD_M15)*3 è la durata dell'ordine di tre candele da quindici minuti.

 
Andrey Sokolov:

Saluti.

Puoi dirmi qualcosa?

OrderSend ha

datetimeexpiration=0,// data di scadenza


Come posso specificare che l'ordine deve essere cancellato dopo 3 ore o 3 candele del grafico corrente?

in termini generali - in nessun modo. Perché i limiti sono sconosciuti. C'è un tempo minimo, c'è un tempo massimo, ci sono restrizioni sui tipi di ordine. Non vengono comunicati al cliente, quindi non è possibile utilizzarli.

Ovviamente, l'azione dipende dall'umore attuale del particolare DC. Quindi controllate i vostri ordini :-)

 
Artyom Trishkin:

È stato a lungo possibile scrivere PeriodSeconds() con l'intervallo di tempo richiesto invece di Period()*60

Il totale risulta come segue:

time_expiratonn=Time_set_order+PeriodSeconds(PERIOD_CURRENT)*numero_di_candele;

Oppure, invece del periodo corrente, possiamo usare il numero di candele di un dato timeframe: PeriodSeconds(PERIOD_M15)*3 è la durata dell'ordine di tre candele da quindici minuti.


Grazie!
 

L'argomento è stato discusso molte volte, ma chiederò una spiegazione.


Ho deciso di scrivere un indicatore, l'ho fatto e l'ho eseguito su m5, funziona anche e mostra qualcosa.

I miei problemi sono iniziati quando ho deciso di installare in parallelo su m5 un cricchetto di un altro TF

Come fare in modo che mostri i dati di diversi TF in una sola finestra?

 

Ciao ...


La funzione OrderSelect() copia i dati dell'ordine nell'ambiente software ...Quando gli ordini sono selezionati in modo sequenziale usando il parametro SELECT_BY_POS, le informazioni sono date nell'ordine in cui sono state ricevute dal server di trading...= Ho sentito che gli ordini possono anche essere cercati in ordine inverso, si può dire un "dummie" come visualizzare questo nel codice MQL4 ...

 
Yaroslav Nykula:

Ciao ...


La funzione OrderSelect() copia i dati dell'ordine nell'ambiente software ...Quando gli ordini sono selezionati in modo sequenziale usando il parametro SELECT_BY_POS, le informazioni sono date nell'ordine in cui sono state ricevute dal server di trading...= Ho sentito che gli ordini possono anche essere cercati in ordine inverso, si potrebbe dire un "manichino" come visualizzare questo nel codice MQL4 ...

Ricerca per aperto

  for(int i=0; i<OrdersTotal(); i++) {
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

Ricerca inversa per chiuso

 for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {