Errori, bug, domande - pagina 2127

 
Slava:

Cosa vuol dire "è diventato"?

È sempre stato così. Dall'inizio del nuovo quattro.

Non voglio discutere e dimostrare, ma 2-3 settimane fa sembra essere stato. Stavo sistemando un Expert Advisor per una persona con pulsanti e campi di input.
Ho dovuto aggiungere un pulsante e un campo di input. Per determinare il rientro dall'angolo, ho sempre creato l'oggetto manualmente e dopo averlo posizionato dove era necessario, ho cercato tra le proprietà e aggiunto questi valori al codice. Dopo tutto, non avrei potuto sognare una cosa simile...

Potrei supporre che stavo spostando un oggetto creato programmaticamente. Ma anche questo è impossibile ora: l'oggetto è evidenziato, ma non si può spostare.

 
gli agenti di prova stanno sovraccaricando il disco rigido. Cosa fare - cosa configurare. Ci sono 8 server a 120gb ciascuno
 
MQL5 Cloud Europe 1     genetic pass  tested with error "wrong timeframe request in Open Prices mode in OnTick function (EURUSD,M1)" 


Ciao a tutti.

Qualcuno ha riscontrato questo errore durante l'ottimizzazione nel cloud solo su Open Prices?


L'errore non è costante. Cioè si verifica "molto raramente" ma quando eseguo 10.000 risultati, salta fuori 50 volte.

Non cambio TF durante l'ottimizzazione.

 
Vladislav Andruschenko:

L'errore non è costante. Cioè si verifica "molto raramente", ma quando si eseguono 10.000 risultati, salta fuori 50 volte.

È necessario ottenere tutte le informazioni necessarie dall'agente attraverso il telaio per analizzarlo.

 
fxsaber:

È necessario ottenere tutte le informazioni necessarie dall'agente attraverso una cornice per l'analisi.

Questo succede sempre al 19%. Ho trovato un thread che dice che è a causa della storia.
Lo proverò.
 

L'intera sequenza di eventi OnTradeTransaction segue il completamento di OrderSend.

EA

void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest&, const MqlTradeResult& )
{ 
  static bool FirstRun = true;  
  static ulong StartTime;
  
  if (FirstRun)
  {
    StartTime = GetMicrosecondCount();
    
    FirstRun = false;
  }

  Print(EnumToString(Trans.type));
  Print((GetMicrosecondCount() - StartTime) / 1000);    
}

Invia manualmente un ordine di compravendita.

Log

2018.02.14 09:41:46.671 '8854170': instant sell 1.00 EURUSD at 1.23673
2018.02.14 09:41:46.853 '8854170': accepted instant sell 1.00 EURUSD at 1.23673
2018.02.14 09:41:46.853 '8854170': deal #192088422 sell 1.00 EURUSD at 1.23673 done (based on order #208541700)
2018.02.14 09:41:46.853 '8854170': order #208541700 sell 1.00 / 1.00 EURUSD at 1.23673 done in 190.608 ms


Risultato di Expert Advisor

2018.02.14 09:41:46.853 TRADE_TRANSACTION_ORDER_ADD
2018.02.14 09:41:46.853 0
2018.02.14 09:41:46.853 TRADE_TRANSACTION_DEAL_ADD
2018.02.14 09:41:46.853 1
2018.02.14 09:41:46.853 TRADE_TRANSACTION_ORDER_DELETE
2018.02.14 09:41:46.853 1
2018.02.14 09:41:46.853 TRADE_TRANSACTION_HISTORY_ADD
2018.02.14 09:41:46.853 2
2018.02.14 09:41:46.853 TRADE_TRANSACTION_REQUEST
2018.02.14 09:41:46.853 2


Possiamo vedere perfettamente dalla colonna del tempo e dai dati numerici dell'EA che la durata dell'esecuzione dell'ordine di compravendita non ha alcun effetto sulla sequenza degli eventi OnTradeTransaction. Tutta l'asincronia va all'inferno! Sono riusciti a rovinare tutto così male. Costruire 1755.

 

Il simbolo ha cifre == 3

con molte più cifre visualizzate nel registro

'18000903': failed modify order #896199 buy limit 0.01 BTCUSD at 616.00100 sl: 0.00000 tp: 0.00000 -> 616.00100, sl: 0.00000 tp: 616.10100 [Invalid request]
 
La colonna "Commento" manca nella vista "Ordini e Contratti" della cronologia del trading.
 
Questo non è un cattivo bug del terminale, ma della piattaforma MT5
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, Bid);
  
//  OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask, 100, 0, 0);
}

Eseguire su MQ-Demo su qualche simbolo che si muove lentamente. Per esempio, EURHUF.

Lo script apre una posizione BUY con TP = Bid. Cioè la posizione dovrebbe chiudersi immediatamente. Ma il TP sarà controllato per il rispetto della condizione di accettazione solo alla prossima spunta!

La posizione non sarà chiusa immediatamente fino al prossimo tick. Inoltre, se il prossimo tick ha Bid < TP, il TP rimarrà senza alcuna accettazione.


Lo stesso vale per gli ordini limite (linea commentata). La situazione è simile nel Tester.

 
fxsaber:
Questo non è un bug nel terminale, ma nella piattaforma MT5

Eseguire su MQ-Demo su qualche simbolo lento. Per esempio, EURHUF.

Lo script apre una posizione BUY con TP = Bid. Cioè la posizione dovrebbe chiudersi immediatamente. Ma il TP sarà controllato per il rispetto della condizione di accettazione solo alla prossima spunta!

La posizione non sarà chiusa immediatamente fino al prossimo tick. Inoltre, se il prossimo tick ha Bid < TP, il TP rimarrà senza alcuna accettazione.


Lo stesso vale per gli ordini limite (linea commentata). La situazione è simile in Strategy Tester.

Si prega di allegare un codice MQL5 pulito nelle domande su MQL5.

Sono stufo di vedere la vostra NASTY pubblicità a destra e a manca.