Hai scritto che non funziona con un volume di 0,07 o anche di 1. Come lo definisci? Lotto=0.07?
Non ero sicuro di aver scritto correttamente Mqlrequest e Mqlresult e così ho usato invece CTrade, ho scoperto che funzionava se usavo volumi fissi, e ora ho scoperto che posso moltiplicare i volumi fissi per interi, ma se provo a modificare i volumi con frazioni ottengo errori come invalid lotsize, il risultato del lotto modificato viene stampato con l'errore[volume non valido].
MetaNt: Normalize double è fornito un fix per i decimali complessi, lo proverò sul mio lotto dinamico.
Fisso.
Sembra che fosse uno dei miei fattori di scala da alcune equazioni che si trovano al di fuori del CT Buy/Sell. Non era un problema che avevo incontrato in mql4 quindi mi ci è voluto un po' per individuarlo, dovrò fare attenzione a questo se mql4 si aggiorna di nuovo.
Per chiunque altro abbia questo problema, usate 2 per la parte di cifra della funzione NormalizeDouble().
Sembra che mi stia imbattendo nello stesso problema qui. Ho confermato che la dimensione del lotto soddisfa i requisiti SYMBOL_VOLUME_MIN, SYMBOL_VOLUME_MAX e SYMBOL_VOLUME_STEP.
Per esempio ottengo questo:
2014.04.07 14:49:35 2014.04.04 16:00:00 CTrade::OrderSend: instant sell 0.53 EURUSD at 1.36934 sl: 1.37434 tp: 1.35934 [volume non valido]
Durante il backtesting dell'EA con questo simbolo e queste specifiche:
Qui il codice che sto usando per inviare l'ordine:
Mi sembra di incorrere nello stesso problema qui. Ho confermato che la dimensione del lotto soddisfa i requisiti SYMBOL_VOLUME_MIN, SYMBOL_VOLUME_MAX e SYMBOL_VOLUME_STEP.
Per esempio ottengo questo:
2014.04.07 14:49:35 2014.04.04 16:00:00 CTrade::OrderSend: instant sell 0.53 EURUSD at 1.36934 sl: 1.37434 tp: 1.35934 [volume non valido]
Durante il backtesting dell'EA con questo simbolo e queste specifiche:
Qui il codice che sto usando per inviare l'ordine:
EDIT:
Naturalmente posso piazzare manualmente operazioni con questa esatta dimensione del lotto.
Questa linea è senza effetto:
NormalizeDouble(trade_size,DecimalPoints);
Devi influenzare il risultato in una variabile, vedi la documentazione di NormalizeDouble.
Non gli piace la dimensione dinamica del lotto? Funziona con il ct trade, quando uso una dimensione di lotto fissa.
CTrade è un wrapper per OrderSend().
Hai scritto che non funziona con un volume di 0,07 o anche di 1. Come lo definisci? Lotto=0.07 ?
CTrade è un wrapper per OrderSend().
Hai scritto che non funziona con un volume di 0,07 o anche di 1. Come lo definisci? Lotto=0.07?
Sono decimali di una certa complessità, proverò a normalizzare il doppio.
Normalize double è fornito un fix per i decimali complessi, lo proverò sul mio lotto dinamico.
Fisso.
Sembra che fosse uno dei miei fattori di scala da alcune equazioni che si trovano al di fuori del CT Buy/Sell. Non era un problema che avevo incontrato in mql4 quindi mi ci è voluto un po' per individuarlo, dovrò fare attenzione a questo se mql4 si aggiorna di nuovo.
Per chiunque altro abbia questo problema, usate 2 per la parte di cifra della funzione NormalizeDouble().
007 dici?
Forse dovresti chiedere al signor Bond ;-)
Sembra che mi stia imbattendo nello stesso problema qui. Ho confermato che la dimensione del lotto soddisfa i requisiti SYMBOL_VOLUME_MIN, SYMBOL_VOLUME_MAX e SYMBOL_VOLUME_STEP.
Per esempio ottengo questo:
2014.04.07 14:49:35 2014.04.04 16:00:00 CTrade::OrderSend: instant sell 0.53 EURUSD at 1.36934 sl: 1.37434 tp: 1.35934 [volume non valido]
Durante il backtesting dell'EA con questo simbolo e queste specifiche:
Qui il codice che sto usando per inviare l'ordine:
EDIT:
Naturalmente posso piazzare manualmente operazioni con questa esatta dimensione del lotto.
Mi sembra di incorrere nello stesso problema qui. Ho confermato che la dimensione del lotto soddisfa i requisiti SYMBOL_VOLUME_MIN, SYMBOL_VOLUME_MAX e SYMBOL_VOLUME_STEP.
Per esempio ottengo questo:
2014.04.07 14:49:35 2014.04.04 16:00:00 CTrade::OrderSend: instant sell 0.53 EURUSD at 1.36934 sl: 1.37434 tp: 1.35934 [volume non valido]
Durante il backtesting dell'EA con questo simbolo e queste specifiche:
Qui il codice che sto usando per inviare l'ordine:
EDIT:
Naturalmente posso piazzare manualmente operazioni con questa esatta dimensione del lotto.
Questa linea è senza effetto:
NormalizeDouble(trade_size,DecimalPoints);Devi influenzare il risultato in una variabile, vedi la documentazione di NormalizeDouble.
trade_size=NormalizeDouble(trade_size,DecimalPoints);