Errori, bug, domande - pagina 1815

 
Errore di compilazione
template<typename T>
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?

 
Sergey Kudryavtsev:

Penso che dovrebbe dare un volume eseguito (0 nel mio caso) o mi sbaglio?

Questo era originariamente il caso

Forum sul trading, sistemi di trading automatico e test di strategia

Biblioteche: MT4Orders

fxsaber, 2017.02.10 12:01

Risultato dello script
OrderSend(NULL,OP_BUYLIMIT,1,Ask-100*Point,100,0,0,My Order)
Request.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
Ora è facile capire come formare correttamente le relative richieste di trade in MT5.
 
fxsaber:
È stato così fin dall'inizio!
Grazie!
 
Una ricerca per "MqlTradeResult " non può produrre un link alla descrizione nella Guida.
 

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.158 Network '2250': disconnected from FXOpen-MT5
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.

Cancellato tutti i file Test.ex*. Il messaggio continua a comparire.
 

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.action = TRADE_ACTION_DEAL (1)
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

NO      0       08:51:22.422    Trades  '5245006': instant sell 0.01 EURCAD at 1.39016, close #134821044 buy 0.01 EURCAD 1.39043 (deviation: 100)
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.action = TRADE_ACTION_PENDING (5)
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

HP      0       08:51:43.740    Trades  '5245006': buy limit 0.01 EURCZK at 27.04300
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 CBaseObject { };

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