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
Gli ordini, le operazioni e le posizioni non sono comunque legati ai timeframe. O avete frainteso qualcosa o la vostra formulazione non è corretta.
Mi dispiace, ma credo che la mia scelta di parole sia confusa: per"intervallo di tempo" intendo "intervallo di date". Diciamo che voglio selezionare le transazioni/ordini effettuati in un determinato intervallo di date, come ad esempio le transazioni dal 2025-10-01 00:00:00 al 2025-10-22 23:59:59.
Se si desidera analizzare un sottoinsieme della cronologia delle transazioni, è più efficiente richiedere solo questa parte della cronologia prima del filtraggio, senza influenzare il codice di filtraggio stesso:
Se, per qualche motivo, si desidera selezionare un sottoinsieme (più ristretto) all'interno dell'intervallo globale applicato con HistorySelect, è ancora possibile farlo nel codice di filtraggio in questo modo:
{ // alcuni di questi vanno qui // HistorySelect(0, LONG_MAX); // HistorySelectByPosition(PositionID); ... DealTuple deals[]; if(SubrangeFrom != SubrangeTo && SubrangeFrom < SubrangeTo) { filter.let(DEAL_TIME, SubrangeFrom - 1, IS::GREATER).let(DEAL_TIME, SubrangeTo + 1, IS::LESS); } filter.let(DEAL_POSITION_ID, PositionID).select(deals, true); ... }La riga evidenziata in giallo imposta due condizioni per l'intervallo di date [SubrangeFrom, SubrangeTo] utilizzando i qualificatori aggiuntivi IS::GREATER e IS::LESS (per impostazione predefinita, non sono specificati in altre chiamate a let() e IS::EQUAL è normalmente utilizzato per i campi a valore singolo).
Conosco solo un motivo per applicare il sottofiltro per intervallo di date: è per il tempo di preparazione degli ordini (ORDER_TIME_SETUP), perché HistorySelect viene applicato a un'altra proprietà datetime degli ordini, ovvero il tempo di esecuzione dell'ordine (ORDER_TIME_DONE). Inoltre, potrebbe essere interessante filtrare un sottogruppo di ordini attivi (non presenti nella cronologia), se ce ne sono molti.
Come punto di partenza si può consultare lo script di esempio MQL5/Scripts/MQL5Book/p6/TradeHistoryPrint.mq5.Se si desidera analizzare un sottoinsieme della cronologia di trading, è più efficiente richiedere solo questa parte della cronologia prima del filtraggio, senza influenzare il codice di filtraggio stesso:
Se, per qualche motivo, si desidera selezionare un sottoinsieme (più ristretto) all'interno dell'intervallo globale applicato con HistorySelect, è ancora possibile farlo nel codice di filtraggio in questo modo:
La linea evidenziata in giallo imposta due condizioni per l'intervallo di date [SubrangeFrom, SubrangeTo] utilizzando i qualificatori aggiuntivi IS::GREATER e IS::LESS (per impostazione predefinita, non sono specificati in altre chiamate a let() e IS::EQUAL è normalmente utilizzato per campi a valore singolo).
Conosco solo un motivo per applicare il sottofiltro per intervallo di date: è per il tempo di preparazione degli ordini (ORDER_TIME_SETUP), perché HistorySelect viene applicato a un'altra proprietà datetime degli ordini, ovvero il tempo di esecuzione dell'ordine (ORDER_TIME_DONE). Inoltre, potrebbe essere interessante filtrare un sottogruppo di ordini attivi (non presenti nella cronologia), se ce ne sono molti.
Come punto di partenza si può consultare lo script di esempio MQL5/Scripts/MQL5Book/p6/TradeHistoryPrint.mq5.Correzione del bug MQL5/Include/MQL5Book/TradeUtils.mqh.
Un moderatore ha formattato il codice incollato in modo errato. Di solito, tale codice viene rimosso.
@StanislavKorotky Per favore, potete aiutarmi a esaminare questo errore, credo che sia iniziato dopo gli aggiornamenti di MT5 perché sapevo che il codice funzionava nei mesi precedenti senza alcuna modifica.
la conversione del tipo di parametro 'long[][2]' in 'string[][] &' non è consentita SymbolFilter.mqh 199 20
Sospetto che il codice seguente possa aiutare a replicare il problema:
Ciao @Paul Dick
Provare questo https://www.mql5.com/it/code/57233 per l'ordinamento degli array
Allego una versione aggiornata del file di calcolo del criterio diottimizzazione personalizzato basato su R2 - RSquared.mqh, in cui è stato corretto il calcolo per il caso di lotti variabili.
La qualità della stima è stata notevolmente migliorata: a giudicare dalla tabella dei risultati dell'ottimizzazione, è stata ottenuta la combinazione del fattore di recupero e dei parametri di Sharpe.
Esempio di utilizzo.