Errori, bug, domande - pagina 1724
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
Nel processo sono sorte un paio di domande:
1. Perché è impossibile scrivere operator() in Comp (è proibito per qualche motivo)?
2. Perché non possiamo passare il prvalore alla funzione che accetta un riferimento costante?
ZS: e anche molto fastidioso questo avvertimento: "struct non ha membri, dimensione assegnata a 1 byte".
Tutto va bene lì, il piazzamento degli ordini dovrebbe essere controllato attraverso OnTradeTransaction, a proposito, se ti connetti alla borsa direttamente attraverso Plaza2, la situazione è la stessa - hai bisogno di controllare l'arrivo dei messaggi sul piazzamento degli ordini. In MT4, questa funzione è sincrona, ma la stessa opzione è disponibile in MT5, solo che in questo caso, la logica si ferma fino a quando la funzione non riceve alcuna risposta.
Se hai bisogno, posso mandarti la classe di controllo, ma è scritta per il posizionamento sul mercato, ma presto la finalizzerò per i limitatori.
Molto ti chiedo di postare qualcosa su kodobase! Per scopi educativi.
Non può per la ragione che tu stesso hai sottolineato https://www.mql5.com/ru/forum/1111/page1743#comment_2877482. Recentemente non sono riuscito a localizzare l'errore, ho passato molto tempo a formare il codice sorgente in servicedesk - alla fine non è uscito niente a causa di molti riferimenti incrociati (uno tira l'altro in progressione geometrica) - ho inviato .ex5
Per scopi educativi posso suggerire il compito: senza introdurre variabili aggiuntive semplificare h() in modo che f() sia chiamata in ogni caso una volta
Errore di compilazione
(*) In generale, nello schema (1) sia A->(2) che const A->(3) possono essere sostituiti al posto di T.
Perché? Un pattern con const non può accettare non-const - viola il contratto.
Per scopi educativi, posso suggerire il seguente compito: senza introdurre variabili aggiuntive, semplificare h() in modo che f() sia chiamata una volta sola in ogni caso
Perché? Un template con const non può accettare non-const - viola il contratto.
Qualcuno ha avuto un problema simile? È un "bug" del terminale o mio?
MT5-OrderSend NON è completamente sincronizzato - non c'è sincronizzazione con l'ambiente di trading. Questo significa che le letture della storia non corrispondono alla situazione reale.
Nessun timeout è fuori questione. Non c'è una soluzione affidabile al problema, perché dovete affrontare i problemi di sincronizzazione a livello di terminale, non a livello di server.
In effetti, gli utenti di MT5 stanno affrontando quello che gli sviluppatori del ponte MT4 stanno affrontando.
Se viene inviato un OrderSend, bisogna RICORDARE (è qui che si trova la potenziale vulnerabilità) che è stato fatto. Poi ignora la storia corrente (ambiente di trading) fino a quando il messaggio corrispondente arriva in OnTrade. Una volta arrivato, RICORDATI di DIMENTICARE.
Quando non c'è REMEMBER, ci si può fidare della storia come in MT4.
MT4-OrderSend è COMPLETAMENTE sincronizzato.Capisco che se pasticci con OrderSendAsync in modo asincrono, puoi gestire sia OnTrade che OnTradeTransaction. Con OrderSend voglio avere un comportamento semplice, come in MT4. Una volta chiamato, otteniamo nell'output posizioni aperte e storia già modificate.
C'è un punto sottile. Se lo stato attuale è memorizzato in una variabile globale e l'attesa dei cambiamenti di stato richiede un tempo relativamente lungo, e il trader riesce a cambiare i parametri EA, le variabili globali saranno resettate e lo stato sarà scartato.