GRUPPI DI CODICI ELEMENTARI

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico
Rispondi
IntoTheWild1990
Messaggi: 98
Iscritto il: 12/10/2016, 17:44

GRUPPI DI CODICI ELEMENTARI

Messaggio da IntoTheWild1990 » 18/12/2017, 0:18

Salve a tutti, voglio parlare di codici mql4.

Iniziamo dalle variabili.

1.0 int
2.0 double

int indica una variabile intera, ad esempio 1, 2, 3, ..., n con n numero naturale
double indica una variable reale, ad esempio 1,223..., r ecc.. con r numero reale.

quindi se voglio che il mio codice mi stampi un numero devo scrivere:

void OnStart () {

int n=0;

n=20;

for (i=0;i<n; i++){
Print(i);
}
return;
}


cosa abbiamo scritto?
Si tratta di una funzione semplice che effettua una dichiarazione di variabile, un'assegnazione e a un certo punto si vede questo pezzo di codice:

Codice: Seleziona tutto

for (i=0;i<n; i++){
Print(i);
}
sostanzialmente stiamo accedendo al processore, nel senso che iniziamo a utilizzare una parte importante del nostro pc, cioè stiamo creando un ciclo.
Il ciclo in questione all'interno dell'algoritmica in mql4 permette di eseguire una importante parte dei calcoli necessari per il funzionamento del nostro bot.

ad esempio il suddetto ciclo può servire per ricercare una determinata operazione all'interno del nostro storico. A questo punto sorge spontaneo chiedersi:

In che modo il nostro pc riesce a leggere lo storico delle operazioni?

funzioni:
3.0 HistoryOrdersTotal();
4.0 OrderSelect();

La prima funzione riesce ad indicìviduare il numero totale di operazioni nel nostro storico.
La seconda seleziona il nostro ordine e ci da libero accesso a quelle che sono le proprietà dell'ordine, questa funzione si compone di una serie di variabili di comando che permettono di accedere alla funzione stessa e sono:

4.1 indice
4.2 selezione
4.3 archivio da cui estrarre le informazioni.

L'indice si riferisce o al ticket dell'ordine, il quale però viene sostituito proprio dalla variabile i del nostro ciclo
La selezione è una funzione della scelta, di certo all'interno di un ciclo non ha senso utilizzare SELECT_BY_TYCKET, bensì si utilizza il tipo di selezione SELECT_BY_POS
Per quanto riguarda gli archivi ve ne sono due:
MODE_TRADE che seleziona gli ordini all'interno dell'archivio degli ordini correnti
MODE_HISTORY che seleziona gli orndini all'interno dell'archivio degli ordini chiusi.

bene riscriviamo il nostro algoritmo con le nuove competenze assorbite:

void OnStart(){

int n=0;
n=HistoryOrdersTotal();

for(int i=0; i<n; i++){

OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
Print(OrderProfit());

}
return;
}

per completezza, OrderProfit() individua il profitto dell'ordine corrente.

Si invitano gli interessati a questo scambio a compilare un algoritmo che permette di analizzare il profitto degli ordini aperti.

Saluti
IntoTheWild1990
However there are reason believe that the Lagrangian are more foundamental.
Cit[ prof. G.Giaquinta]

Sponsor

Sponsor
 

Rispondi