Trailing Stops e Trailing Profit - pagina 4

 

Sì, ho capito. Non è possibile confrontare come cnt avrà un valore come 3,2,1 mentre Ticket Number è qualcosa di diverso.

if(OrdersTotal()>0){

        for(cnt=OrdersTotal()-1;cnt>=0;cnt--){

        

        if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue;

        if(OrderSymbol() == Symbol() && OrderMagicNumber() ==  MagicNumber){



                sl     = OrderStopLoss(); // Stop Loss. 

                tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. 

                Order Ticket=OrderTicket(); 

                

                if(OrderType()==OP_SLL){ 

                if( Order Ticket== Sell_Order_Ticket_1){ Do the Normal Trailing Stop}

                if( Order Ticket== Sell_Order_Ticket_2){ Do the Normal Trailing Stop}

                if( Order Ticket== Sell_Order_Ticket_3){ Don't move the Stop Loss} 

Posso confrontare il Ticket Number in questo modo?

Saluti

 
Arav007:

Sì, ho capito. Non è possibile confrontare come cnt avrà un valore come 3,2,1 mentre Ticket Number è qualcosa di diverso.

Posso confrontare il Ticket Number in questo modo?

Saluti

no
se il tuo pc deve riavviare allora il valore Sell_Order_Ticket_1 (2 e 3 anche) è perso

controlla orderopenprice e ordertakeprofit

 
deVries:

no
se il tuo pc si riavvia, il valore Sell_Order_Ticket_1 (2 e 3 anche) è perso

controllare orderopenprice e ordertakeprofit


Non ho capito perché il valore di Sell_Order_Ticket_1 si perde dopo il riavvio del terminale?

È una variabile e non viene sovrascritta a meno che non si apra un nuovo ordine di vendita.

Questo è quello che ho capito, ma c'è una logica dietro il tuo commento. Quindi, per favore, spiega un po'.

E ho guardato le funzioni OrderOpenPrice e OrderTakeProfit. Cosa fare con loro?

 
Arav007:


Non ho capito perché il valore di Sell_Order_Ticket_1 sarà perso dopo il riavvio del terminale?

È una variabile e non viene sovrascritta a meno che non si apra un nuovo ordine di vendita.

Questo è quello che ho capito, ma c'è una logica dietro il tuo commento. Quindi, per favore, spiega un po'.

E ho guardato le funzioni OrderOpenPrice e OrderTakeProfit. Cosa fare con loro?


Tutte le variabili sono perse al riavvio del terminale.

Solo le variabili globali del terminale client possono essere recuperate.

 
Arav007:


Non ho capito perché il valore di Sell_Order_Ticket_1 viene perso dopo il riavvio del terminale?

È una variabile e non viene sovrascritta a meno che non si apra un nuovo ordine Sell.

Questo è quello che ho capito, ma c'è una logica dietro il tuo commento. Quindi, per favore, spiega un po'.

E ho guardato le funzioni OrderOpenPrice e OrderTakeProfit. Cosa fare con loro?


fare qualche altra prova creando i vostri file

aprire i 3 trade

notate i numeri che ottenete

poi chiudi il tuo metatrader4 e riavvialo di nuovo controlla il valore di Sell_Order_Ticket_1, Sell_Order_Ticket_2 e Sell_Order_Ticket_3

sono gli stessi?? se no, che valore ottieni?

 

Ok, ho capito. Questa informazione sulla 'variabile' sarà utile anche per il futuro.

if(OrdersTotal()>0){

        for(cnt=3;cnt>0;cnt--){

        if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue;

        if(OrderSymbol() == Symbol() && OrderMagicNumber() ==  MagicNumber){



                sl     = OrderStopLoss(); // Stop Loss. 

                tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. 

if(OrderType()==OP_BUY){ 

if (cnt==3) { Do the Normal Trailing Stop}

if (cnt==2) { Do the Normal Trailing Stop}

if (cnt==1) { Don't move the Stop Loss}

}

}

} 

Che ne dite di questo?

 
Arav007:

Ok, ho capito. Questa informazione sulla 'variabile' sarà utile anche per il futuro.

Che ne dici di questo?


Possiamo guardare di nuovo il tuo codice di apertura delle transazioni?

controlla lo stoploss e il takeprofit di queste operazioni, c'è ancora qualcosa di sbagliato, vedi?

 
deVries:


possiamo guardare di nuovo il tuo codice di apertura delle transazioni?

controllare lo stoploss e il takeprofit di quei trade c'è ancora qualcosa di sbagliato vedi?


ohh, è per il codice sbagliato. Dopo aver corretto i difetti, la parte Take Profit va bene ora, ma il problema è lo Stop Loss.

Logica:

se (Fast_EMA>Slow_SMA)

{

se (MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)

{

Compra

}

}

 
Arav007:


ohh, è per il codice sbagliato. Dopo aver corretto i difetti, la parte Take Profit va bene ora, ma il problema è lo Stop Loss.

Che stop loss volevi per quei trade?
 
deVries:
Che stoploss hai voluto per questi trade?


Come qui per i trade USDJPY:

Il 1° Trade (qui l'Ultimo a causa della disposizione inversa del Tempo) ha TP= 103.636

Il TP del 2° Trade= 103.736

3rd Trade's TP= 108.536 [ ho impostato questo TP a tale distanza così funzionerà come se non ci fosse alcun TP]

Ora, come da mia richiesta, quando il prezzo sarà diciamo 7 pip [103.603] in profitto, lo Stop Loss di

1° e 2° trade diventeranno 1 pip di profitto [103.543] e lo Stop Loss del 3° trade rimarrà a 103.386.

Come nell'immagine sottostante:

Il 1° ordine GBPUSD è stato chiuso con un profitto di 10 pip.

Il 2° ordine è ancora in esecuzione e il suo SL è stato spostato.

Per il 3° trade anche lo SL è stato spostato, cosa che non voglio.