programmazione
Adesso stai leggendo
Praticamente MQL. Pulsante di panico, parte I [Corso di programmazione]
0

Praticamente MQL. Pulsante di panico, parte I [Corso di programmazione]

creato Radek SzafronMarzo 21 2019

Benvenuti al secondo episodio di MQL Practically! Nella seconda parte del nostro corso, ricominceremo da un foglio bianco e scriveremo una nuova applicazione passo dopo passo. Conosceremo gli elementi che ogni programmatore utilizza nel suo lavoro quotidiano, come funzioni, operatori logici e loop, che è ciò di cui ognuno di voi deve aver sentito parlare, ma non sapevamo cosa sia. Fortunatamente, nella nostra serie, diamo la teoria gustosa e senza esagerare, e ci concentriamo su ciò che è più importante, ovvero programmazione in pratica.

Questa settimana scriveremo la prima parte dell'applicazione "pulsante antipanico"il cui nome credo spieghi già molto. Il compito del nostro programma sarà, dopo aver premuto un pulsante, chiudere immediatamente tutte le posizioni aperte e gli ordini, quando un sudore freddo appare sulla nostra fronte, il mondo diventa silenzioso e l'immagine si restringe a un piccolo campo nebuloso con un tasso tremolante di un dollaro che scorre dopo uno dei simpatici tweet di uno dei i nostri politici preferiti.

Tiriamoci le maniche e accendiamo MetaEditor

Iniziamo creando un file di tipo vuoto nell'editor Perizie detto Panic Button.mq4. Il file sarà nella directory MQL4 \ Esperti. Quindi, metti tutti i file che ti servono oggi nelle cartelle giuste.

file "Funzioni_utili.mqh" deve essere inserito nella directory MQL4 \ Include \ Panic Button \

file "Biblioteka_panic_button.ex4" deve essere inserito nella directory MQL4 \ Libraries \ Panic Button \

SCARICARE UN SET DI FILE MQL

Primi personaggi

Cambiamo il codice della nostra applicazione, cioè il file Panic Button.mq4 dal catalogo Esperti. Informiamo il compilatore che usiamo l'ultima sintassi del linguaggio MQL4 digitando:

#property rigoroso
Codice MQL4

Tre volte "e"

#includere

Usando la parola chiave #includere possiamo allegare altri file sorgente al tuo codice. Nel file Przydatne_funkcje.mqh abbiamo preparato la funzione necessaria nella parte seguente:

bool Zamknij_pozycje_i_zlecenia (bool tylko_ten_instrument)

Per poter utilizzare il codice aggiuntivo, dobbiamo aggiungerlo al nostro file digitando #includere e il percorso di accesso. Esattamente come nella casella qui sotto.

#includere ".. \\ Includi \\ Pulsante Panic \\ Funzioni_Utili.mqh"
Codice MQL4

# Import

parola chiave # Import tuttavia, ci consente di utilizzare librerie esterne. Le librerie sono algoritmi separati e compilati che condividono le loro funzioni e risorse con altri programmi. Di seguito importiamo una libreria chiamata Biblioteka_panic_button.ex4che contiene elementi grafici e funzioni per il nostro pulsante. Tra elementi # Import inseriamo un elenco di definizioni di funzioni che la libreria dovrebbe fornirci.

L'importazione della libreria corretta ha il seguente aspetto:

# Import "Pulsante antipanico \\ Biblioteka_panic_button.ex4"
nulla Przycisku_utworz_sie (int x, int y, bool wybieram_niebieski); nulla Przycisku_badz_czujny (); bool Przycisku_czy_jestes_klikniety (stringa object_name); nulla Przycisku_bye_bye ();
# Import
Codice MQL4

ingresso

Dopo aver aggiunto i file e le librerie di origine, possiamo procedere alla creazione delle funzioni del nostro programma. Iniziamo aggiungendo la seguente riga:

ingresso bool Tylko_ten_instrument = falso;
Codice MQL4

elemento ingresso informa il compilatore che stiamo creando un parametro che sarà disponibile nella finestra delle impostazioni dell'applicazione e il suo valore dipenderà dalla scelta dell'utente. Il parametro che abbiamo creato prende il valore di tipo bool czyli vero lub falso. L'abbiamo chiamato Tylko_ten_instrument e usando questo nome potremo riferirci al suo valore in futuro, che ci aiuterà a decidere se chiudere tutte le posizioni o solo la posizione dello strumento su cui è in esecuzione il nostro programma.

Prima funzione

Aggiungiamo il seguente snippet di codice al nostro file:

int OnInit ()
{
ritorno INIT_SUCCEEDED;
}
Codice MQL4

Il precedente record significa che creiamo una funzione chiamata OnInitquesto restituirà i valori del tipo int, questo è un numero intero. Le funzioni restituiscono valori utilizzando una parola chiave ritorno.

Abbiamo detto che usando la parola ritorno la nostra funzione restituisce valori sotto forma di numeri interi. Allora, che cos'è un record misterioso? INIT_SUCCEEDED ? Per la nostra comodità nella lingua ci sono molti valori definiti automaticamente e INIT_SUCCEEDED è solo uno di loro. Sotto il suo nome c'è un numero intero, noto al compilatore come "tutto è ok".

funzione OnInit () fa parte dell'API MQL, ovvero una funzione disponibile come parte della lingua. Le funzioni API MQL sono contrassegnate nel codice on violaceo. Dopo aver avviato l'applicazione, il nostro algoritmo chiamerà automaticamente la funzione OnInit () e lo farà solo una volta, all'inizio, per permetterci di eseguire le operazioni necessarie per gestire e gestire il nostro programma.

