
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
3 persone stavano guardando =)) Renat è venuto e ha appena puntato il dito sull'errore =)))
Lo controllerò ora, naturalmente, ma probabilmente è questo il problema... Non ho normalizzato "bid - TrailingStop * point", e questa stessa costruzione è coinvolta nella modifica dell'ordine...
Non siamo attenti, signori ;)
Così diverse persone vi hanno proposto questa variante del problema. Anche io ho scritto che l'offerta può avere 5 cifre decimali. All'inizio ho pensato che non fosse possibile, ma poi mi sono ricordato che le citazioni sono fatte da un automa che probabilmente prende le citazioni da diversi datafeed e ne fa una media usando un qualche tipo di algoritmo.
Bid/Ask hanno una precisione dei simboli inequivocabilmente standard. Un'altra cosa è che invece di 1.6666 potresti vedere 1.6665999 (a causa di un errore in virgola mobile).
Voglio notare: i problemi di confronto di questi numeri(tipo double) esistono in _tutti_ i linguaggi e sono una conseguenza della precisione limitata di base di questo tipo di aritmetica. Di conseguenza, non bisogna incolpare nessuno, ma essere consapevoli del problema e scrivere codice protetto.
Bid/Ask sono chiaramente di una precisione standard dei caratteri. Un'altra cosa è che invece di 1.6666 si può vedere 1.6665999 (a causa delle peculiarità dell'errore in virgola mobile).
Voglio notare: i problemi di confronto di questi numeri (tipo double) esistono in _tutti_ i linguaggi e sono una conseguenza della precisione limitata di base di questo tipo di aritmetica. Di conseguenza, non bisogna incolpare nessuno, ma essere consapevoli del problema e scrivere codice sicuro.
Quindi non sto accusando nessuno. Non ho chiesto niente a komposter - su cui il trailing di valuta non ha funzionato correttamente. Ricordo con certezza che in MT3 si possono vedere 3 posizioni decimali in Yen. Almeno, l'ho visto più di una volta.
non siamo attenti, signori ;)
la normalizzazione non ha aiutato =(
più precisamente - trailing errors (euro - buy position):
03:41
12:07
12:11
14:31
14:33
14:36
14:39
14:44
14:46
14:47
14:48
(server time)
Renat, come devo procedere?
Al momento ci sono 3 opzioni:
1. if ( ordertoploss < ( bid - TrailingStop * point ) ) sostituito da if ( TrailingStop < ( bid -orderstoploss) / point )
2. Confronta int, non double, usando le funzioni Begun
3. Cambia l'anticipo dello stop (non ogni punto, ma dopo n spreads)
e le loro combinazioni, naturalmente.
Dato che il software è abbastanza responsabile, vorrei avere (! non una garanzia!) raccomandazioni per scrivere...
Prova invece:
scrivere:
Ci saranno anche errori?
È chiaro che si può fare un contraccolpo, ma non è serio.... E se devo fare un contraccolpo di 10-20 pips, "per affidabilità", sì, su M30, solo una favola =)
Ricontrolla di nuovo il tuo codice, semplificalo, inserisci messaggi di debug.
Ad essere onesti, non so come semplificare...
Ma si può controllare, naturalmente. Ecco il codice come è usato ora (in parti):
controlla i parametri in entrata e seleziona l'ordine richiesto. Se si verifica un errore, semplicemente usciamo, cioè l'ordine non sarà modificato...
Salvare tutti i dati degli ordini in variabili e normalizzarli:
questo è il colore e la "gentilezza" del tronco...
ora, per una posizione lunga, definire un nuovo livello di SL, normalizzarlo e confrontarlo con quello vecchio (solo se la posizione è redditizia)
scaricarlo nel registro
un triplo tentativo di modificare l'ordine dopo una pausa di 10 secondi (l'ordine viene evidenziato ogni volta)
e solo se ordermodify <= 0 viene inviato un codice di errore
se dopo 3 tentativi l'ordine non è stato modificato, si esce (-1)
poi lo stesso per le posizioni di vendita
e infine, se non c'è bisogno di modificare lo stop, exit(0)
non lo so....
Cosa c'entra questo? "+Punto" risolve il problema dell'arrotondamento dell'ultima cifra significativa del prezzo. Non stiamo parlando di 2, 3, e tanto più di 10-20 pips.