Errori, bug, domande - pagina 2095

 

C'è un nuovo bug nel tester di diffusione. È presente nella modalità visiva, così come nella modalità standard (l'esperto vede gli spread gonfiati).

Potete controllare eseguendo l'esperto MA dagli esempi standard, con parametri predefiniti.

Per alcune date lo spread si allarga da 2-5 a 200-500 per tutto il giorno dalle 0:00 alle 23:59. L'ho controllato su 2 società di intermediazione, il problema probabilmente non è nelle quotazioni ma nel tester stesso.

Ecco un esempio per la data 16.10.2017. Il test dovrebbe essere eseguito dal 16.10.2017. Sullo sfondo c'è il terminale con il grafico scrollato fino a quella data - lo spread lì è nella gamma normale.

Un altro esempio su un altro. UN ALTRO ESEMPIO DA UN'ALTRA SOCIETÀ DI INTERMEDIAZIONE

Uso un Expert Advisor che controlla gli spread e sono questi 200-500 che vede. Di conseguenza, lavora tutto il giorno senza seguire l'algoritmo.

L'altra data trovata è il 19.09.2017. Ha eseguito il test da settembre a oggi - circa il 20-30% dei giorni con spread di sovraprevisione. Ha visto una sovraprevisione fino al 2000.

Invio a SD.

PS. Ha risposto. Sarà risolto nella nuova build.
 
elibrarius:

...

Invio a SD.

Aspettando anche una risposta su questo problema:

Aperto, Iniziato: 2017.12.16 14:36, #1911211

 

OrderSend su MetaQuotes-Demo si blocca - a volte funziona per pochi secondi, a volte lo script non può essere rimosso (solo chiudendo il terminale).

 
Diversi errori in TRADE_ACTION_CLOSE_BY
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

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

void OnStart()
{
  MqlTradeRequest Request = {0};
  MqlTradeResult Result;      
      
  Request.action = TRADE_ACTION_CLOSE_BY;
  Request.position = OrderSend(_Symbol, OP_SELL, 0.01, Bid, 100, 0, 0);
  Request.position_by = OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, 0);

  Request.symbol = _Symbol; // Если убрать эту строку, то сообщения в логе изменятся

  Print(OrderSend(Request, Result)); // false
}

Risultato

'7489613': instant sell 0.01 GBPUSD at 1.34334 (deviation: 100)
'7489613': accepted instant sell 0.01 GBPUSD at 1.34334 (deviation: 100)
'7489613': deal #176902665 sell 0.01 GBPUSD at 1.34334 done (based on order #193547458)
'7489613': order #193547458 sell 0.01 / 0.01 GBPUSD at 1.34334 done in 73.458 ms
'7489613': instant buy 1.00 GBPUSD at 1.34342 (deviation: 100)
'7489613': accepted instant buy 1.00 GBPUSD at 1.34342 (deviation: 100)
'7489613': deal #176902666 buy 1.00 GBPUSD at 1.34342 done (based on order #193547459)
'7489613': order #193547459 buy 1.00 / 1.00 GBPUSD at 1.34342 done in 76.044 ms
'7489613': failed close position #193547459 buy 0.99 GBPUSD by position #193547458 [Invalid request]


Tutto in realtà si sovrappone perfettamente, ma solo nei log ci sono messaggi errati, e il ritorno di OrderSend è negativo. Se si rimuove la linea evidenziata nel sorgente, si può vedere un messaggio completamente inadeguato nei log.

 

ME Styler bug MT4/MT5

 #define  f(x) x   //пробел вначале строки и перед конечным выражением
#define  f(x) x    //стилизатор удалил пробел в начале строки. Пробел перед конечным выражением остался

 #define  f(x) (x)   //пробел вначале строки и перед конечным выражением, ЗАКЛЮЧЕННЫМ В СКОБКИ
#define  f(x)(x) //стилизатор удаляет не только пробел в начале строки, но и разделяющий пробел между аргументом и конечным выражением. 

//В итоге компилятор выдает ошибку во втором случае
//'(' - unexpected in macro definition

 

Ticchettii M1 reali. Quando lo spread è negativo nella finestra dei dati del tester (modalità vis.), lo spread diventa errato. Il tuo server, 2017.10.23 01:00 e 01:01 minuti

Fatto un Expert Advisor che controlla lo spread. Quando lo spread è negativo l'Expert Advisor vede lo spread sbagliato, - aumentato di 1. Lo screenshot mostra -1 in EA, -2 sul grafico. Se lo spread è positivo, tutto è corretto in Expert Advisor.

Lo spread sui tick reali può essere molto diverso dallo spread del prezzo di apertura. Ecco un esempio con una differenza di 39 punti. 2017.10.23 00:53
Sui prezzi di apertura:


Su
zecche vere:

Qualcosa che ho pensato dovrebbe corrispondere in entrambe le modalità...

 
elibrarius:

Ho fatto un Expert Advisor che controlla lo spread. Se lo spread è negativo, l'Expert Advisor vede lo spread sbagliato - aumentato di 1. Lo screenshot mostra -1 in Expert Advisor, -2 sul grafico. Quando lo spread è positivo, tutto è corretto in Expert Advisor.

Sono sicuro che hai fatto un errore nel codice quando hai calcolato lo spread. Se non riesci a trovarlo, per favore mostra il codice.

 

che cosa è successo alle funzioni Copy...? Prima restituivano le serie temporali, ma ora no:


In linea di principio non è difficile espandere l'indicizzazione dell'array da solo, ma il codice precedente in cui ho usato funzioni che espandono le serie temporali dopo Copy... probabilmente non funzionerà ora
 
Konstantin:

che cosa è successo alle funzioni Copy...? Prima restituivano la serie temporale, ma ora no:


Fondamentalmente non è difficile espandere l'indicizzazione dell'array da soli, ma il codice precedente in cui ho usato funzioni che espandono le serie temporali dopo Copy... probabilmente non funzionerà ora

Questo era originariamente il caso ed è scritto nell'aiuto.


 
fxsaber:

Sono sicuro che hai fatto un errore nel codice quando hai calcolato lo spread. Se non riesci a trovarlo, per favore mostrami il codice.

Hm. Trovate ))))

int OnInit()
  {
   return(INIT_SUCCEEDED);
}

void OnTick()
  {
  int s[];
  CopySpread(_Symbol,_Period,0,1,s);
  Print(s[0]);
  }

Motivazione: