Autoapprendimento del linguaggio MQL5 da zero - pagina 74

 
VVT:

Aspetta, hai un limite di tempo per fare trading lì... Il tempo della pesca a strascico non rientra in queste restrizioni? anche se no, stop sbagliato, strano

Il mio Expert Advisor è impostato per funzionare dalle 09:00:00 alle 09:01:00 ora di Mosca solo per aprire una posizione. Nessun problema con l'apertura della posizione. L'Expert Advisor è stato installato su un conto demo nella piattaforma di trading PSB-Forex.

Ho deciso di mettere l'Expert Advisor sul mio conto demo nel terminale di trading MetaQuote MT5. Tutto ha funzionato come dovrebbe, ma il codice di ritorno del server commerciale 10016 rimane ancora. Molto interessante! Cercherò di analizzare la questione.

Cordiali saluti, Vladimir.

 
MrBrooklin:

Valery, qual è il livello di congelamento? Forse deve essere prescritto in qualche modo nel codice?

Saluti, Vladimir.

Ladistanza di congelamento, più correttamente, è la distanza da un ordine/posizione di mercato in cui gli ordini non possono essere eseguiti. Gli stop non possono essere posizionati in quest'area. Usa il tuo stop stimato come parametro e otterrai quello richiesto nell'output. Il codice è per 4k. La logica è la stessa nel 5. Il parametro MarketInfo sembra essere lo stesso.

int New_Stop(int Parametr)                      // Проверка стоп-прик.
  {
   int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Миним. дистанция
   if (Parametr < Min_Dist)                     // Если меньше допуст.
     {
      Parametr=Min_Dist;                        // Установим допуст.
      Alert("Увеличена дистанция стоп-приказа.");
     }
   return(Parametr);                            // Возврат значения
  }
//-------------------------------------------------------------- 12 -- 

Per 5

LIVELLO DI CONGELAMENTO DEL SIMBOLO

Operazioni di trading distanza di congelamento (in punti)

int



Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как правило...
 
Valeriy Yastremskiy:

La freeze distance è corretta, la distanza dall'ordine/posizione di mercato in cui gli ordini non possono essere eseguiti. Gli stop non possono essere posizionati in quest'area. Usa il tuo stop stimato come Parametro, e otterrai quello desiderato nell'output. Il codice è per 4k. La logica è la stessa nel 5. I parametri di MarketInfo sembrano essere gli stessi.

Grazie, Valeriy! Continuerò a migliorare il codice dell'Expert Advisor.

Saluti Vladimir.

 
MrBrooklin:

Grazie, Valery! Continuerò a capire e migliorare il codice di Expert Advisor.

Sinceramente, Vladimir.

Vi prego di inviarmi la funzione di calcolo dello stop e di modifica della posizione. Il codice è lungo, non molto tempo)))))

 
Valeriy Yastremskiy:

Si prega di caricare la funzione di calcolo dello stop e di modifica della posizione qui. Il codice è lungo, non molto tempo)))))

Valery, non c'è una funzione per calcolare lo stop perché è impostato nei parametri di input in questo modo:

input ushort SL=200; //Стоп-лосс

e nel codice per la posizione Buy è prescritta la seguente linea:

request.sl=NormalizeDouble(price-SL*point,digits);

Grazie, Valery, ma voglio occuparmi io stesso della modifica dello stop loss. Ho già abbastanza informazioni per migliorare io stesso l'Expert Advisor.

Saluti, Vladimir.

 
MrBrooklin:

Valery, non c'è una funzione per calcolare l'arresto, perché è impostato nei parametri di ingresso in questo modo:

E nel codice per la posizione Buy è prescritta la seguente linea:

Grazie, Valery, ma voglio occuparmi io stesso della modifica dello stop loss. Ho già abbastanza informazioni per migliorare io stesso l'Expert Advisor.

Sinceramente, Vladimir.

request.sl=NormalizeDouble(price-SL*point,digits);
Alert("request.sl= ",request.sl);

E anche prezzo, SL e punto per essere sicuri)

 
Valeriy Yastremskiy:

E anche di sicuro prezzo, SL e punto)

Grazie, Valery!

