Errori tipici e come affrontarli quando si ha a che fare con l'ambiente del trading - pagina 3
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
L'opzione giusta con un semplice esempio
Penso che sia meglio se l'ordine non è ancora stato contabilizzato nella posizione, aspettare che venga contabilizzato.
Non capisco l'idea.
Questo diagramma mostra che quando un ordine a mercato viene piazzato usando OrderSendAsync in MetaQuotes-Demo, è impossibile catturare in modo affidabile l'ordine corrispondente che viene piazzato finché l'ordine non viene eseguito o rifiutato. Cioè non ci sono meccanismi semplici in MT5 per valutare i risultati intermedi del loro OrderSendAsync.
sembra essere in tema,
Vorrei sottolineare che questo codice :
funziona perfettamente sulla DEMO (result=request),
ma su REAL - è impossibile ottenere un risultato (risultato=0,0). ... A meno che non aspetti qualche secondo.
Sembra essere nel soggetto,
Vorrei sottolineare che tale codice :
Su DEMO funziona perfettamente (result=request),
ma su REAL - è impossibile ottenere il risultato (risultato=0.0). ... A meno che non aspetti qualche secondo.
Mancano dati - registri, valori dei campi della struttura dopo OrderSend, nome del server commerciale.
Il punto in poche parole è questo: se c'è un ordine a mercato, consideratelo anche una "posizione". Tra virgolette perché è una posizione avvolta. Il codice evidenziato di solito non appare da nessuna parte. Ma evita di riaprire le posizioni. La cosa più interessante qui è evidenziata in rosso. La necessità di questo chip non è immediatamente evidente.
Potrebbe non esserci un segnale di trading nel prossimo tick. Io stesso uso l'MT4-style, quindi non posso fare a meno di vedere queste "posizioni" senza mettermi nei guai.
Mancano dati - registri, valori dei campi della struttura dopo OrderSend, nome del server commerciale.
2018.02.20 15:20:35.845 Trades ordine #66745055 comprare 0.01 / 0.01 EURUSDeur a mercato fatto in 610.625 ms
2018.02.20 15:20:35.935 Transazioni affare #5461453 comprare 0.01 EURUSDeur a 1.23403 fatto (basato sull'ordine #66745055)
2018.02.20 15:20:35.845 TestBUY (EURUSDeur,M15) retcode=10009 deal=0 order=66745055
Se la richiesta è soddisfatta (10009) , perché trattare=0
Se la richiesta è fatta (10009), perché deal=0
È quasi dove la discussione è iniziata. I link hanno tutti i dettagli.
C'è una soluzione per far funzionare perfettamente OrderSend, ma sarebbe pubblicità.
L'opzione giusta con un semplice esempio
Il punto in poche parole è questo: se c'è un ordine a mercato, consideratelo anche una "posizione". Tra virgolette, perché è una posizione incartata. Il codice evidenziato di solito non appare da nessuna parte. Ma evita di riaprire le posizioni. La cosa più interessante qui è evidenziata in rosso. La necessità di questo chip non è immediatamente evidente.
La questione è che ci sono i cosiddetti ordini di chiusura del mercato. Lo stesso SL/TP. Ovviamente, non vorremmo vedere tali ordini di mercato come "posizioni". E non vorremmo che anche gli ordini che abbiamo piazzato si chiudessero. Quindi la condizione evidenziata è il filtro appropriato.
for (int i = OrdersTotal() - 1; i >= 0; i--) if (OrderGetTicket(i) && (OrderGetInteger(ORDER_TYPE) <= ORDER_TYPE_SELL) && !OrderGetInteger(ORDER_POSITION_ID) && (OrderGetString(ORDER_SYMBOL) == Symb)) Res++;
SZY Inserisci questo codice qui e controlla il risultato sul server demo.
Invito tutti gli interessati a discutere questa questione. La mia opinione su questo argomento è la seguente:
for (int i = OrdersTotal() - 1; i >= 0; i--) if (OrderGetTicket(i) && (OrderGetInteger(ORDER_TYPE) <= ORDER_TYPE_SELL) && !OrderGetInteger(ORDER_POSITION_ID) && (OrderGetString(ORDER_SYMBOL) == Symb)) Res++;
Questo ciclo aggiunge una posizione se viene trovato un ordine che non ha un identificatore di posizione (l'ID è zero).
Abbiamo restituito un'altra posizione.
Cosa succede se l'ordine viene cancellato dal server?
...
Penso che quando si calcolano gli ordini di mercato, dovremmo restituire WRONG_VALUE, per esempio, se ne abbiamo trovato uno - le posizioni non possono essere meno di zero. Questo sarà un segnale che c'è un ordine di mercato non registrato. Ma non per aggiungere il numero di posizioni.