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
Sì, un buon consiglio...
Ripetere
Dobbiamo controllare irisultati.ordine.
Se l'ordine viene effettuato, non significa che l'affare sia già stato fatto.
Inoltre, dovremmo anche controllare lo stato dell'ordine e se è già apparso nella storia o no.
Lo scambio non funziona con le posizioni, solo con gli ordini.
Recentemente ho sollevato un argomento sulla riapertura degli ordini. Pensavo di aver risolto il problema, dato che tutto funzionava molto bene per una settimana. Ma oggi ho riscontrato un problema simile solo all'apertura.
Si sono aperti molti ordini su Finam, e 9 su Otkritie...anche se solo un ordine avrebbe dovuto aprirsi in tutti i casi.
Ecco uno snippet di codice dall'EA
cioè possiamo vedere dal codice che se l'operazione ha successo, aumenta la variabileOpenOrders, che inizialmente è uguale a 0
Se è superiore a 0, non dovrebbe esserci un'ulteriore apertura dell'ordine, ma l'intera pila di ordini viene aperta con il commento Ordine1.
Controllo se c'è una risposta positiva nella funzione che apre l'ordine e se il biglietto d'ordine è stato ricevuto, ma per qualche motivo questa funzione restituisce falso, anche se l'ordine è effettivamente impostato.
Spiegare cosa c'è di sbagliato, come risolvere questo problema?
Dimmi, per quale mercato stai scrivendo questo codice?
Per l'agente di cambio.
Ripetere
Oltre a questo, si dovrebbe anche controllare lo stato dell'ordine e se è già apparso nella storia o no.
Lo scambio non si occupa di posizioni, ma solo di ordini.
Bene Sergei, vedi ....questo è dalla documentazione del risultato della query
Deal
Un affare di biglietti, se è stato eseguito. Questo è riportato durante una transazione commercialeTRADE_ACTION_DEAL
ordine
Ordine del biglietto, se è stato piazzato un biglietto. Notificato durante un'operazione commercialeTRADE_ACTION_PENDING
Non ho un ordine pendente, usoTRADE_ACTION_DEAL
Devi lavorare con i limitatori, poi tutto è corretto.... ed ecco l'entrata dal mercato al prezzo attuale.Bene Sergei, vedi ....questo è dalla documentazione del risultato della query
affare
Accordo sui biglietti, se esiste. Da riportare su una tradeTRADE_ACTION_DEAL
ordine
Ordine del biglietto, se è stato piazzato un biglietto. Notificato durante un'operazione commercialeTRADE_ACTION_PENDING
Non ho un ordine pendente, usoTRADE_ACTION_DEAL
Devi lavorare con i limitatori, allora tutto è corretto.... e qui stai entrando dal mercato al prezzo corrente.SetTypeFilling
SetTypeFilling
Imposta il tipo di ordine riempiendo
Stabilite voi ciò che ritenete opportuno.
A proposito, ho appena controllato i risultati dell'invio dell'ordine con le stampe
quindi il biglietto dà 0 in tutti i casi
res=OrderSend(Request,Results);
if(res)
{
Print(_Symbol+" Test True order "+(string)Results.deal);
if(Results.deal>0) return(true);
else return(false);
}
Print(_Symbol+" Test False order "+(string)Results.deal);
return(false);
A proposito, ho appena controllato i risultati dell'invio di un ordine con le stampe
Il biglietto mostra 0 in tutti i casi
Sono stati fatti dei progressi... ))
A proposito, ho appena controllato con le stampanti i risultati dell'invio dell'ordine
quindi il biglietto dà 0 in tutti i casi
res=OrderSend(Request,Results);
if(res)
{
Print(_Symbol+" Test True order "+(string)Results.deal);
if(Results.deal>0) return(true);
else return(false);
}
Print(_Symbol+" Test False order "+(string)Results.deal);
return(false);
Dove sono i codici di ritorno? Come faccio a sapere se c'è stato un errore o no?
Vi ho dato un esempio: doppia protezione e l'uscita del biglietto e il codice di ritorno.
Non sono riuscito a trovare un esempio. Mettiamola così.
Quando invii un ordine attraverso il mercato, l'ordine dovrebbe essere eseguito o rifiutato (dato che hai un riempimento FOK).
Quindi non c'è bisogno di aspettare un biglietto, ma di ottenere un BIGLIETTO.
Una volta ricevuto un biglietto, si "va" a OnTradeTransaction() con il biglietto
si ascolta TRADE_TRANSACTION_HISTORY_ADD perché gli ordini di mercato arrivano sempre alla storia
e guardare il biglietto per vedere cosa è successo all'ordine.