Errori, bug, domande - pagina 2068

 

Una panoramica piuttosto interessante della nuova tecnologia WebAssemblysu https://habrahabr.ru/post/342180/

WebAssembly (WASM) — новый бинарный формат, позволяющий запускать код в браузере...

Applicazioni di WebAssembly:

-Tempo di caricamento inferiore
-Maggiore velocità di calcolo
-Utilizzare codice pronto per C/C++


Considerando le voci medie su un possibile servizio web per la compilazione del codice MQL,
c'è una ragionevole domanda sulla fattibilità di implementare il progetto di eseguire Expert Advisors personalizzati direttamente da un browser basato su WebAssembly.
Знакомство с WebAssembly
Знакомство с WebAssembly
  • 2012.11.17
  • habrahabr.ru
Эта статья основана на моём выступлении на ITSubbotnik, прошедшем в Рязани 14 октября 2017 года. На русском пока что довольно мало материала на эту тему, надеюсь что статья будет вам полезна. Disclaimer: Автор не является экспертом ни в WebAssembly, ни в JavaScript. Данная статья есть компиляция мыслей и идей, полученных из выступлений других...
 
Andrey Khatimlianskii:

Mettete fuori i registri, avrà più senso. Sia l'Expert Advisor che il terminale.

Scheda del terminale

2017.11.10 16:29:01.266 '8615385': order was opened : #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000
2017.11.10 20:37:38.949 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.277 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 closed at price 1.68356
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD closing at 0.00000 failed [Invalid parameters]

Esperto di schede

        Line 8103: 2    16:29:01.266    Forex V2 EURNZD,M1: open #4448742  sell 0.02 EURNZD at 1.68131 ok
        Line 8104: 0    16:29:01.266    Forex V2 EURNZD,M1: Order #4448742  open

        Line 10145: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 1 закрытия/удаления ордера #4448742  Ошибка: 3
        Line 10146: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10147: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 2 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10148: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10149: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 3 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10150: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10151: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 4 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10152: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10153: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 5 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10154: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10155: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 6 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10156: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10157: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 7 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10158: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10159: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 8 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10160: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10161: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 9 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10162: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10163: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 10 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10164: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10165: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 11 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10166: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10167: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 12 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10168: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10169: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 13 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10170: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10171: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 14 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10172: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10173: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 15 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10174: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10175: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 16 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10176: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10177: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 17 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10178: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10179: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 18 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10180: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10181: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 19 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10182: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10183: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 20 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10184: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10185: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 21 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10186: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10187: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 22 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10188: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10189: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 23 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10190: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10191: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 24 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10192: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10193: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 25 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10194: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10195: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 26 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10196: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10197: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 27 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10198: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10199: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 28 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10200: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10201: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 29 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10202: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10203: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 30 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10204: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        
        Line 10243: 2   20:37:39.760    ExpertName EURNZD,H1: close #4448742  sell 0.02 EURNZD at 1.68131 at price 1.68356

Nessuna chiusura avviene veramente dopo l'errore 3. L'ho capito.

L'Expert Advisor #1 sta chiudendo e il secondo stava cercando di chiudere la stessa posizione allo stesso tempo.

Ho sistemato la logica di lavoro e ora non ci sono errori.


MA: Il numero di errore cambia da #3 a #4108 quando i parametri passati a OrderClose() all'interno del ciclo rimangono invariati.

Perché viene lanciato prima l'errore #3 e poi #4108? - Questa è la domanda che rimane.

