Discussione sull’articolo "Un Gestore degli Ordini Virtuale per tenere traccia degli ordini all'interno dell'ambiente MetaTrader 5 incentrato sulla posizione" - pagina 5

 
Alain Verleyen:
Questa libreria è ora per lo più obsoleta in quanto la MT5 fornisce un conto di copertura. È ancora possibile utilizzarla su un conto di compensazione, ma ne vale davvero la pena.

La mia ea è di tipo a griglia in espansione e opera su un solo simbolo, quindi ho bisogno di monitorare ogni trade o livello della griglia individualmente in modo da sapere dove aprire il livello successivo. Su MT4 lo facevo guardando l'elenco dei trade aperti e usandoli per calcolare la posizione in cui devo aprire il trade successivo nella griglia. Su MT5 ho scoperto che scarica tutti i trade in un'unica grande posizione, il che uccide completamente questo metodo.Per esempio, non posso avere due operazioni di acquisto aperte nella MT5, perché le combina in un'unica posizione. Come posso calcolare dove sarà il sesto livello di una griglia di acquisto se non so dove sono i livelli dall'uno al cinque? Spero che capiate cosa intendo. Questa libreria era l'unico modo che ho trovato per aggirare il problema. Sulla MT4 uso anche numeri magici unici su ogni operazione per identificare ogni livello della griglia. Su MT5 ho scoperto che non è possibile impostare numeri magici unici, quindi li memorizzerò su disco. Se esiste un modo migliore per gestire i livelli della griglia in questo modo su MT5, sono ansioso di imparare.

L'ea è lunga circa 6000 righe, quindi non ho molta voglia di riscriverla. Ho passato la maggior parte delle 2 settimane a farla compilare correttamente su MT5 e sono sicuro che funzionerà bene una volta che avrò cambiato la memorizzazione dei numeri magici su disco invece che sul server del broker.

Come nota positiva, ho scoperto come correggere gli errori nella libreria VOM, quindi spero che questo aiuti qualcuno. Utilizzando la versione 2 della libreria, è necessario modificare la riga 855 del file virtualordermanager.mqh da :

MtRequest.type_filling=ORDER_FILLING_FOK;

a

MtRequest.type_filling=SYMBOL_FILLING_FOK;

e poi si apriranno correttamente le negoziazioni senza errori.

 
kenshin71:

La mia ea è del tipo a griglia in espansione e opera su un solo simbolo, quindi ho bisogno di tenere traccia di ogni trade o livello della griglia individualmente in modo da sapere dove aprire il livello successivo. Su MT4 lo facevo guardando l'elenco dei trade aperti e usandoli per calcolare la posizione in cui devo aprire il trade successivo nella griglia. Su MT5 ho scoperto che scarica tutti i trade in un'unica grande posizione, il che uccide completamente questo metodo.Per esempio, non posso avere due operazioni di acquisto aperte nella MT5, perché le combina in un'unica posizione. Come posso calcolare dove sarà il sesto livello di una griglia di acquisto se non so dove sono i livelli dall'uno al cinque? Spero che capiate cosa intendo. Questa libreria era l'unico modo che ho trovato per aggirare il problema. Sulla MT4 uso anche numeri magici unici su ogni operazione per identificare ogni livello della griglia. Su MT5 ho scoperto che non è possibile impostare numeri magici univoci, quindi li memorizzerò su disco. Se esiste un modo migliore per gestire i livelli della griglia in questo modo su MT5, sono ansioso di imparare.

L'ea è lunga circa 6000 righe, quindi non ho molta voglia di riscriverla. Ho passato la maggior parte delle 2 settimane a farla compilare correttamente su MT5 e sono sicuro che funzionerà bene una volta che avrò cambiato la memorizzazione dei numeri magici su disco invece che sul server del broker.

Come nota positiva, ho scoperto come correggere gli errori nella libreria VOM, quindi spero che questo aiuti qualcuno. Utilizzando la versione 2 della libreria, è necessario modificare la riga 855 del file virtualordermanager.mqh da :

a

e poi aprirà correttamente le operazioni senza errori.

Ecco perché vi ho detto che ora esiste un conto di copertura, che dovreste usare visto che a quanto pare fate trading sul Forex. Il conto che lei descrive è un conto di compensazione.
 
Grazie Alain, ora capisco cosa intendi. Mi scuso per non aver prestato prima molta attenzione a ciò che hai detto sull'hedging. Mi stava facendo impazzire cercare di far funzionare questa VOM e tutte le altre modifiche necessarie per far funzionare la mia ea su MT5. Penso che mi prenderò una pausa e tornerò quando avrò dormito un po'.Tuttavia, credo che dovrò scrivere una versione specifica per la MT5 partendo da zero. Finora ho cercato di creare una versione che funzionasse sia per la MT4 che per la MT5 utilizzando la compilazione condizionale, ma questa idea non sta funzionando in modo così pulito come vorrei. Grazie ancora per avermi indicato la giusta direzione.
 
Alain Verleyen:
Questa libreria è ora per lo più obsoleta in quanto la MT5 fornisce un conto di copertura. Può ancora servire sul conto di netting, ma ne vale davvero la pena.

sì) una cosa così comune nello sviluppo di SW

 
kenshin71:
Grazie Alain, ora capisco cosa intendi. Mi scuso per non aver prestato prima molta attenzione a ciò che hai detto sull'hedging. Mi stava facendo impazzire cercare di far funzionare questa VOM e tutte le altre modifiche necessarie per far funzionare la mia ea su MT5. Penso che mi prenderò una pausa e tornerò quando avrò dormito un po'.Penso però che dovrò scrivere una versione specifica per MT5 partendo da zero. Finora ho cercato di creare una versione che funzionasse sia per MT4 che per MT5 utilizzando la compilazione condizionale, ma questa idea non sta funzionando in modo così pulito come vorrei. Grazie ancora per avermi indicato la giusta direzione.
Sei riuscito a farlo funzionare? Vorrei proseguire da dove hai lasciato, se è possibile condividere le correzioni che hai dovuto apportare. Purtroppo ho bisogno di usare un conto MT5 con netting e devo usare VOM per l'hedging virtuale.