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
Lasciate che gli sviluppatori lo risolvano. Ecco uno screenshot di 3 esecuzioni di questo script.
Non funziona per me.
Bug - prima funzionava, ma ora no.
Grazie per il suo messaggio.
Continueremo a cercare.
Trovato un piccolo bug nel metodo PrintCheckResult (file Trade.mqh, classi Trade, classe CTrade).
void CTrade::PrintCheckResult(void) const
{
printf("CheckResult");
// printf("%d,%f,%f,%f,%f,%f,%f,'%s'", - il penultimo parametro non è necessario
printf("%d,%f,%f,%f,%f,%f,'%s'",
m_check_result.retcode,m_check_result.balance,m_check_result.equity,
m_check_result.margin,m_check_result.margin_free,m_check_result.margin_level,
m_check_result.comment);
}
Al posto della stringa: printf("%d,%f,%f,%f,%f,%f,%f,'%s'", - commentato da me
ci dovrebbe essere una linea: printf("%d,%f,%f,%f,%f,%f,%f,'%s'",
Ho controllato, la funzione corretta funziona correttamente.
Bug - prima funzionava, ma ora no.
Grazie per il messaggio. Sarà disponibile nel prossimo aggiornamento. Per farlo funzionare nella versione attuale, usate il casting esplicito per la costante o la moltiplicazione in generale
{
// вот так работает
Print(TimeCurrent()+2*PeriodSeconds(PERIOD_D1));
// а вот так нет (а раньше работало)
datetime time_end=0;
time_end=TimeCurrent()+(long) 2*PeriodSeconds(PERIOD_D1);
Print(time_end);
}
Trovato un piccolo bug nel metodo PrintCheckResult (file Trade.mqh, classi Trade, classe CTrade).
Grazie per il messaggio.
Sarà presto risolto.
Grazie per il suo messaggio. Sarà disponibile nel prossimo aggiornamento. Per farlo funzionare nella versione attuale usate il casting esplicito per la costante o la moltiplicazione in generale
Grazie. Se ho capito bene era dovuto alla conversione del tipo. È un peccato che non ci sia questo messaggio in fase di compilazione, sarebbe più facile da trovare
Gli errori ENUM_TRADE_RETURN_CODES devono essere interpretati correttamente per poterli gestire correttamente. C'è del materiale per descriverli in dettaglio?
In particolare, i seguenti errori non sono completamente compresi:
10008
CODICE COMMERCIALE PIAZZATO
Ordine effettuato
10021
SCONTO_DI_RETROCODICE_COMMERCIALE
Nessun preventivo disponibile per elaborare la richiesta
10028
TRADE_RETCODE_LOCKED
Query bloccata per l'elaborazione
10029
TRADE_RETCODE_FROZEN
Ordine o posizione congelati
Qualcuno può aiutare con questo problema?
Gli errori ENUM_TRADE_RETURN_CODES devono essere interpretati correttamente per poterli gestire correttamente. C'è del materiale per descriverli in dettaglio?
In particolare, i seguenti errori non sono completamente compresi:
10008
CODICE COMMERCIALE PIAZZATO
Ordine effettuato
10021
SCONTO_DI_RETROCODICE_COMMERCIALE
Nessun preventivo disponibile per elaborare la richiesta
10028
TRADE_RETCODE_LOCKED
Query bloccata per l'elaborazione
10029
TRADE_RETCODE_FROZEN
Ordine o posizione congelati
Qualcuno può aiutare con questo problema?
Tutto ciò si riferisce ai codici che vengono restituiti dal server in risposta alla richiesta del terminale. Ecco perché tutto è dato nella sezione "Trade server return codes".
Sarebbe logico supporre che la lista contenga più di semplici errori.
Ora in ordine.
Per quanto riguarda
10008
CODICE COMMERCIALE PIAZZATO
Ordine effettuato
Sarebbe logico supporre che questa risposta non è un errore ma semplicemente informa il cliente (il terminale di trading) che l'ordine è stato piazzato con successo.
In questo caso ci sono tre possibili soluzioni:
1. Non elaborare affatto la risposta;
2. elaborare il piazzamento dell'ordine nel blocco OnTrade() - abbastanza accettabile, ma non molto corretto secondo me;
A mio parere, questo è il modo migliore per elaborare un commercio meccanico.
PS
Preferisco elaborare le risposte del server al posto dell'ordine e catturare il risultato delle azioni di un trader, del server o di altri Expert Advisors in OnTrade().
Per esempio, in OnTrade è possibile catturare le operazioni di trading del trader (impostazione o cancellazione di un ordine così come le operazioni con le posizioni).
Per quanto riguarda
10029
TRADE_RETCODE_FROZEN
L'ordine o la posizione sono congelati
C'è un certo livello al quale una posizione o un ordine sono "congelati" (qualsiasi operazione con essi è proibita).
Questo livello è una distanza dal prezzo corrente al quale il server proibisce qualsiasi azione con l'ordine o la posizione. Questa distanza è misurata in pip e viene impostata per ogni simbolo.
Può essere ottenuto usando SymbolInfoInteger() conil parametro SYMBOL_TRADE_FREEZE_LEVEL.
Se ricevete una tale risposta dal server, dovreste aspettare che succeda una delle due cose:
1. Il prezzo non si è spostato della distanza richiesta (maggiore di quella specificata nelle proprietà del simbolo);
2. l'ordine o la posizione non funzionano nelle condizioni stabilite in essi.
Per quanto riguarda
10021
SCONTO_DI_RETROCODICE_COMMERCIALE
Nessun preventivo per elaborare la richiesta
Probabilmente, quando si ottiene questa risposta, si dovrebbe controllare il nome del simbolo (per sicurezza), assicurarsi che il simbolo sia selezionato (importante per tester e multicast), controllare la disponibilità dello storico, anche sul server (se deve essere scaricato), probabilmente assicurarsi che il mercato sia aperto e il trading sul simbolo sia possibile.
PS
Anche se qui sarà necessario specificare agli sviluppatori
Che dire di
10028
TRADE_RETCODE_LOCKED
Richiesta bloccata per l'elaborazione
Questa è probabilmente la più specifica delle risposte del server elencate sopra... è più probabile che abbia bisogno di un chiarimento da parte degli sviluppatori (supporrò semplicemente che tu debba aspettare un certo periodo di tempo)...
Per quanto riguarda
10029
TRADE_RETCODE_FROZEN
Ordine o posizione congelati
C'è un certo livello al di sotto del quale una posizione o un ordine sono "congelati" (qualsiasi azione con essi è vietata).
Questo livello è una distanza dal prezzo corrente al quale il server proibisce qualsiasi azione con l'ordine o la posizione. Questa distanza è misurata in pip ed è impostata per ogni simbolo.
Può essere ottenuto usando SymbolInfoInteger() con ilparametro SYMBOL_TRADE_FREEZE_LEVEL.
Se ricevete una tale risposta dal server, dovreste aspettare che succeda una delle due cose:
1. Il prezzo non si è spostato della distanza richiesta (maggiore di quella specificata nelle proprietà del simbolo);
2. l'ordine o la posizione non ha soddisfatto le condizioni stabilite in essi.
Grazie per la risposta dettagliata, capisco il codice "10029: TRADE_RETCODE_FROZEN: Order or position is frozen".
Ma abbiamo ancora domande sul resto di loro (voglio sapere la risposta esatta e non le congetture):
10008
CODICE COMMERCIALE PIAZZATO
Ordine effettuato
10021
SCONTO_DI_RETROCODICE_COMMERCIALE
Nessun preventivo disponibile per elaborare la richiesta
10028
TRADE_RETCODE_LOCKED
La richiesta è bloccata per l'elaborazione
In particolare, non è molto chiaro cosa significhi "10008: L'ordine è stato piazzato", perché quando l'ordine viene messo in coda sul server, gli viene assegnato un ticket e viene restituito il codice "10009: TRADE_RETCODE_DONE: Request executed".