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

Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
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.
Ibrahim Melssen:
I have copy paste the Expert Advisor and try to test it with Strategytester. But it doesn't make any trades. I am new to MQL5 and programming so maybe I just made a stupid mistake. It compiled without any errors. I'd really like the strategy! Anyone ideas why it doesn't run on strategytester..?
Lo stesso vale per gli uomini, ma non riesco a capire il motivo.
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?
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!!!!
Devi dividere in due parti:
1 Al primo indicatore temporale applicato al grafico: prev_calculated =0 , i = 0, i++ fino a quando i = rates_total, esce dal loop (time[0] è del passato non del presente).
2 Viene avviata una nuova barra: prev_calculated sarà inferiore a rates_total quindi la condizione è vera, il ciclo verrà eseguito solo su quella nuova barra.
Ciao @Guin,
Non credo che la tua domanda abbia ancora ricevuto una risposta corretta. Se hai utilizzato il codice dell'esempio, probabilmente ti ritrovi con un indicatore invisibile che non ha alcun senso e non si vede sul grafico. Questo perché il codice non passa mai attraverso questo blocco:
if(day_n < day_t){ day_n = day_t; h_day = high[i]; l_day = low[i] }
Il motivo è che day_n non è impostato manualmente su alcun valore predefinito e il confronto day_n < day_t risulterà sempre falso. Secondo il debugger, il valore di day_n quando non è impostato esplicitamente è "2076449103".
Basta cambiare la definizione di day_n in qualcosa di simile:
Spero che questo sia d'aiuto.
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 controlla che day_n<day_t. Come può il programma conoscere il valore di day_n?
Ottimo articolo,
Grazie per la condivisione