{Se guardiamo i tempi, allora abbiamo un tentativo di chiudere un ordine bloccato (nel qual caso l'errore 139 stesso non viene mostrato), ma dopo che è stato chiuso (e quindi l'ordine è sbloccato) otteniamo l'errore 3 }.


Perché il terminale non ci dà un errore specifico che l'ordine è bloccato e invece otteniamo un errore troppo generale 3?

 
Kirill Belousov:

MA: Cambia il numero di errore da #3 a #4108 quando i parametri passati a OrderClose() all'interno del ciclo sono invariati.

Perché l'errore #3 è il primo e poi il #4108? - Questa è la domanda che rimane.

Questa è la versione del codice in cui c'era 1 OrderSelect, vero? Allora il 4108 è giustificato.

3 è quando un altro EA chiude una posizione e 4108 è quando cerchiamo di chiudere una posizione già chiusa.

 
Andrey Khatimlianskii:

Questa è la versione del codice in cui c'era 1 OrderSelect, vero? Allora il 4108 è giustificato.

3 è quando un altro EA chiude una posizione, 4108 è quando cerchiamo di chiudere una posizione già chiusa.

Giusto.

Ma perché l'errore 139 non viene generato quando si cerca di chiudere un ordine che è già stato chiuso?

Dopo tutto, abbiamo piuttosto la situazione dell'errore 139. Non è così?

 

Testo di errore errato

void f( int &[] ) {}

class A
{
public:
  int Array[];
  
  void f2() const
  {
    f(this.Array); // 'Array' - constant variable cannot be passed as reference
  }
};
 
Non dovrebbe imprecare
Print(NULL); // 'NULL' - expression of 'void' type is illegal
 
Kirill Belousov:

Corretto.

Ma perché l'errore 139 non viene fuori quando si cerca di chiudere un ordine che è già stato mandato in chiusura?

Dopo tutto, abbiamo piuttosto la situazione dell'errore 139. Non è così?

Non lo so. Ma non può nemmeno essere chiamato un bug.

 
Andrey Khatimlianskii:

Non lo so. Ma è anche difficile chiamarlo un bug.

2017.11.10 16:29:01.266 '8615385': order was opened : #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000
2017.11.10 20:37:38.949 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.277 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 closed at price 1.68356
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD closing at 0.00000 failed [Invalid parameters]

Se guardate il log del terminale, il messaggio di errore 3 viene generato dopo la chiusura della posizione, non quando il blocco del server avrebbe dovuto essere rilevato.

Il messaggio di errore 139 avrebbe potuto essere mostrato quasi 0,5 secondi prima. Per tutto questo tempo, l'Expert Advisor si "blocca" per ottenere l'errore 3 dopo la chiusura dell'ordine.

E a proposito, l'errore 3 Invalid Parameters è nel log del terminale e 4108 solo per il suo output e solo nella scheda EA. Sembra che il 4108 sia l'elaborazione lato client.

Voglio solo sapere/capire la logica per metterla nel codice piuttosto che armeggiare con il metodo scientifico del calibro... )

In quale altra situazione si otterrebbe un errore 139 come questo...?

 
Kirill Belousov:

Quale situazione migliore di questa per ottenere un errore 139...?

Quando un ordine pendente/SL/TP viene attivato o una posizione viene chiusa da uno stop out (anche sul server).

Non conosco il 4108.
Ma di nuovo, non vedo il motivo di indagare - se 2 EAs simultaneamente danno un ordine di chiusura, uno di loro avrà sicuramente un errore (che differenza fa?).
L'elaborazione è molto semplice: fai OrderSelect e controlla OrderCloseTime.

 
Ilnur Khasanov:

Che cosa?
dal moderatore:
Purtroppo, a causa di un problema tecnico, il testo della descrizione è stato cancellato. Si prega di scriverlo di nuovo e di inviare il prodotto per la verifica.
Ci scusiamo per l'inconveniente causato.

Non è solo un inconveniente, è una rottura di scatole un paio di volte (ogni volta - un'attesa di 10 giorni), per poi cancellare e dire: ops, scusate, abbiamo cancellato, in qualche modo ripristinate voi stessi, poi aspettate altri 10 giorni. - E quando provo a farlo il sito va in crash...

Che diavolo è questo? Che tipo di inconveniente deve succedere perché questo si perda? Che non ci sia una storia da recuperare? Il messaggio di descrizione è stato in deposito per alcuni giorni.
Perché questa volta non è apparso il messaggio del moderatore?

So per certo che questo problema di cancellazione non accade una sola volta. Questo presunto glitch, in realtà non è un glitch (probabilmente in ritardo), perché non succede solo a me e non allo stesso tempo (il problema esiste da più di mezzo anno)! - Si prega di commentare...

E per favore correggetelo. Se non puoi, assumimi. Lo farò in una settimana, per 2.000 euro.

Che fiasco.

Recupereranno mai la roba cancellata? Metà della mia corrispondenza con il moderatore è sparita. I messaggi del forum sono spariti. E i moderatori hanno cancellato i messaggi che sono andati in bianco.
Perché non c'è una modalità di manutenzione? - È meglio dire in quest'ordine: prima si attiva il modo, poi il lavoro è in corso, poi si ripristina il modo.

Appena ho postato un messaggio, il sito è giù. Ho deciso di aggiornare - il sito è giù...

wtf per la seconda volta. il commento qui sopra è stato scritto 4 giorni fa. ora è tornato con un'osservazione che ho già corretto. ho postato una nuova versione del prodotto. ora è sparito. dov'è finita la nuova versione?
Questo non è un modo di lavorare - beh non è serio...
In un nuovo commento al moderatore ho duplicato la descrizione che mancava per non perdere altro.
cosa fare con il prodotto? inviarlo via e-mail? allegarlo ai commenti? o riprovare e aspettare 24 ore?