
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
Propongo di migrare double MarketInfo(string symbol, int type) come un insieme di funzioni che restituiscono diversi tipi di dati, in base alla specifica dei parametri di input.
Ad esempio, queste funzioni:
int MarketInfoInt(simbolo stringa, tipo int );
string MarketInfoStr(simbolo stringa, tipo int )....
Una volta ho comunicato agli sviluppatori la questione dei RIFERIMENTI e dei risultati delle funzioni, ma si sono rifiutati di farlo (ed è un peccato).
PS
Su questa base, penso che la soluzione migliore per il momento sia la libreria MarketInfo, che conterrà tutte le funzioni necessarie.
A proposito, questo è esattamente ciò che ho fatto nella mia libreria :)
A mio parere, sono necessarie due funzioni per gestire il TF in un ambiente di migrazione:
1. Converte il numero di secondi in TF - diciamo ENUM_TIMEFRAMES SecondToPeriod (int Value);
2. Converte il periodo in secondi - diciamo int PeriodToSecond(ENUM_TIMEFRAMES Value).
Cosa che ho fatto con successo nel mio modulo di migrazione all'inizio (c'è anche un'opzione DLL).
PS
Per massimizzare la conformità con MQL4, personalmente mi sono sbarazzato di tutti i periodi non standard per esso
la funzione è buona e utile, ma l'esecuzione....
Lo farei in questo modo
in tutte le funzioni è sufficiente definire le dimensioni degli array
proprio come az buki vedi.
la funzione è buona e utile, ma l'esecuzione..... è un'eresia.
il vostro lavoro?
DOVE BREAK!!!!!! programmatori di dolore!!!!
in tutte le funzioni basta definire la dimensione degli array
semplicemente come az'buki vedi.
Non sempre, si veda la sezione Accesso alle serie temporali e agli indicatori:
Funzioni per lavorare con le serie temporali e gli indicatori. Una serie temporale si differenzia da un normale array per il fatto che l'indicizzazione degli elementi della serie temporale avviene dalla fine dell'array all'inizio (dal dato più recente a quello più vecchio). Si raccomanda di utilizzare solo array dinamici per copiare i valori delle serie temporali e degli indicatori, perché le funzioni di copia allocano le dimensioni necessarie degli array-ricevitori di valori in modo indipendente.
Esiste un'importante eccezione aquesta regola : se la copia dei valori delle serie temporali e degli indicatori deve essere effettuata frequentemente, ad esempio a ogni chiamata di OnTick() negli Expert Advisor o a ogni chiamata di OnCalculate() negli indicatori, allora in questo caso è meglio utilizzare array distribuiti staticamente, perché le operazioni di allocazione della memoria per gli array dinamici richiedono un tempo aggiuntivo e ciò influisce sui test e sull'ottimizzazione degli Expert Advisor.
Non sempre, vedere Accesso alle serie temporali e agli indicatori:
Come dimostra la mia pratica, è meglio farlo che non farlo.
Altrimenti si verifica un errore di accesso ai dati
soprattutto con gli array globali.
In primo luogo, perché in un array con una dimensione definita l'indicizzazione è statica e non ci sono questi momenti pericolosi di array di inversioni.
In secondo luogo, lo spazio per gli array viene allocato con maggiore parsimonia.
e in terzo luogo, la probabilità di un errore di accesso all'array si riduce di molte volte.
Per questo motivo ritengo che queste funzioni necessitino semplicemente di una funzione per determinare la dimensione dell'array.
la funzione è buona e utile, ma ecco l'esecuzione....
Io lo farei in questo modo
L'articolo è stato modificato:
Ho iniziato a dubitare molto della funzionalità di questo progetto. Per quanto mi sforzassi di capire la logica del blocco, non ci riuscivo (e ci ho provato molto)....