Imparare e scrivere insieme in MQL5 - pagina 19

 
Interesting:

(Sì e la richiesta, scusate poco giustificata e sostenuta da argomenti convincenti).

PS

Anche se potrei essermi perso qualcosa e gli sviluppatori decidono che è abbastanza ragionevole.

Ripeto: non c'è stata nessuna richiesta agli sviluppatori :) Non c'erano requisiti e nemmeno richieste - in accordo con il tema del ramo. Come dice il detto: "navigato, sappiamo" :) La ragione l'ho spiegata qui:"Se qualcuno avesse sollevato una tale questione mezzo anno fa, potremmo ancora sperare in una comparsa relativamente veloce della funzione, ma aspettando il prossimo anno è più facile introdurre una variabile per la data. Anche se non sarà del tutto accurata, ma comunque.

Come sempre, grazie a tutti per i vostri pensieri! Questa volta mi hai convinto che ho ragione :)

 

stringo:

Yedelkin:

Domanda. La descrizione di switch(expression){...} dice che "l'espressione dell'operatore switch deve essere di tipo intero". Ho visto la descrizione di questo operatore con espressioni di altri tipi su Internet. Estenderemo l'uso dell'operatore switch aggiungendo espressioni di tipo stringa?

No, purtroppo no. Per i tipi di stringa solo se ... altrimenti se ... else .

L'uso di tipi interi in switch velocizzerà l'operatore di switch diverse volte di più che se

Domanda. C'è (per analogia con switch) qualche accelerazione rispetto a if dell'"operatore condizionale ?:"?

 
Yedelkin:

Domanda. C'è (simile a switch) qualche accelerazione rispetto a if per"operatore condizionale ?:" ?

No. L'operatore condizionale non ha alcuna accelerazione rispetto a if. È solo più facile da scrivere.
 
stringo:
No. L'operatore condizionale non ha accelerazione rispetto a if. È solo più facile da scrivere.
Ops, capito.
 

TIPO D'ORDINE_ACQUISTO_LIMITE

Quando il prezzo dell'ordine viene raggiunto , un ordine pendente Buy Limit viene piazzato al prezzo StopLimit

Sembra che l'elaborazione di questo ordine, compresa l'impostazione di un ordine Buy Limit in sospeso, sia fatta sul lato server. Ho alcune domande alle quali non ho trovato risposte nel riferimento:

1)ORDER_TYPE_BUY_STOP_LIMIT stesso entra nella storiaquando il prezzo dell'ordine viene raggiunto e l'ordine Buy Limit pendente viene piazzato?

2) Il ticket di un ordineORDER_TYPE_BUY_STOP_LIMIT è ereditato da unnuovo ordine pendente inserito sul lato server?

3) Viene generato un evento Trade quando viene piazzato un ordine Buy Limit pendente sul lato server?

4) Come (con quale regola) vengono assegnati il tempo di scadenza, la durata dell'ordine e il commento a un nuovo ordine Buy Limit pendente sul lato server?

E in generale, c'è un modo intelligente per catturare rapidamente l'immissione di ordini sul lato server? Questo è stato menzionato da qualche parte?

 
Forse Old_Time[0] non è stato inizializzato correttamente all'inizio. Non è chiaro dal codice cosa ci sia. Date un'occhiata qui, forse potete usare questa soluzione.
 
AUser:
...
CopyTime(_Symbol,_Period,0,1,Old_Time);
Provate a inserire questa linea prima della parentesi di chiusura OnTick().
 
Il thread non è affatto attaccato al kernel.

Yedelkin:

...La funzione Sleep() non rallenta il thread stesso

Rallenta ma libera risorse della CPU per altri thread.

Ecco perché non dovreste usare Sleep negli indici - un thread può calcolare molti indici e Sleep in uno renderà inattivi anche tutti gli altri.

________

Accidenti, sono arrivato troppo tardi :) la prossima volta guarderò più attentamente le date.

 
TheXpert:
Il filo non è affatto legato al kernel.

Rallenta ma libera risorse della CPU per altri thread.

Questo è il motivo per cui Sleep non dovrebbe essere usato negli indulatori - un thread può calcolare un gran numero di indulatori e Sleep in un thread causerà che anche tutti gli altri siano inattivi.

________

Accidenti, sono arrivato troppo tardi:) la prossima volta guarderò più attentamente le date.

Riguardo al 'ritardo'. - Proprio così! La frase chiave qui è "liberare risorse della CPU per altri thread". Questo è esattamente quello che cercavo di formulare nella domanda.

 
Yedelkin:

TIPO D'ORDINE_ACQUISTO_LIMITE

Quando il prezzo dell'ordine viene raggiunto , un ordine pendente Buy Limit viene piazzato al prezzo StopLimit

Sembra che l'elaborazione di questo ordine, compresa l'impostazione di un ordine Buy Limit in sospeso, sia fatta sul lato server. Ho diverse domande alle quali non ho trovato risposte nel materiale di riferimento: ...

A giudicare dalla mancanza di risposte alla domanda, la gente qui è post-MT4 e non è ancora passata agli ordini stop-limit :)

E, parlando senza testi, ho trovato del materiale su Internet che afferma che un ordine STOP LIMIT non crea un nuovo ordine pendente, ma si trasforma semplicemente in un ordine limite quando una certa condizione è soddisfatta:

- un ordine condizionato, che si trasforma in un ordine limite quando il prezzo del contratto raggiunge un certo livello;

- un ordine per eseguire un'operazione a un prezzo peggiore del prezzo corrente di mercato, ma non peggiore del prezzo specificato nella parte limite dell'ordine. A differenza di un ordine stop, quando il prezzo di mercato raggiunge il prezzo specificato nell'ordine, questo ordine viene attivato come un ordine limite. In questo caso il prezzo di esecuzione di un ordine stop limit può essere uguale al prezzo dell'ordine o migliore di esso;

- un ordine del cliente che diventa un ordine limite una volta che il prezzo di mercato raggiunge il livello stabilito (prezzo di stop);

ecc.

Questo approccio risponde alla maggior parte delle mie domande. Ma se questo è davvero il caso, allora la frase nel Manuale su "piazzare un ordine limite" sembra errata e specificamente confusa.