Chiusura di mezzi lotti. - pagina 5

 
DomGilberto:

Ho inserito un ordine pendente "OP_BUYSTOP" ma avevo l'impressione che questo sarebbe cambiato quando attivato in un "OP_BUY"?

Pensavo che il tipo di ordine sarebbe stato "OP_BUY" se fosse stato attivato?

Dopo tutto, sono interessato solo UNA VOLTA che l'ordine è stato attivato?

Perché quelle parentesi sono confuse? Intendi in termini di dove si trova la parentesi sinistra? Se è così, sembra che sia una cosa individuale, dato che sono stato corretto su questo più volte?

Le parentesi non sono necessarie, quindi il fatto che siano lì può causare confusione per altri che cercano di leggere il tuo codice (io).


Se hai solo un BUYSTOP allora il tuo codice non farà nulla perché non è un OP_BUY . . .

DomGilberto:
Hmmm, ancora non vuole chiudere @ "Close_Half_Order" ? Non ricevendo alcun messaggio di errore sia?

quindi questo ha senso mentre l'ordine è ancora in sospeso . . .

Il tuo ordine ha il numero magico corretto?

 
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: Close_Half_Order Last Error = 4108
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: OrderClose error 4108
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: pending order #9 cannot be closed
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: Order Lots Open = 0.18
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: Order Ticker Number = 9
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: The Lots to close is: 0.09000
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: The Lotstep is: 0.01000
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: The minimum lots are: 0.01000
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: FirstTarget_Buy: 1.37931
Ho rimosso la linea "if(OrderType()==OP_BUY)" - Questa è la nuova stampa nel giornale dopo il test? Biglietto non valido... (scusate se faccio 101 domande su questo!)
 
DomGilberto:
Ho rimosso la linea "if(OrderType()==OP_BUY)" - Questa è la nuova stampa nel giornale dopo il test? Biglietto non valido... (scusate se faccio 101 domande su questo!)

RaptorUK:

Non si chiude un ordine in sospeso, cosa ti ha detto il tuo rapporto di errore?

2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: pending order #9 cannot be closed

Non puoi chiudere un ordine in sospeso, vengono cancellati.

 
Ma non sto cercando di chiudere un ordine pendente? Sto cercando di chiudere metà dei lotti su un "OP_BUY" che non è pendente...? Ovviamente mi manca qualcosa qui...
 
DomGilberto:
Ma non sto cercando di chiudere un ordine pendente? Sto cercando di chiudere metà dei lotti su un "OP_BUY" che non è pendente...? Ovviamente mi manca qualcosa qui...
DomGilberto:

Ho inserito un ordine pendente "OP_BUYSTOP" ma avevo l'impressione che questo cambiasse quando veniva attivato in un "OP_BUY"?

Se hai un OP_BUYSTOP il tuo codice non fa nulla, il che è OK. Quando l'OP_BUYSTOP è innescato si trasforma in un OP_BUY e il tuo codice dovrebbe chiudere la metà della sua posizione . . . purché abbia il simbolo e il Magic Number corretti, vero ? Immagino di sì, altrimenti il codice non avrebbe cercato di chiudere l'ordine pendente... e se OpenOrdersThisPair(Symbol()) == 1?
 
Se tolgo "OpenOrdersThisPair(Symbol()) == 1" dal codice, i messaggi sono esattamente gli stessi nel diario... Sono perplesso...?
 
DomGilberto:
Se rimuovo "OpenOrdersThisPair(Symbol()) == 1" dal codice, i messaggi sono esattamente gli stessi nel diario... Sono perplesso...?

E' ora di aggiungere qualche altra istruzione Print(), controllate tutto quello che non avete già controllato... siete perplessi solo perché non sapete perché, scoprite perché e non sarete più perplessi.

Quando avete scoperto il perché e avete tutte queste istruzioni Print() che non volete più stampare nella scheda Journal/Experts date un'occhiata a questo che vi permetterà un bel modo di attivarle e disattivarle: https: //www.mql5.com/en/forum/135168/page2

 

Ah, a proposito, non si può fare questo. . .

bool Close_Half_Order = OrderClose(OrderTicket(), half, FirstTarget_Buy, 3, CLR_NONE);

. . . a meno che FirstTarget_Buy non sia == Bid Per eliminare la possibilità che non lo sia basta usare Bid. Un Buy viene chiuso con un Sell, un Sell viene eseguito al Bid.

 
Ok, quindi se metto "Bid" lì, i lotti vengono chiusi, ma non al prezzo corretto, e sembra che chiuda diverse metà durante una qualsiasi posizione. (più verso i 2/3 superiori dell'area del prezzo target del 100%... non tutti allo stesso prezzo a cui si chiudono...)

Come posso chiudere la posizione a "FirstTarget_Buy "?
 
DomGilberto:
Ok, quindi se metto "Bid" lì, i lotti ora vengono chiusi, ma non al prezzo corretto, e sembra che chiuda diverse metà durante una qualsiasi posizione. (più verso i 2/3 superiori dell'area del prezzo target del 100%... non tutti allo stesso prezzo a cui si chiudono...)

Come posso chiudere la posizione a "FirstTarget_Buy" ?

Non puoi OrderClose() a qualsiasi prezzo diverso da Bid e Ask (Buy e Sell) . . è semplice, non puoi.

Cosa puoi fare:

aprire due trade per metà della posizione ciascuno e dare a ciascuno un TP diverso

o

monitorare il prezzo Bid/Ask e quando ha raggiunto o superato il "FirstTarget_Buy " chiudere metà del trade al Bid/Ask