Discussione sull’articolo "Introduzione a MQL5: Come scrivere un semplice Expert Advisor e un Indicatore Personalizzato" - pagina 4

 

Questo ExpertAdvisor non funziona su MT5 build 712, almeno non per me.

Viene visualizzato il messaggio di errore "Cant't copy indicator buffer".

Inoltre l'indicatore non viene compilato senza avvertimenti,

"possibile perdita di dati dovuta alla conversione del tipo" alla riga 53,

"possibile utilizzo del varaibile non inizializzato 'day_n'" alla riga 54

"possibile utilizzo su varaiable 'h_day' non inizializzato" alla riga 62

"possibile uso su varaiable non inizializzato 'l_day'" alla riga 63


Potete correggere questi problemi, per favore?

Per il resto si tratta di un buon esempio per noi che abbiamo un background in altri software ma non in MT5.

 
Se voglio piazzare 5 ordini pendenti di sell stop e 5 di buy stop e lasciare un gap tra di loro di 10 pips. Come posso fare?
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

Questo è un ottimo articolo, per i principianti e per chi proviene da mql4, con in primo luogo un buon esempio di strategia di trading.

Ci sono alcune piccole mancanze nel codice (il controllo degli errori non è sempre implementato), ma l'EA funziona molto bene se usato su timeframe a minuti come raccomandato dall'autore. Gli avvisi durante la compilazione dell'indicatore sono solo avvisi e non bloccano l'utilizzo dell'indicatore e dell'EA.

Grazie.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Chart Constants / Chart Timeframes
  • www.mql5.com
Standard Constants, Enumerations and Structures / Chart Constants / Chart Timeframes - Documentation on MQL5
 

questo non è un modo semplice di spiegare mql5 alle persone. (come se i principianti avessero mai avuto la possibilità di capirlo!) è come con i libri di programmazione il 90% delle persone non ha idea di come iniziare. Aprono un libro per esempio sulla programmazione in c e il primo "esempio facile" è lungo una pagina intera scritta con caratteri minuscoli. In tutta la mia vita ho letto solo un buon libro di programmazione che potesse insegnare la programmazione a chiunque. Il motivo è che sono stati scritti da programmatori probabilmente eccellenti, ma purtroppo pessimi insegnanti. La programmazione può essere davvero facile e ve lo dimostrerò realizzando un semplice tutorial per il linguaggio di programmazione MQL4 quando avrò un po' più di tempo di adesso. Per tutti, anche per i principianti assoluti. L'errore più grande è insegnare alle persone i dettagli del linguaggio, la maggior parte del loro lavoro dovrebbe essere ctrl+C e ctrl+v e usare google per i comandi e, soprattutto, mantenere tutto MOLTO SEMPLICE. Conosco più di 10 linguaggi di programmazione (programmo da quando avevo 7 anni) e sono ancora spaventato dal modo in cui questo "esempio facile" su 11kb (!!!) è spiegato. Vorrei sapere se c'è qualche vero principiante di programmazione che ha imparato MQL5 da questo esempio ;D. Ne dubito e se c'è si possono contare queste persone sulle dita di una mano.

Fast Dive into MQL5
  • 2012.08.02
  • MetaQuotes Software Corp.
  • www.mql5.com
You have decided to study MQL5 trading strategies' programming language, but you know nothing about it? We have tried to examine MQL5 and MetaTrader 5 terminal from the newcomers' point of view and have written this short introductory article. In this article, you can find a brief idea of the possibilities of the language, as well as some tips on working with MetaEditor 5 and the terminal.
 
angreeee:

questo non è un modo semplice di spiegare mql5 alle persone. (come se i principianti avessero mai avuto la possibilità di capirlo!) è come con i libri di programmazione il 90% delle persone non ha idea di come iniziare. Aprono un libro per esempio sulla programmazione in c e il primo "esempio facile" è lungo una pagina intera scritta con caratteri minuscoli. In tutta la mia vita ho letto solo un buon libro di programmazione che potesse insegnare la programmazione a chiunque. Il motivo è che sono stati scritti da programmatori probabilmente eccellenti, ma purtroppo pessimi insegnanti. La programmazione può essere davvero facile e ve lo dimostrerò realizzando un semplice tutorial per il linguaggio di programmazione MQL4 quando avrò un po' più di tempo di adesso. Per tutti, anche per i principianti assoluti. L'errore più grande è insegnare alle persone i dettagli del linguaggio, la maggior parte del loro lavoro dovrebbe essere ctrl+C e ctrl+v e usare google per i comandi e, soprattutto, mantenere tutto MOLTO SEMPLICE. Conosco più di 10 linguaggi di programmazione (programmo da quando avevo 7 anni) e sono ancora spaventato dal modo in cui questo "esempio facile" su 11kb (!!!) è spiegato. Vorrei sapere se c'è qualche vero principiante di programmazione che ha imparato MQL5 da questo esempio ;D. Ne dubito e se c'è si può contare sulle dita di una mano.

