Versione beta del libro online sulla programmazione MQL4 - di Sergey Kovalev (SK.) - pagina 9

 
Climber:
Ho trovato questo grande articolo sulla contabilità degli ordini complessi da SK 'Order Bookings in a Large Program'.
Onestamente, mi sto chiedendo se tutta questa storia sia una truffa.
Non è un espediente, ma bisogna tenere la mente aperta. Leggete i post di Korey a partire da questa pagina per maggiore chiarezza. E date un'occhiata al mio primo "graal".
 
Ho già letto del graal:)
Ma a differenza del personaggio descritto nell'articolo sul graal, io non penso come lui: "Solo io!". Penso che ci sia qualcosa di sbagliato qui, o è solo fortuna in questo momento. Anche se, guardando i risultati del campionato, si può vedere un risultato molto migliore in tre mesi, il che significa fondamentalmente che nulla è impossibile. Eppure, non si può fare a meno di chiedersi chi darà uno sviluppo così "rapido" nel mondo reale?
 
Climber:
Eppure ci si chiede chi permetterà uno sviluppo così "rapido" nel mondo reale?

È una domanda semplice. E la risposta è ovvia: chi lavora onestamente (i broker non sono discussi qui).

La domanda più difficile è se l'Expert Advisor sta producendo risultati stabili ed elevati? O è solo una storia adatta o un colpo di fortuna?

 
SK. писал (а):
La domanda più difficile è se il consulente sta davvero dando coerenza,
risultati elevati? O è solo un adattamento alla storia o un colpo di fortuna?
Beh, non ne ho ancora uno, ma se ne avessi uno, penso che mi aiuterebbe molto a capire. Sono anche incline al caso. Per ora sono io che mi occupo manualmente della demo.

Ho solo avuto risultati molto più modesti prima. E in generale, studiando il tuo libro (per quasi un mese) e tutta la lingua in generale, ho imparato molto sul trading che non sapevo e non sospettavo durante 2 anni di studio del Forex. Anche ora sto pensando come potrei guadagnare qualcosa senza sapere tanto)) Penso che anche adesso potrei guadagnare così tanto senza sapere nulla. È solo che quando ho provato per la prima volta a fare trading sulla demo, ho avuto la sensazione che non avrei potuto guadagnare più di 300 dollari al mese. Il che non è neanche male, soprattutto tenendo conto della mia allergia ai capi di ogni tipo:) scrivevo il mio primo Expert Advisor nel mio blog, e non ne ho mai sentito parlare.

Ho scritto il mio primo consigliere in una settimana dalla prima lettura del libro. Ma non l'ho scritto io, l'ho copiato, sostituendo solo il blocco con i criteri di trading, e il resto è stato preso dall'esempio di EA che usa MA. Ma quando l'ho scritto, volevo solo sapere cosa sarebbe successo se avessi fatto così. Intendo utilizzare le capacità del tester senza doverlo controllare manualmente per molto tempo. Non ho avuto idee come nell'articolo sul graal. Sono più con i piedi per terra in questo senso:) Sono soddisfatto del risultato, dato che ho perso completamente il mio deposito (una variante in meno). L'idea era semplice come l'inferno, quindi era un peccato non controllarla. Ma l'ultima strategia è più difficile (per me) da descrivere usando gli strumenti MQL4, quindi devo lavorare con le mie mani. Ma i suoi risultati in modalità manuale richiedono un ulteriore sviluppo dell'Expert Advisor. Così sto cercando, lentamente ma lentamente, di scriverlo.
 
Climber:
Ho solo avuto risultati molto più modesti prima. E in generale, studiando il tuo libro (quasi un mese) e tutta la lingua in generale, ho imparato molto sul trading che non sapevo e non sospettavo durante i miei 2 anni di conoscenza del forex. Anche ora sto pensando a come potrei guadagnare qualcosa, senza sapere molto...).
Ma l'ultima strategia è più complicata (per me) in termini di descrizione per mezzo di MQL4, quindi devo lavorare manualmente. Ma i suoi risultati in modalità manuale hanno solo bisogno di un ulteriore sviluppo dell'Expert Advisor. Quindi ci sto provando, lentamente, ma scrivendo.
A mio parere, l'input di lavoro per la creazione di una strategia robusta e redditizia è circa due ordini di grandezza (100 volte) superiore all'input di lavoro per imparare la lingua. In sostanza, la programmazione è solo uno strumento tecnico, in gran parte prevedibile, e quindi soggetto alla volontà del creatore della strategia. Ma per essere giusti, bisogna anche dire che addentrandosi nei dettagli della programmazione, un trader comincia a guardare l'intero fenomeno della strategia di trading sul mercato con una visione più chiara. In questo senso, è difficile sopravvalutare la pratica della programmazione. Pertanto, gli sviluppatori che hanno deciso di affidarsi all'auto-trading hanno avuto cento volte ragione.
 

a SK

Variabili, .

Avete scritto quanto segue:

" Tutti gli array sono statici intrinsecamente, cioè hanno una forma statica, anche se questo non è esplicitamente specificato durante l'inizializzazione "

Tuttavia

Supponiamo che un indicatore, la subroutine chiamante abbia una matrice:

1)

double summ[]; //viene chiamata la funzione standard .................................... ..........

i=ArrayMinimum(summ,iter,0); // Errore sulla seconda chiamata: <incorrete la posizione iniziale 0 per la funzione ArrayMinimum>.

2) variante dell'errore

statico doppio summ[];

//..............................................

i=ArrayMinimum(summ,iter,0); // Stesso errore nella seconda chiamata: <incorrete la posizione iniziale 0 per la funzione ArrayMinimum>.

3) variante senza errori

doppio summ[1000];

..............................................

i=ArrayMinimum(summ,iter,0); // Esecuzione normale

4) variante senza errori

doppio statico summ[1000];

..............................................

i=ArrayMinimum(summ,iter,0); // Esecuzione normale



Dagli esempi 1 e 2 risulta che gli array sono allocati dinamicamente.

L'esempio 2 suggerisce che un array senza dimensione non è inizializzato come un array statico (il che è ovvio), ma questo non appare negli errori del compilatore ((

L'esempio 3 4 implica che solo gli array predefiniti hanno un'allocazione statica.

È interessante notare che il sistema di esecuzione cattura l'errore e determina dall'esempio 1 e 2, il che suggerisce un sistema terminale in tempo reale ben pensato. Cioè l'array si comporta come un oggetto. Complimenti agli sviluppatori.

Tuttavia, non tutto sta andando così bene con le variabili semplici

double instik(int &t) // questa funzione cambia la variabile nel programma chiamante

{

t++;

}

Questa chiamata conta su ogni tick se

//...........................................

int statico tik;


instik(tik);

Stampa (" tick=",tik);

//...............................

E questo non conta perché l'allocazione della memoria è dinamica, e l'indirizzo collegato nella seconda chiamata non corrisponde.

................

int tik;


instik(tik);

Stampa (" tick=",tik);

// la subroutine instik dà un incremento al byte sconosciuto, ma il terminale non va in crash!!!! Di nuovo, complimenti agli sviluppatori.

 
SK. писал (а):

Ma per essere giusti
bisogna anche dire che entrando nei dettagli della programmazione
un trader comincia a guardare l'intero fenomeno del mercato-trading-strategia
con una visione più chiara. E man mano che guadagnano esperienza, passano al setaccio
E man mano che si accumula esperienza, si eliminano le linee di pensiero sbagliate e si identificano le linee di pensiero promettenti.
Sono d'accordo al 100%. All'inizio ero persino sorpreso, penso che sto cercando di imparare la programmazione e ho imparato più cose sul trading di quante ne sapessi prima. Quindi vado a fare esperienza per ora:)
 
Korey:

a SK

Variabili, variabili statiche.

...


Penso che stiate trascurando il fatto che le funzioni speciali vengono rieseguite ad ogni tick. Le variabili statiche mantengono i loro valori e non sono inizializzate, mentre le variabili non statiche sono inizializzate secondo il codice. Nel tuo codice, la variabile intera tik è inizializzata a zero per default.

//----------------------------------------------------------------------------------
int start()
   {
   int tik;                // Инициализация нолём на каждом тике
   instik(tik);            // Вызов функции, передача параметра по ссылке
   Alert (" tick=",tik);   // Всё время выводит 1, как и ожидается
   return;
   }
//----------------------------------------------------------------------------------
double instik(int &t)      // Функция изменяет переменную в вызывающей программе
   {                       // При каждом обращении заходит 0
   t++;                    // Увеличение значения на 1, как и заказано, т.е.
   }                       // ..при каждом исполнении уходит 1
//----------------------------------------------------------------------------------

In instik() tutto avviene come previsto. In start(), al momento di Alert(), il valore della variabile tik è 1, che è ciò che Alert() produce.

Ma questa non è tutta la verità. Poiché la variabile tik non è dichiarata come statica, il suo valore non viene salvato. In altre parole, la prossima volta che la funzione speciale start() viene chiamata per l'esecuzione, la variabile tik sarà nuovamente inizializzata con zero. E tutto comincia di nuovo. Pertanto, Alert in modo sicuro le uscite una dopo l'altra.

 
Congratulazioni a Sergey Kovalev!

Il rilascio del tutorial del linguaggio MQL4 è previsto per il 1 febbraio ed è già integrato nel sito web MQL4.community. La traduzione in inglese è ben avviata.
 
Sergei!
Come implementare nell'Expert Advisor la possibilità di chiudere un ordine - per contro-ordine? Non l'ho trovato nel tutorial...