Sinceramente, Vladimir.

 
Valeriy Yastremskiy:

La freeze distance è corretta, la distanza dall'ordine/posizione di mercato in cui gli ordini non possono essere eseguiti. Gli stop non possono essere posizionati in quest'area. Usa il tuo stop stimato come Parametro, e otterrai quello desiderato nell'output. Il codice è per 4k. La logica è la stessa nel 5. Il parametro MarketInfo sembra essere lo stesso.

Per 5

LIVELLO DI CONGELAMENTO DEL SIMBOLO

Operazioni di trading distanza di congelamento (in punti)

int



Grazie, Valery per il chiarimento.

Saluti, Vladimir.

 

Buona giornata e buon umore a tutti!

Continuo a studiare il linguaggio di programmazione MQL5. Oggi è il momento in cui posso mettere il codice dell'Expert Advisor con un trailing stop alla vista pubblica. Poiché il codice dell'Expert Advisor è piuttosto ingombrante, ho dovuto tagliare i commenti il più possibile e pubblicarlo come un file chiamato Trailing_Stop (v.1).mq5. Pubblicherò la versione dell'Expert Advisor con commenti dettagliati su ogni linea di codice, in una forma facilmente comprensibile per uno studente del primo anno di una scuola di programmazione, un po' più tardi.

Prima di pubblicare il codice, abbiamo controllato l'Expert Advisor nel tester delle strategie. Non sono stati rilevati problemi. Il sistema di netting della contabilità delle posizioni è utilizzato nell'Expert Advisor. Questo sistema di contabilità significa che in un determinato momento sul conto, ci può essere solo una posizione aperta per lo stesso simbolo (titolo).

In questo momento, l'Expert Advisor ha implementato la capacità di:

  1. Controllate il conto di trading su cui intendete installarlo. Se l'Expert Advisor sarà installato su un conto demo, allora nella casella di messaggio apparirà il permesso di continuare a lavorare. Se si tenta di installare l'Expert Advisor su unconto reale, la finestra del messaggio mostrerà un avvertimento che non può continuare a lavorare, e poi verrà automaticamente cancellato dalla finestra di lavoro del terminale di trading .
  2. Una volta al giorno di trading, alle 9 in punto ora di Mosca, apri automaticamente una posizione nella direzione in cui è diretto il primo tick. Per esempio, se il primo tick è diretto verso l'alto alle 9 del mattino ora di Mosca, allora verrà aperta una posizione BUY; se il primo tick è diretto verso il basso, allora verrà aperta una posizione SELL.
  3. Impostare la dimensione del lotto.
  4. Impostare la dimensione dello stop loss.
  5. Specifica il livello relativo al prezzo di apertura, al quale lo Stop Loss viene spostato a Breakeven.
  6. Imposta il passo di trailing dello stop loss.

Questa versione di Expert Advisor implementa parzialmente i suggerimenti suggeriti in precedenza da Vassily Sokolov. Tutte le aggiunte e i commenti dettagliati saranno inclusi nella versione finale dell'Expert Advisor.

ATTENZIONE!!!

Questo Expert Advisor è sviluppato secondo il piano di autoapprendimento per i conti demo, ed è inteso solo per scopi di formazione! Non è destinato al trading su un conto reale e al profitto!

Saluti, Vladimir.

File:
 

Cari partecipanti e lettori di questo thread!

Sono stato seduto tutta la notte cercando di capire perché il file precedentemente pubblicato con il codice di Expert Advisor, che aveva un difetto, non poteva essere sostituito con la versione corretta. La mattina ho finalmente capito!

Francamente non pensavo che se uno dei partecipanti al forum avesse già scaricato il file Trailing_Stop.mq5 con un difetto, non sarebbe stato possibile scaricare e sostituire semplicemente il file con uno corretto con lo stesso nome. Si è scoperto che si dovrebbe anche cambiare il nome dell'EA per pubblicare la variante corretta.

A causa di questo fatto, mi scuso e propongo di scaricare la versione corretta dell'Expert Advisor chiamata Trailing_Stop (v.1).mq5 che si trova nel messaggio precedente.

Saluti, Vladimir.