Hai ragione sul fatto che i programmatori non sono buoni insegnanti in generale.

Ma non sono d'accordo quando dici che mql5 è così difficile da imparare, soprattutto per un programmatore che ha sperimentato più di 10 linguaggi.

 
In effetti questo è un ottimo articolo per i principianti della programmazione mql5, come me. angevoyageur ne parla bene.
 

In pratica, per quanto mi ricordo, è possibile modificare uno dei livelli (SL o TP) di una posizione lasciando invariati gli altri livelli, anche nel caso in cui il livello il cui valore rimane invariato sia più vicino al prezzo corrente di quanto specificato nel parametro SYMBOL_TRADE_STOPS_LEVEL. Nella creazione dei programmi, non è consigliabile modificare i parametri di posizione (livelli) in modo tale che i nuovi parametri di posizione (livelli) non soddisfino i requisiti per la verifica della correttezza dei dati di posizione, poiché questa situazione non è documentata e in futuro si potrebbe ottenere un risultato diverso.

[Eliminato]  
Ho copiato e incollato l'Expert Advisor e ho provato a testarlo con Strategytester. Ma non effettua alcuna operazione. Sono nuovo di MQL5 e della programmazione, quindi forse ho solo commesso uno stupido errore. Ha compilato senza errori. Mi piacerebbe molto avere la strategia! Qualcuno ha idea del perché non funzioni su Strategytester?
 

Ciao a tutti!

A me funziona tutto bene solo quando

request.type_filling=ORDER_FILLING_IOC;

request.type_time = ORDER_TIME_DAY;

Situazione simile con https://www.mql5.com/ru/forum/1156/page9#comment_2359257

Si tratta di una peculiarità del mio broker FxPro?

Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих"
Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих"
  • www.mql5.com
Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих". - Страница 9 - Категория: статьи и техническая библиотека по автоматическому трейдингу
 

Sono nuovo nella programmazione di mql5.


Stavo cercando di imparare attraverso questo esempio, ma mi sono un po' perso con il ciclo alla fine della costruzione dell'indicatore. Dove ha assegnato esattamente un valore alla variabile day_n?


Perché il ciclo controllerà se day_n<day_t. Come può il programma conoscere il valore di day_n?


for(i=prev_calculated;i<rates_total;i++)
     {
      day_t=time[i]/PeriodSeconds(ATRtimeframe);
      if(day_n<day_t)
        {
         day_n=day_t;
         h_day=high[i];
         l_day=low[i];
        }
        else
        {
         if(high[i]>h_day) h_day=high[i];
         if(low[i]<l_day) l_day=low[i];
        }
      bu[i]=l_day+atr[1];
      bd[i]=h_day-atr[1];
     }


E come viene calcolato? Supponiamo che rate_total = 10 e che non ci sia ancora una barra calcolata. Quindi prev_calculated = 0


day_t=time[0] (OGGI! dato che viene contato all'indietro)/PeriodSeconds... dato che inizia a contare dal 1970, supponiamo che inizi a contare da 10 giorni fa. quindi dovrebbe dare 10, giusto?

Quindi giorno_t=10. Ora controlla se dayt > dayn. Non conosco dayn, ma so che dayt=10. Assumerò che dayn sia zero, dato che non c'è alcun valore.

Allora anche dayn diventa 10. Ok.

Secondo lancio del ciclo. prev_calculated + 1= 1.

DayT=time[1] (ieri)/periodo... ricordate, inizia a contare da 10 giorni fa... ma ora solo fino a ieri. dovrebbe dare un valore di 9, giusto?

ma ora giornoN < giornoT è falso. Quindi inizia a eseguire le espressioni else. Ok. Ho capito.


Quindi calcola tutti i bu[] e i bd[]. Ok. Il ciclo termina quando prev < total rate è falso.

Ma quando arriva una nuova barra, e diventa di nuovo vero, partirò di nuovo da zero? Oppure partirà da 10 e andrà direttamente alla parte else?


Grazie!!!!