Il contenuto della funzione

Tra le parentesi di ogni funzione, inseriamo le istruzioni che una determinata funzione dovrebbe eseguire. La nostra funzione OnInit () contiene già un'istruzione - ritorno INIT_SUCCEEDED;

Espandiamo la funzione della funzione OnInit (), ricordando di codice ritorno INIT_SUCCEEDED; è sempre rimasto nella parte inferiore della funzione, perché vogliamo chiamarlo solo quando tutte le altre istruzioni hanno esito positivo.

Operatore condizionale se

if(IsDemo () == falso)
{
 
ritorno INIT_FAILED;
 
}
Codice MQL4

Il codice sopra, usando un operatore condizionale if, controlla se l'ambiente per i nostri esperimenti è sicuro e lavoriamo su un account demo.

Costruzione dell'operatore if è sempre molto simile Un record tra parentesi dopo l'operatore, cioè il record IsDemo () == falso chiamiamo un'espressione condizionale. È un'espressione logica che può restituire uno dei due valori: vero lub falso. Quando l'espressione condizionale restituisce un valore vero questo sarà il codice tra le parentesi che appaiono direttamente dopo l'operatore if.

Il simbolo == in un'espressione condizionale pone una domanda se il valore alla sua sinistra è uguale al valore sulla destra. Perché la funzione IsDemo () restituirà il valore falsoquando abilitiamo il programma sull'account live, la nostra espressione condizionale, nel suo insieme, restituirà il valore veroperché il valore a sinistra del simbolo == corrisponde al valore a destra. Quando viene soddisfatta un'espressione condizionale, verrà eseguito un codice tra le parentesi operatore if e il programma restituirà le informazioni sul fallimento con l'aiuto dell'operatore ritorno e valore generato automaticamente sotto il nome INIT_FAILED.


esperti consulenti


Disegniamo un pulsante

Disegniamo il nostro pulsante usando la funzione Przycisku_utworz_sie (int x, int y, bool wybieram_niebieski)che proviene dalla libreria precedentemente importata. La funzione accetta due parametri con un tipo di dati int (numeri interi) con i nomi x e yche fungono da coordinate della posizione del pulsante sul grafico rispetto all'angolo in alto a destra della finestra.

Inoltre, la funzione assume un parametro di tipo bool (vero lub falso) chiamato wybieram_niebieski. Poiché la nostra applicazione sarà in grado di operare in due modalità, per l'intero account o uno strumento, il nostro pulsante avrà il colore appropriato in base alle impostazioni selezionate.

Ci piace ify

Determiniamo che vogliamo che il pulsante sia blu quando funziona in modalità strumento singolo e rosso per l'intero account. Attiveremo la colorazione del pulsante aggiungendo la seguente istruzione alla funzione OnInit ():

bool blu = falso;
if(Tylko_ten_instrument == vero)
{
 
blu = vero;
}
Codice MQL4

Per fare in modo che l'algoritmo determini il colore del pulsante, per iniziare, definiamo la variabile bool detto blu e assegniamo un valore ad esso falso. Quindi usiamo l'operatore condizionale ifche controlla il parametro delle impostazioni dell'applicazione Tylko_ten_instrument è stato impostato dall'utente su un valore vero. In questo caso, viene eseguito il codice che imposta il valore della variabile blu  anche su vero. Una variabile preparata in questo modo blu possiamo servire la funzione Przycisku_utworz_sie (..) aggiungendo la seguente riga di codice alla funzione OnInit ().

Przycisku_utworz_sie (5, 15, blu);
Codice MQL4

Ultima funzione (per oggi)

Quando il programma termina o qualcosa cambia nelle impostazioni, verrà chiamata la funzione API MQL nulla OnDeinit(const int ragione).

Usando la funzione OnDeinit () eseguiamo operazioni che sono necessarie per terminare correttamente il programma. Nel nostro caso, dopo aver disattivato l'algoritmo, è necessario rimuovere il pulsante utilizzando la funzione precedentemente importata dalla libreria Przycisku_bye_bye ().

nulla OnDeinit(const int ragione)
{
 
Przycisku_bye_bye ();
 
}
Codice MQL4

Notare che c'è una parola davanti al nome della funzione nulla. Significa che la nostra funzione non restituirà alcun valore.

Aggiungi il punto e virgola, strofina le mani e premi Compila

Dopo la compilazione riuscita, il codice che abbiamo scritto oggi disegnerà un pulsante sul grafico e gli darà un aspetto adatto a seconda della configurazione immessa dall'utente nella finestra delle impostazioni. Congratulazioni, abbiamo completato la prima fase della creazione della nostra applicazione, abbiamo creato un'interfaccia utente.

La prossima settimana svilupperemo il nostro programma per l'elaborazione degli ordini e aggiungeremo alcuni gadget interessanti.

SCARICARE UN SET DI FILE MQL

Cosa ne pensi?
Io
0%
interessante
100%
Eh ...
0%
Shock!
0%
Non mi piace
0%
ferita
0%
Circa l'autore
Radek Szafron
L'autore della pubblicazione è Radek Szafron, proprietario della società Expert Advisors, che da anni supporta gli investitori fornendo tecnologie dedicate al mercato FOREX. L'autore si è laureato alla Warsaw School of Economics con la specializzazione "Mercati finanziari" e un programmatore con quasi l'esperienza estiva 20. La società implementa progetti di algoritmi e applicazioni scritte in tutte le lingue dalla famiglia "C", comprese le piattaforme popolari Meta Trader 4 e 5. I consulenti esperti possono essere trovati su www.expertadvisors.pl.