Errori, bug, domande - pagina 149

 
Vladix:

Mettere un ritardo - sì, lo accetto, quante righe di codice ci vorrebbero per farlo? E se si tratta di una multi-valuta, deve tenere conto del ritardo su ciascuna di esse, no?

Ho scritto il codice che risolve questo. Solo che non mi piace, così come, scusate, non mi piace il vostro. E non si tratta di pregiudizi, il punto è che non ci sono altre opzioni, semplici ed eleganti.

Ho due linee sul multicurrency nel blocco per la richiesta di scambio. Questo è tutto... Se devi aprire un ordine, controlla che l'ora attuale non sia superiore all'ora limite. Non c'è niente di più elegante, ed entrambi sono assolutamente affidabili...

if(типдействия==TRADE_ACTION_DEAL || типдействия==TRADE_ACTION_PENDING)
    ВремяОкончанияЗапрета[i3]=TimeCurrent()+СекундыЗадержкиПослеЗапроса;
 
Vladix:

Mettere un ritardo - sì, lo accetto, quante righe di codice ci vorrebbero per farlo? E se si tratta di una multi-valuta, deve tenere conto del ritardo su ciascuna di esse, no?

Ho scritto il codice che risolve questo. Solo che non mi piace, così come, scusate, non mi piace il vostro. Non è una questione di pregiudizi, il punto è che non ci sono altre soluzioni semplici ed eleganti.


Il ritardo non è il nostro metodo))

1. Dovremmo memorizzare il numero di posizioni(o ordini) in una variabile (statica o globale) prima di eseguire un'operazione di trading.

2. In caso di mancata esecuzione, la variabile=-1;

In caso di esecuzione riuscita, aspettiamo, non facciamo nulla, e controlliamo ad ogni tick fino a quando il numero di posizioni (o ordini) è uguale alla variabile.

3. Quando non è uguale - variabile=-1;

Документация по MQL5: Торговые функции / PositionsTotal
Документация по MQL5: Торговые функции / PositionsTotal
  • www.mql5.com
Торговые функции / PositionsTotal - Документация по MQL5
 
Swan:

Il ritardo non è il nostro metodo))

1. Prima di un'operazione di trading, memorizzare in una variabile (statica o globale) il numero di posizioni(o ordini)

Sono aperti? C'è solo una posizione per ogni strumento.... Non si può riempire o chiudere parzialmente, l'importo sarà lo stesso. E non è accettabile ricalcolare il numero di ordini nella storia... non si sa da dove possono venire...
 
Swan:

Il ritardo non è il nostro metodo))

1. Prima di un'operazione di trading, salviamo il numero di posizioni(o ordini) in una variabile (statica o globale)

2. In caso di non esecuzione - variabile=-1;

In caso di esecuzione riuscita, aspettiamo, non facciamo nulla, e controlliamo ad ogni tick fino a quando il numero di posizioni (o ordini) è uguale alla variabile.

3. Appena non è più uguale, variabile=-1;

Non è un metodo - solo per i pips, ma per il trading a medio termine va bene. Altrimenti, rischiamo di incorrere in


10024

TRADE_RETCODE_TOO_MANY_REQUESTS

Richieste troppo frequenti

con possibile divieto di commerciare l'Expert Advisor.

 
Dmitriy2:
È aperto? La posizione è la stessa per ogni strumento.... Non si può riempire o chiudere parzialmente... l'importo sarà lo stesso. E non è accettabile ricalcolare il numero di ordini nella storia... non sai da dove possono venire...

Sì, ne sono consapevole) dovremmo scrivere in una variabile ciò che dovrebbe essere cambiato come risultato di OrderSend().

Se si chiude completamente/(o se ne apre uno nuovo) cambierà il numero totale di pose (anche se, sì, è sufficiente, e sembra più affidabile, e non è/è una posa per simbolo da ricordare). È bene ricordare il volume, funzionerà quando si aggiungono/rimuovono posizioni.

Quando si imposta/rimuove un ordine in sospeso - il numero di ordini (può essere calcolato usando il simbolo).


In generale: un po' di immaginazione e l'aggiunta di una sola variabile, per tipo di operazione commerciale, renderà il vostro codice più affidabile, semplice ed elegante :)

 
Valmars:

Non un metodo - solo per i pip, ma per il trading a medio termine - un metodo normale. Altrimenti rischiamo di incorrere in


10024

TRADE_RETCODE_TOO_MANY_REQUESTS

Richieste troppo frequenti

Altrimenti rischiamo di essere banditi dal trading dell'Expert Advisor.


che è un po' diverso, era così nel 4:

ERR_TOO_MANY_REQUESTS 141 Troppe richieste. È necessario ridurre la frequenza delle richieste e cambiare la logica del programma.

Devi sforzarti molto per ottenere questo errore, o potresti avere un conto in una società di brokeraggio intelligente :)

Lo slittamento è un metodo normale per alcuni errori, in altri casi sembra un po' storto.

 
Swan:

è un po' diverso, era così nel 4:

devi sforzarti molto per fare quell'errore, o avere un account DC sospetto :)

Lo slittamento è un metodo normale per alcuni errori, in altri casi sembra un po' storto.


Non lo so.

Qui, c'è anche scritto nel manuale del terminale:

  • Il Trailing Stop non può attivare più di una posizione ogni 10 secondi. Cioè, il terminale imposta un tale ritardo. E il trailing stop viene elaborato automaticamente sul server.
 
Valmars:

Non so...

Qui, c'è anche scritto nel manuale del terminale:

  • Il Trailing Stop non può attivare più di una posizione ogni 10 secondi. Cioè, il terminale stabilisce un tale ritardo. E il trailing stop viene elaborato automaticamente sul server.
Su una zecca a cinque cifre non è davvero necessario spostare ogni fermata. Ma non significa che se il trailing stop ogni 10 secondi - altri trade sono proibiti.


Non è quello che voglio dire :)

Vladix:

In generale, il problema è questo:

arriva un tick, l'indicatore mostra che deve chiudere, io chiudo

arriva il prossimo tick, l'indicatore mostra che dovrebbe chiudere e non so cosa fare - la posizione è già sovrascritta e ciò che succede ad essa al momento, naturalmente, può essere scoperto, ma attraverso il quinto punto.

In questo caso, basta determinare che le informazioni sulla posizione sono state aggiornate, senza usare il quinto punto, preferibilmente)

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 

Sviluppatori.

Nell'aiuto MQL, non c'è ENUM_CHART_VOLUME_MODE nella scheda Indice. Aggiungilo...

 
Swan:

In generale: un po' di immaginazione e l'aggiunta di una sola variabile, per tipo di operazione commerciale, renderà il vostro codice più robusto, semplice ed elegante :)

Quindi, fantasticate esattamente di quale codice ha bisogno l'uomo che sarebbe lungo 10 righe e affidabile, come il mio, e che gli piacerebbe :)

E a proposito di eleganza suggerisci di fare un mucchio con una logica poco chiara da due linee che stanno assolutamente e logicamente adempiendo al compito che stai chiedendo...

Cigno:

Il ritardo non è il nostro metodo))

Nel caso dell'esecuzione aspettiamo... ...3. yak non uguale...

E aspettare per quanto tempo? Non conta come un ritardo? E se non diventa mai "non uguale"? E siamo in attesa del tempo... Una richiesta di scambio può facilmente restituire un trofeo e non essere effettivamente soddisfatta...

Motivazione: