Autoapprendimento del linguaggio MQL5 da zero - pagina 56

 
Valeriy Yastremskiy:

In generale, ci sono due motivazioni con effetti opposti. Uno SL più vicino riduce la perdita e rende più alta la probabilità di chiudere sullo SL. Se lo SL sarà vicino in relazione alla volatilità, allora ovviamente la tua opzione è migliore, se ad un livello normale e tirando su lo SL non influenzerà la frequenza di attivazione, allora la mia.

Sei già entrato nel regno della strategia ;) insegnami a impostareprima 1 bu e poi a spostarlo

 
VVT:

Sei già entrato nel regno della strategia;) insegnami come impostareprima 1 boo e poi spostarlo

Ciao, da un lato hai ragione - puoi fermarti ad un solo breakeven e scrivere un codice solo per quello. Ma, a mio parere, se inizialmente non avete idea di come dovrebbe funzionare un trailing stop in generale, non è la migliore opzione. Inoltre, quasi tutti gli Expert Advisor sono scritti sulla base di una strategia chiaramente definita. Come si dice in questi casi, "dobbiamo trovare un accordo sulla costa".

Sento che sto "risvegliando" di nuovo il programmatore.

Saluti, Vladimir.

 
Vasiliy Sokolov:

Questa è la mia comprensione. Avete due funzioni di riposizionamento dei trailing stop. La prima sposta il trailing stop-loss a Breakeven, guidato dal parametro "Trailing level", la seconda funzione tira lo stop-loss più indietro rispetto al prezzo, guidato dal parametro "Trailing step". Imho, chiamerei il primo parametro "Stop Loss Breakeven Level" - perché non è un trailing stop loss ma piuttosto un trasferimento di stop loss.

Sì, Vasily, è così! Avete capito e formulato correttamente la mia idea di trailing stop. Il parametro avrebbe dovuto avere lo stesso nome fin dall'inizio: "Trailing Stop Loss Level to Breakeven". La mia terminologia non è ancora perfetta. Grazie!

Sinceramente, Vladimir.

 
MrBrooklin:

Ciao, da un lato hai ragione - puoi fermarti ad un solo breakeven e scrivere un codice solo per quello. Ma, secondo me, se all'inizio non si capisce come dovrebbe funzionare un trailing stop in generale, questa non è nemmeno l'opzione migliore. Inoltre, quasi tutti gli Expert Advisor sono scritti sulla base di una strategia chiaramente definita. Come si dice in questi casi, "dobbiamo trovare un accordo sulla costa".

Sento che sto "risvegliando" di nuovo il programmatore.

Saluti, Vladimir.

Ciao! Se impari a spostare lo Stop Loss passo dopo passo una volta, puoi spostarlo 100 volte dopo, se necessario, se hai abbastanza spazio per farlo ;)

L'Expert Advisor si adatta alla strategia, non viceversa

 
MrBrooklin:

Sì, Vasily, assolutamente giusto! Avete capito e formulato correttamente la mia idea di trailing stop. Il parametro originariamente doveva chiamarsi così: "Trailing Stop Loss Level to Breakeven". La mia terminologia non è ancora perfetta. Grazie!

Sinceramente, Vladimir.


Buona giornata Vladimir. Guarda questo post. Si può modificare nelle reti a strascico dal livello di profitto e non preoccuparsi del livello di trasferimento dedicato al pareggio
https://www.mql5.com/ru/forum/352460/page55#comment_18711100
 
Aleksey Masterov:

Buon pomeriggio, Vladimir. Date un'occhiata a questo mio post. Lì nelle reti a strascico si può modificare dal livello di profitto e non preoccuparsi del livello di trasferimento evidenziato al pareggio
https://www.mql5.com/ru/forum/352460/page55#comment_18711100

Ciao Alexey, scusa se non ho risposto subito al tuo post. Questo link è molto interessante. Ho esaminato tutti gli 11 codici di trascinamento e le librerie di funzioni. È tutto molto interessante, anche se è scritto in MQL4. Ad essere onesti, non avrei mai immaginato che ci fossero così tanti tipi di trailing stop. Grazie mille per il vostro sostegno!

Sinceramente, Vladimir.

 

Buongiorno a tutti e buon umore!

Continuo ad imparare il linguaggio di programmazione MQL5. Tenendo conto delle correzioni di Vasily Sokolov, l'algoritmo di trailing Stop Loss nelle posizioni aperte appare ora

come segue:
  1. Creare un EA per automatizzare il lavoro di trailing (inseguimento) del livello di Stop Loss di una posizione aperta.
  2. Nell'Expert Advisor, create un blocco di parametri di input con due parametri: "Stop Loss level to Breakeven" e "Trailing Step".
  3. Quando arrivano nuove quotazioni, elaborale usando OnTick( ). Il trailing si ferma solo quando arriva un nuovo tick sul simbolo corrente.
  4. Richiediamo i dati al momento della ricezione dell'evento OnTick.
  5. Per ogni posizione di acquisto
  6. determiniamo dove si trova il prezzo corrente rispetto al prezzo della posizione aperta.
  7. Se il prezzo attuale è superiore al prezzo della posizione aperta, controlliamo a quale livello è salito.
  8. Se il prezzo corrente ha raggiunto il livello "Stop Loss senza perdita" specificato nei parametri di input, spostiamo lo Stop Loss ad un livello senza perdita uguale al prezzo di apertura della posizioneBuy. Altrimenti non facciamo nulla.
  9. Se il prezzo corrente ha superato lo "Stop Loss Breakeven Level" del valore uguale al "Trailing Stop", lo Stop Loss viene spostato dal livello del prezzo di apertura della posizione Buy del valore uguale al "Trailing Stop Level" e così via, fino a quando il prezzo raggiunge il livello Take Profit, impostato per questa posizione
  10. .
  11. Se il prezzo gira e raggiunge il livello diStop Loss, la posizione viene chiusa
. [Versione semplificata della descrizione del trailing stop di Vasily Sokolov:
  1. Il trailing stop viene elaborato alla comparsa di un nuovo tick nella funzione OnTick
.
  1. Trailing Stop consiste in due parti consecutive:
  2. Parte 1
  3. .
  4. Per ogni posizione aperta
  5. , viene calcolato il prezzo, e non appena viene raggiunto, il suo stop-loss viene spostato a Breakeven.
  6. Parte 2. Dopo che lo stop loss è stato spostato a breakeven, l'algoritmo di stop pull-up viene attivato per la posizione attiva, seguendo il prezzo.

Si dovrebbe poi seguire lo schema:

Parte 1. Breakeven:
  • comprare;
  • vendere;
Parte 2. Pulling Stop:
  • Per comprare;
  • Per vendere;

Questa variante dell'algoritmo del Trailing Stop Loss della posizione aperta è definitiva

, e continuo a scrivere il codice del programma seguendolo.

Saluti, Vladimir.

 
VVT:

Ciao, se impari a spostare lo stop loss passo dopo passo una volta, allora puoi spostarlo 100 volte se necessario, basta che ci sia spazio per farlo ;)

L'Expert Advisor si adatta alla strategia, non viceversa

Ciao, ho già detto nel mio post precedente che hai ragione nel tuo giudizio. Il fatto è che con l'aiuto di Vasily Sokolov ho formato relativamente rapidamente un algoritmo per il trailing Stop Loss in una posizione aperta, quindi lo seguirò.

Saluti, Vladimir.

 
Hai un approccio intelligente per scrivere l'Esperto. E non avrete bisogno di un mercato.
 

Continuo ad imparare il linguaggio di programmazione MQL5. In precedenza ho pubblicato il codice del ciclo che avvia l'enumerazione delle posizioni aperte. Ora, dopo che il ciclo è stato avviato, iniziamo a lavorare con il simbolo sul grafico corrente:

     {
     /* Для работы с символом создадим переменную _Symbol, в которой будем хранить имя символа текущего графика.
        Делаем запрос на сервер. Сервер возвращает нам символ соответствующей открытой позиции и автоматически
        выбирает позицию для дальнейшей работы с ней при помощи функций PositionGetDouble, PositionGetInteger,
        PositionGetString. Если получим от сервера ответ о том, что для текущего символа была выбрана позиция для 
        дальнейшей работы с ней, то в торговом терминале выводим соответствующее сообщение во вкладке "Эксперт".*/
      if(_Symbol==PositionGetSymbol(i))
         Print("Выбираем позицию для дальнейшей работы с ней"); //
     }

Periodicamente posterò il codice scritto con i miei commenti per fornire un rapido feedback. Chiedo ai partecipanti di questo topic di correggermi, se ci sono imprecisioni nel mio codice o nei miei commenti.

Saluti, Vladimir.

Motivazione: