Ordine stop/limite troppo vicino al prezzo effettivo
6 risposte
sansay
7 anni fa #116332
Vedere la schermata allegata.
Quando ho visto per la prima volta il log di questo EA, "ordine stop/limit troppo vicino al prezzo effettivo" ho subito pensato "OK il livello di stop non è corretto". Ho quindi modificato il codice e cambiato il valore di MinDistanceOfStopFromPrice in 70, dato che si trattava delle specifiche della coppia USDMXN. Tuttavia, come si può vedere nello screenshot, questo non ha risolto il problema. Infatti ho provato anche con 100, 200, 700, ma non è cambiato nulla.
Qualsiasi aiuto sarebbe molto apprezzato.
sansay
7 anni fa #141561
Quale schermata?
Ho il problema opposto, ho bisogno che alcuni ordini Stop_limit siano più vicini al prezzo.
Strano, sono abbastanza sicuro di aver allegato il file png. Facciamo un altro tentativo...
tomas262
7 anni fa #141585
Succede quando si inserisce un ordine o si cerca di modificare PT, SL o il prezzo dell'ordine?
sansay
7 anni fa #141594
Non faccio nulla, è un EA creato con SQ. Fa così e credo che il codice venga aggiunto a ogni singolo EA che crea. La differenza in questo caso è che questo particolare commerciante di forex ha un livello di stop di 70, mentre gli altri hanno 0.
Naturalmente quelli con 0 non attivano nulla.
Il codice è in funzione:
void openPosition(int tradeDirection) {
…
sansay
7 anni fa #141656
Stamattina ho scoperto che ha tentato di piazzare un ordine di stop alla vendita, senza riuscirci. Si veda il log allegato.
tomas262
7 anni fa #141681
Lo chiedo perché avete inserito la domanda nel thread "EA Wizard".
Potete pubblicare la strategia qui o inviarmela a [email protected] così posso provare a testarlo anche su USDMXN
sansay
7 anni fa #141685
In realtà, i miei test mi hanno permesso di trovare il problema e ho corretto il codice.
Il problema è che il server del broker controlla che:
breve: orderPrice < currentPrice - stopLevel
lungo: orderPrice > currentPrice + stopLevel
Se la condizione non è soddisfatta, la richiesta di modifica fallisce. Attualmente il codice regola lo stopLoss e il targetProfit in modo che siano almeno all'interno dell'orderPrice + o - del livello di stop del dealer. Questo fa sì che il test fallisca ogni volta che l'orderPrice è esattamente CurrentPrice -+ stopLevel. La soluzione è stata quindi quella di aggiungere o sottrarre semplicemente 1 pip. Ecco la modifica del codice:
Nei parametri nascosti, dichiarare:
double stopOffset = 0,0001;
Aggiungere e passare il parametro tradeDirection alla firma e alla chiamata del metodo openOrderWithErrorHandling:
int openOrderWithErrorHandling(int tradeDirection, int orderType, double orderLots, double openPrice, double stopLoss, double profitTarget, string comment, int magicNumber) {
Nello stesso metodo aggiungere il codice in verde:
Stai visualizzando 6 risposte - da 1 a 6 (di 6 totali)