Errori, bug, domande - pagina 1815
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
class A { public:
A( const T * ) {} //Error: 'T' - unexpected token
};
class B {};
void OnStart()
{
A<const B> a( new B );
}
Ciao, sto avendo il seguente risultato nel mio conto demo su Otkritie
succede quanto segue: se modifico e cancello con successo un ordine
di tipo ORDER_FILLING_RETURN(un ordine limite regolare)
il volume variabile dalla strutturaMqlTradeResult è stabilmente uguale alla dimensione iniziale dell'ordine (in questo caso, l'ordine non è stato eseguito affatto).
Sembra che dovrebbe dare un volume eseguito (0 nel mio caso), o mi sbaglio?
Penso che dovrebbe dare un volume eseguito (0 nel mio caso) o mi sbaglio?
Forum sul trading, sistemi di trading automatico e test di strategia
Biblioteche: MT4Orders
fxsaber, 2017.02.10 12:01
Risultato dello scriptRequest.action = TRADE_ACTION_PENDING (5)
Request.magic = 0
Request.order = 0
Request.symbol = EURUSD
Request.volume = 1.0
Request.price = 1.06356
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_IOC (1)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = My Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 57777
Result.volume = 1.0
Result.price = 1.06356
Result.bid = 0.0
Result.ask = 0.0
Result.comment = My Order
Result.request_id = 592
Result.retcode_external = 0
È stato così fin dall'inizio!
Durante l'esecuzione di OrderSend, non è possibile uscire dalla modalità debug o cancellare l'EA/script.
A volte OrderSend funziona per 180 secondi, con timeout della richiesta. Bisogna aspettare tre minuti per poter compilare nell'editor, se lo script è stato eseguito in modalità debug.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Bug, bug, domande
fxsaber, 2017.02.16 07:55
2017.02.16 08:53:03.285 MQL5 wrong type, loading of Test failed
2017.02.16 08:53:03.813 Network '5122740': authorized on MetaQuotes-Demo through Access Point EU Amsterdam (ping: 50.93 ms)
Che cos'è?
Non c'è niente che gira sull'unico grafico. Ogni volta che cambio account appare questo messaggio.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Una cache pazzesca di agenti di prova
Renat Fatkhullin, 2017.02.21 04:04
Prova la nuova build di venerdì di MT5 1545 - qualcosa è stato migliorato.Si noti inoltre che abbiamo oltre 230.000 conti permanentemente attivi su MetaQuotes-Demo MT5 ed è un vero baccanale di trading.
Penso che il baccanale sia ancora più potente nello scambio, ma copiando.
1545 - sembra migliorare. Ma tutto scivola via.
Richiesta/risposta.
Request.magic = 0
Request.order = 0
Request.symbol = EURCAD
Request.volume = 0.01
Request.price = 1.39016
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_SELL (1)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment =
Request.position = 134821044
Request.position_by = 0
Result.retcode = 10009
Result.deal = 118450870
Result.order = 134821045
Result.volume = 0.01
Result.price = 1.39016
Result.bid = 1.39016
Result.ask = 1.39043
Result.comment = Request executed 57.225 + 18.108 ms
Result.request_id = 4096
Result.retcode_external = 0
Evidenziato - questo è quanto tempo una voce è apparsa nella storia degli ordini e delle transazioni dopo un OrderSend di successo. Un sacco!
Log
MM 0 08:51:22.480 Trades '5245006': accepted instant sell 0.01 EURCAD at 1.39016, close #134821044 buy 0.01 EURCAD 1.39043 (deviation: 100)
LH 0 08:51:22.480 Trades '5245006': deal #118450870 sell 0.01 EURCAD at 1.39016 done (based on order #134821045)
EQ 0 08:51:22.480 Trades '5245006': order #134821045 sell 0.01 / 0.01 EURCAD at 1.39016 done in 57.165 ms
E un altro caso di esecuzione dello stesso script.
Richiesta/Risposta
Request.magic = 0
Request.order = 0
Request.symbol = EURCZK
Request.volume = 0.01
Request.price = 27.043
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = Benchmark_Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 134821281
Result.volume = 0.01
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Request executed 392.585 + 0.299 ms
Result.request_id = 4457
Result.retcode_external = 0
Log
RE 0 08:51:44.133 Trades '5245006': accepted buy limit 0.01 EURCZK at 27.04300
JS 0 08:51:44.133 Trades '5245006': order #134821281 buy limit 0.01 / 0.01 EURCZK at market done in 392.533 ms
Ping ~54 ms.
È impossibile copiare qualcosa dalla finestra di allarme.
Si prega di aggiungere alla finestra degli avvisi la possibilità di selezionare diverse linee, cliccando con il tasto destro del mouse sul menu "Copia" e "Vai al diario" - per mostrare nell'Expert Log la linea corrispondente all'avviso.
Buon pomeriggio.
Mi sono trovato di fronte a un comportamento scorretto (secondo me) dei puntatori di oggetti. È rilevante sia per MT5 che per MT4. Si prega di chiarire se questo è un bug o una caratteristica. Ecco il codice:
class CDescObject:public CBaseObject { };
void OnStart()
{
CDescObject *obj1 = new CDescObject(), *obj2;
CBaseObject *baseObj1 = obj1;
obj2 = baseObj1;//Пока не грохнули объект - no problem
delete(obj1);
//Если добавить эти строки, ошибки в последней строке не будет
//if(CheckPointer(baseObj1)==POINTER_INVALID)
//baseObj1 = NULL;
obj2 = obj1;//Указатели одного типа - no problem
obj2 = baseObj1;//здесь ошибка "Invalid pointer access"
}
Capisco che i puntatori qui non sono come in C, ma hanno un ricco mondo interno. Eppure sarebbe più logico se l'incarico nell'ultima riga passasse pacificamente. Nel mio caso, il controllo per POINTER_INVALID era dopo l'assegnazione, quindi non ho capito subito perché si verifica "Invalid pointer access", anche se nessuno fa alcun accesso.
P. S.: Non si sa mai - Metatrader 5 build 1545, Win 7 SP1 x86