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
Cosa vuoi ottenere? Per essere onesto, non capisco. All'inizio ho pensato che fosse previsto un framework, ma no, nessuna classe wrapper per indicatori, ordini, algoritmi standard di decisione, niente. Anche se molto più leggibile è questo costrutto: fast.Get(2)>=slow.Get(1); (è solo un esempio), ma la dichiarazione:
CMA fast=nuovo CMA(NULL,0,12,...);
CMA slow=nuovo CMA(NULL,0,100,...);
Ora possiamo discuterne, mentre tu, IMHO, stai calpestando il punto.
per esempio, invece di fast.Get(2)>=slow.Get(1); è un codice abbastanza legale e funzionante:
table[FAST_MA][1] >=table[SLOW_MA][2]
funziona come un foglio di calcolo, con excel. È riassunto in una tabella, non per singole maniglie, perché i dati (formule) possono essere interdipendenti.
Si potrebbe fare (solo che non l'ho ancora fatto in una biblioteca specifica):
fast=table[FAST_MA]; slow=table[SLOW_MA];
e poi fast[2]>slow[1] è ancora più facile da leggere
e tutti i calcoli interni saranno eseguiti "su richiesta".
anche per esempio, invece di fast.Get(2)>=slow.Get(1); codice abbastanza legale e funzionante:
table[FAST_MA][1] >=table[SLOW_MA][2]
funziona come con un foglio di calcolo, con Excel. È riassunto in una tabella, non per singole maniglie, perché i dati (formule) possono essere interdipendenti.
Si può fare (solo che non l'ho ancora fatto in una biblioteca specifica):
fast=table[FAST_MA]; slow=table[SLOW_MA];
e poi fast[2]>slow[1] si legge ancora più facilmente
e tutti i calcoli interni saranno fatti "su richiesta".
Sono d'accordo, è molto difficile leggere il tuo codice, anche se conosci il linguaggio.
In effetti, questa regola funziona per qualsiasi codice di terzi. L'unica domanda è quale codice non è difficile ma più facile da leggere.
E qui è più facile leggere e modificare quasi sempre il codice MQL4. Gli sviluppatori hanno indovinato una volta.
In effetti, questa regola funziona per qualsiasi codice di terzi. L'unica domanda è quale codice non è difficile ma più facile da leggere.
Ed è più facile leggere e modificare quasi sempre il codice MQL4. Gli sviluppatori hanno indovinato una volta.
Ma lasciate che vi faccia una domanda. Qual era l'ipotesi? Il C/C++ standard, tranne che per query specifiche relative al trading e ai grafici, può essere considerato come "windows.h" in C++.
Quindi, rispetto agli sviluppatori per non reinventare la ruota, anche se proibire i link è un minus inequivocabile, quando sono caduto in C/C++ dopo mql, non ho potuto gioire. Ecco perché, se succede un miracolo, forse dovreste considerare, come alternativa, come C# usafe, specialmente per persone come me, come se voleste colpire il muro, uccidetevi, vi abbiamo avvertito.
Mi permetta di farle una domanda. Qual è l'ipotesi?
Kodobase è pieno di EAs MT5 che sono remake di EAs MT4. Confrontate il codice dell'originale e del remake.
Ovviamente, capire la logica dell'originale MT4 è molto più facile. Ma è ancora più facile quando c'è bisogno di correggere qualcosa in TS. Non per niente MQL4 è uno standard per la discussione degli algoritmi di trading sui forum di tutto il mondo. Nessun altro linguaggio, ma MQL4. E ha giocato un grande ruolo nella popolarità di MT4, non il contrario.
E se parliamo di conversioni MT5, sono storte - non sempre funzionano. Un semplice esempio. Si invia una richiesta di chiusura di una posizione ma si riceve un ordine di compravendita invece di chiuderla. Ci sono un sacco di trucchi che devono essere risolti per andare al conto reale. Con MT4 è semplice e affidabile.
Il kodobase è pieno di EAs MT5 che sono remake di EAs MT4. Confrontate il codice dell'originale e del remake.
Ovviamente è molto più facile capire la logica dell'originale MT4. Ma è ancora più facile quando c'è bisogno di correggere qualcosa in TS. Non per niente MQL4 è uno standard per la discussione degli algoritmi di trading sui forum di tutto il mondo. Nessun altro linguaggio, ma MQL4. E ha giocato un grande ruolo nella popolarità di MT4, non il contrario.
E se parliamo di conversioni MT5, sono storte - non sempre funzionano. Un semplice esempio. Si invia una richiesta di chiusura di una posizione ma si riceve un ordine di compravendita invece di chiuderla. Ci sono un sacco di trucchi che devono essere affrontati per andare al conto reale. Con MT4 è semplice e affidabile.
Quindi è un'assurdità lavorare con gli ordini/posizioni per analogia. Ho una classe wrapper per questo in mql4 e due diverse in mql5 perché è un'entità in mt4 e due diverse in mt5. Ora ho intenzione di implementare una classe wrapper per loro e dimenticare di lavorare con gli ordini come ho fatto per mezzo anno in mql4.
Sai, anche mt5 è stato creato per lavorare su exchange e lì hanno un altro principio di lavoro con ordini/posizioni, quindi impara la matematica e non lamentarti, tutto va bene e funziona bene lì, ma prima dobbiamo imparare le meccaniche di trading di exchange e forex e tenere conto delle loro differenze. Tutto ciò che è necessario per fare questo, gli sviluppatori lo hanno dato e descritto nelle banchine, e poi sta a voi.
Cercate di allargare i vostri orizzonti, perché quello che avete scritto è davvero lagnoso.
Sembra essere una stampella. Oltre a pulire i buffer, che il terminale creerà comunque, aggiungiamo anche array doppi. Capisco che hai intenzione di riservare la memoria per loro fino alla profondità completa della storia (per M1 USHORT_MAX, se ricordo bene *8 byte) o hai intenzione di usare ArrayResize costoso regolarmente nel processo di funzionamento?
Io alloco la memoria per loro, ovviamente. Ad una profondità non superiore a quella necessaria per i calcoli e il debug. Nel frammento dato è 30, che è più che sufficiente. Se da qualche parte sarà necessario calcolare per esempio la deviazione standard di profondità 50, allora la cache dovrebbe essere aumentata. Ed è solo per velocizzare i calcoli.
Cercate di allargare i vostri orizzonti, perché quello che avete scritto è davvero lagnoso.
Sto bene, ma questo è il modo in cui il collegamento tra posizione e ordine è implementato in mql5 (come parte dell'ultimo lavoro era, in linea di principio, in questa forma sarà già incluso nella libreria per i conti di copertura).