Autoapprendimento del linguaggio MQL5 da zero - pagina 53

 
SanAlex:

Parte 3.


I vostri slittamenti sono un mauvais ton qui. Avvolgere tutto in un allegato
 
MrBrooklin:

Sì, Alexey, ho già visto questo codice. È sotto forma di un file di inclusione. Ad essere onesti, non ci ho trovato nulla sul simbolo, anche se l'ho sfogliato diverse volte. Forse ho capito male qualcosa o sto solo cercando male.

Sinceramente, Vladimir.


Risponderò in serata. Sto usando la libreria di trawls e i loro tipi forniti da Yury Dzyuban senza alcun problema nei robot di trading e che sto usando su MT4 fino ad ora.
Gli approcci sono gli stessi della MT5.
 
Aleksey Masterov:

I tuoi pasticci qui sono un mauvais ton. Avvolgilo in un allegato

Ho imparato una nuova parola per me: mauvais ton.

(Cattive maniere; comportamento, maniere e condotta considerati inappropriati, indecenti, inaccettabili in una data società; cattivo, maleducato)



 
SanAlex:

Ho imparato una nuova parola per me: cupidigia

("cattive maniere"; comportamenti, maniere e azioni considerate inappropriate, indecenti, inaccettabili in una data società; cattive, maleducate).




I vostri errori non interessano a nessuno qui. Si usa pubblicarlo come allegato, se lo pubblichi in questo modo non significa che più persone si prenderanno la briga di leggerlo...

Interferisce con la lettura del thread e la risposta alla domanda.
 
Aleksey Masterov:

Nessuno qui è interessato ai tuoi scarabocchi. È consuetudine postarli come allegato, se lo fai, non significa che più persone che vogliono leggerli...

Interferisce con la lettura del thread e la risposta all'argomento.

Non voglio essere d'intralcio - comunicare!

------------------------------------

anche se avresti potuto raccogliere qualcosa in quei brandelli...

 
Fast235:

i è uguale al numero di posizioni aperte, quindi molti cicli saranno con la stampa

è necessario rimuovere il segno "=" nel perché è necessario passare attraverso il ciclo quando il numero di posizioni aperte è 0. su questa chiamata null è uscita la seconda stampa

Ciao, grazie mille! Ora non capisco perché pensavo che il ciclo iniziasse con "0" invece di "1". Per farla breve, dovrei smettere di studiare di notte, come facevo in gioventù.

Saluti, Vladimir.

 
Aleksey Masterov:

Risponderò in serata. Con la libreria di strascichi e i loro tipi da Yu. Dzyuban, che funziona sui robot da combattimento senza alcuna domanda e che io uso al momento su MT4.
Gli approcci sono gli stessi della MT5.

Ciao Aleksey, ti sarò molto grato per qualsiasi aiuto.

Sinceramente, Vladimir.

 
MrBrooklin:

Così, sulla base della letteratura che ho letto, ho scritto un breve algoritmo per creare un Expert Advisor con la funzione trailing stop:

  1. Creiamo un Expert Advisor per automatizzare il lavoro di trailing (inseguimento) del livello di Stop Loss di una posizione aperta con livelli di Take Profit e Stop Loss già specificati. E qual è la differenza se i livelli di Take Profit e Stop Loss sono già impostati per la posizione o no? Se il livello di stop non è specificato, sarà impostato dall'Expert Advisor; se lo è, sarà cambiato in un nuovo livello secondo l'algoritmo. L'Expert Advisor sarà indifferente al livello di take profit della posizione.
  2. Nell'Expert Advisor, crea un blocco di parametri di input con due parametri: imposta "Trailing Stop Level" e imposta "Trailing Step". In effetti, stiamo parlando di due algoritmi in uno: il primo sposta lo stop a Breakeven, il secondo lo segue più avanti nel movimento. Nella zona negativa, lo stop non è trailing.
  3. Quando arrivano nuove quotazioni, le elaboriamo usando OnTick( ). Il trailing funziona solo quando arriva un nuovo tick per il simbolo corrente.
  4. Creiamo ed eseguiamo un ciclo per cercare tutte le posizioni.
  5. Se improvvisamente non troviamo posizioni aperte, torniamo al ciclo
  6. Aggiorniamo le citazioni. Non c'è bisogno di aggiornare nulla. L'ambiente di trading viene aggiornato automaticamente. Abbiamo solo bisogno di richiedere i dati al momento dell'evento OnTick.
  7. Se c'è una posizione aperta, si continua. Perché tutti questi dettagli dal punto 4 al punto 7? Invece, dovremmo scrivere semplice: per ogni posizione Buy definiamo... e poi dal punto 9
  8. Determinare il tipo di posizione aperta: Acquistare o Vendere.
  9. Se la posizione è Buy, definiamo dove si trova il prezzo corrente rispetto al prezzo della posizione aperta.
  10. Se il prezzo corrente è superiore al prezzo della posizione aperta, controlliamo il suo livello.
  11. Se il prezzo corrente ha raggiunto il livello di trailing specificato nei parametri di input, spostiamo Stop Loss al livello senza perdita pari al prezzo di apertura della posizioneBuy. Altrimenti non facciamo nulla.
  12. Se il prezzo corrente ha superato il livello di Trailing Stop del valore uguale al livello diTrailing Stop, loStop Loss viene spostato dal livello del prezzo di apertura della posizione Buy del valore uguale al livello di Trailing Stop e così via fino a quando il prezzo raggiunge il livello Take Profit specificato per questa posizione .
  13. Se il prezzo gira e raggiunge il livello diStop Lossgià spostato , la posizione viene chiusa .
  14. [Segue una descrizione simile per una posizione Sell].
  15. Se la posizione Sell è aperta, definiamo dove si trova il prezzo corrente rispetto al prezzo della posizione aperta.
  16. Se il prezzo attuale è inferiore al prezzo della posizione aperta, controlliamo a quale livello è sceso.
  17. Se il prezzo corrente ha raggiunto il livello di trailing specificato nei parametri di input, spostiamo lo Stop Loss al livello senza perdite pari al prezzo di apertura della posizione Sell. Altrimenti non facciamo nulla.
  18. Se il prezzo corrente ha superato il livello di Trailing Stop Loss del valore uguale al passo di Trailing Stop Loss, lo Stop Loss sarà spostato dal livello di apertura della posizione Sell del valore uguale al livello di Trailing Stop e così via fino a quando il prezzo raggiunge il livello di Take Profit specificato per quella posizione.
  19. Se il prezzo gira e raggiunge il livello di Stop Loss già spostato, la posizione viene chiusa.


Ho fatto alcune correzioni

 
Ecco una versione semplificata della descrizione del trailing:
  1. I trailing stop vengono elaborati quando si riceve un nuovo tick, nella funzione OnTick.
  2. Un trailing stop consiste in due parti consecutive:
  3. Parte 1. Per ogni posizione aperta viene calcolato il prezzo, e quando viene raggiunto, il suo stop-loss viene spostato a Breakeven.
  4. Parte 2. Dopo che lo stop loss è stato spostato a breakeven, l'algoritmo di stop pulling che segue il prezzo è attivato per la posizione attiva.

Non descriverò in dettaglio gli algoritmi di trasferimento degli stop per le parti uno e due. Lei li ha già descritti correttamente in generale. Se li descrivete, dovreste seguire ulteriormente il modello:

Parte 1. Breakeven:
  • Per l'acquisto;
  • Per vendere;
Parte 2. Tirando su la fermata:
  • Per comprare; Per vendere;
  • Per la vendita;
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
MrBrooklin:

Ciao Alexey, ti sarei molto grato per qualsiasi aiuto che puoi darmi.

Saluti, Vladimir.

Hai due grossi errori nella tua descrizione di TOR:

1. Ti stai addentrando troppo nei dettagli di basso livello. Perché, per esempio, scrivere (erroneamente, tra l'altro) "si deve tornare al ciclo se non si trovano posizioni". Se non ci sono posizioni, non ci sarà nulla da elaborare. Non è necessario tornare al ciclo, basta uscire e aspettare un nuovo tick, forse qualcosa apparirà lì, forse no. Non c'è bisogno di descrivere casi di "e se non...". - Ci sono un numero infinito di casi simili, non si possono descrivere tutti. Concentratevi invece sui "e se".

2. Il TOR mostra chiaramente un desiderio di coerenza. Non farlo. Passa dal generale allo specifico:"Ho bisogno di uno stop che a) si trasferisca a Breakeven, e b) quando è trasferito a Breakeven, sia tirato su dal trawl. Le regole di trasferimento a Breakeven e di tiro su dello stop, allegate qui sotto..." . - Vi assicuro che tale TOR sarà compresa da qualsiasi programmatore freelance, e per lui, il programmatore, tale TOR sarà molto più facile e chiaro che capire i cicli, che ritornano a se stessi, se non c'è posizione, ecc.