Trailing Stops y Trailing Profit - página 4

 

Sí, lo he entendido. No es posible comparar ya que cnt tendrá un valor como 3,2,1 mientras que el Número de Ticket es algo diferente.

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} 

¿Puedo comparar el número de billete de esta manera?

Saludos

 
Arav007:

Sí, lo he entendido. No es posible comparar ya que cnt tendrá un valor como 3,2,1 mientras que el Número de Ticket es algo diferente.

¿Puedo comparar el número de billete de esta manera?

Saludos

no
si su PC tiene que reiniciar entonces el valor Sell_Order_Ticket_1 (2 y 3 también) se pierde

compruebe orderopenprice y ordertakeprofit

 
deVries:

no
si su PC tiene que reiniciar entonces el valor Sell_Order_Ticket_1 (2 y 3 también) se pierde

compruebe el precio de apertura de la orden y la ganancia de la orden


No he entendido por qué el valor de Sell_Order_Ticket_1 se perderá después de reiniciar el Terminal?

Es una variable y no se sobreescribe a menos que se abra una nueva orden de venta.

Esto es lo que entiendo pero hay una lógica detrás de tu comentario. Así que por favor explica un poco.

Y he mirado las funciones OrderOpenPrice y OrderTakeProfit. ¿Qué hacer con ellas?

 
Arav007:


No he entendido por qué el valor de Sell_Order_Ticket_1 se perderá después de reiniciar el Terminal?

Es una variable y no se sobreescribe a menos que se abra una nueva orden de venta.

Esto es lo que entiendo pero hay una lógica detrás de tu comentario. Así que por favor explique un poco.

Y he mirado las funciones OrderOpenPrice y OrderTakeProfit. ¿Qué hacer con ellas?


Todas las variables se pierden al reiniciar el terminal.

Sólo se pueden recuperar las Variables Globales del terminal cliente.

 
Arav007:


No he entendido por qué el valor de Sell_Order_Ticket_1 se perderá después de reiniciar el Terminal?

Es una variable y no se sobreescribe a menos que se abra una nueva orden de venta.

Esto es lo que entiendo pero hay una lógica detrás de tu comentario. Así que por favor explique un poco.

Y he mirado las funciones OrderOpenPrice y OrderTakeProfit. ¿Qué hacer con ellos?


hacer más pruebas creando tus archivos

abre las 3 operaciones

anota los números que obtienes

luego cierra tu metatrader4 y reinícialo de nuevo comprueba el valor de Sell_Order_Ticket_1, Sell_Order_Ticket_2 y Sell_Order_Ticket_3

¿son los mismos? si no, ¿qué valor obtienes?

 

OK lo tengo. Esta pieza de información sobre 'Variable' será útil para el futuro también.

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}

}

}

} 

¿Qué tal esto?

 
Arav007:

OK lo tengo. Esta pieza de información sobre 'Variable' será útil para el futuro también.

¿Qué tal esto?


¿podemos mirar primero su código de apertura de operaciones de nuevo?

Compruebe el stoploss y takeprofit de esos oficios todavía hay algo mal ¿ves?

 
deVries:


¿podemos ver primero su código de apertura de operaciones de nuevo?

comprueba el stoploss y el takeprofit de esas operaciones todavía hay algo que no funciona ¿lo ves?


ohh, es para el código equivocado. Después de arreglar los defectos, la parte de Take Profit está bien ahora pero Stop Loss es el problema.

Lógica:

if (Fast_EMA>Slow_SMA)

{

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

{

Comprar

}

}

 
Arav007:


ohh, es por un código equivocado. Después de arreglar los defectos, la parte de Take Profit está bien ahora pero Stop Loss es el problema.

¿que stoploss querías? para esas operaciones?
 
deVries:
¿que stoploss querías? para esas operaciones?


Como aquí para las operaciones de USDJPY:

La 1ª operación (aquí la última debido a la disposición inversa del tiempo) tiene un TP= 103,636

El TP de la segunda operación es 103.736

TP de la 3ª operación= 108.536 [ He puesto este TP a tal distancia que funcionará como si no hubiera TP].

Ahora, de acuerdo a mi requerimiento, cuando el precio esté digamos 7 pip [103.603] en ganancia, el Stop Loss de

1ra y 2da operación se convertirán en 1 pip de ganancia [103.543] y el Stop Loss de la 3ra operación se mantendrá en 103.386.

Como en la siguiente imagen:

La primera orden de GBPUSD se cerró con 10 pips de ganancia.

La segunda orden sigue funcionando y su SL se movió.

Para la tercera orden el SL se movió también, lo cual no quiero.