asesor experto - preguntas varias - página 31

 
Max Enrik:


if
(id==CHARTEVENT_OBJECT_CLICK && (StringFind(sparam,Button_1,0)>=0 || StringFind(sparam,Button_2,0)>=0))
  {
   ticketnumber=(int) StringSubstr(sparam,1);

   Print(ticketnumber);

Imprima su número de billete - asegúrese de que es correcto.

-----

MaxEnrik:

if(id==CHARTEVENT_OBJECT_CLICK && (StringFind(sparam,Button_1,0)>=0 || StringFind(sparam,Button_2,0)>=0))
  {
   ticketnumber=(int) StringSubstr(sparam,1);

   if(OrderSelect(ticketnumber,SELECT_BY_TICKET))
     {
      if(StringFind(sparam,Button_1,0)>=0)
        {
         // ...
        }

      if(StringFind(sparam,Button_2,0)>=0)
        {
         //...
        }

      for(i=OrdersTotal()-1; i>=0; i--)
        {
         if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
         if(Symbol()!=OrderSymbol()) continue;

         update_1();
         update_2();
         update_3();
        }
     }
   else printf("OrderSelect failed for %i",ticketnumber); 

}

Compruebe que el OrderSelect funciona.

-----

MaxEnrik:
if(id==CHARTEVENT_OBJECT_CLICK && (StringFind(sparam,Button_1,0)>=0 || StringFind(sparam,Button_2,0)>=0))
  {
   ticketnumber=(int) StringSubstr(sparam,1);

   if(OrderSelect(ticketnumber,SELECT_BY_TICKET))
     {
      if(StringFind(sparam,Button_1,0)>=0)
        {
         // ...
        }

      if(StringFind(sparam,Button_2,0)>=0)
        {
         //...
        }

      for(i=OrdersTotal()-1; i>=0; i--)
        {
         if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
         if(Symbol()!=OrderSymbol()) continue;

         update_1();
         update_2();
         update_3();

        }
     }
  }

No entiendo esto.

¿Sabes que esto recorre todos los pedidos con el mismo Símbolo y ejecuta update_1() update_2() update_3()? No sólo la orden que encontró con ticketnumber.

 
honest_knave:

Imprima su número de billete - asegúrese de que se ve correctamente.
-----
Compruebe que el OrderSelect funciona.
-----
No entiendo esto.
¿Sabes que esto recorre todos los pedidos con el mismo Símbolo y ejecuta update_1() update_2() update_3()? No sólo la orden que encontró con ticketnumber.

Gracias por tu rápido comentario.
Después de tu comentario, he vuelto a comprobarlo. Se ve bien.

#1 - Número de ticket - correcto.
#2 - OrderSelect() funciona.
#3 - ¡Sí! tienes razón, pero si no lo uso que update_*()'s no funciona.

Yo uso ese método para los Drags, ese método funciona bien. Pero ese método no funciona bien para CHARTEVENT_OBJECT_CLICK. ( funciona bien mientras la orden es única, cuando abro la orden opuesta sí funciona. )

Realmente necesito ayuda, por favor.

 
Muéstrame una captura de pantalla de lo que quieres que ocurra. No tengo claro el problema.
 
honest_knave:
Muéstrame una captura de pantalla de lo que quieres que ocurra. No tengo claro el problema.

Mientras hacía la captura de pantalla encontré la solución, ¡simplemente genial! ( Ya he pasado más de 2 horas para ello )
Por lo tanto, parece que es bueno hasta ahora, si algo va a ir mal sobre que voy a escribir más claramente comentario.

Gracias por su tiempo.

( Eso fue realmente mágico. )

 
Max Enrik:

Mientras hacía la captura de pantalla encontré la solución, ¡simplemente genial! ( Ya he pasado más de 2 horas para ello )
Por lo tanto, parece que es bueno hasta ahora, si algo va a ir mal acerca de que voy a escribir más claramente comentario.

Gracias por su tiempo.

( Eso fue realmente mágico. )

Me alegro de que lo hayas arreglado
 

#Beneficios en divisas Calcular - Abrir

Acabo de empezar a encontrar la solución que cómo puedo calcular el beneficio en la moneda. por ejemplo: 100 pip = 0,89 USD en USDJPY

P:¿Cómo puedo convertir el Beneficio de la Orden en pips a Beneficio de la Orden en Moneda, por favor?

( Solo me preocupa que no pueda encontrar la solución hasta el cierre del mercado )

Cualquier comentario claro sería mejor, por favor.

Gracias de antemano.

//--- 2da vez editado

He encontrado un montón de foros similares, pero no puedo encontrar este tipo de temas.

 

¿Cómo se llega al beneficio en pips?

OrderProfit()

Valor devuelto:

El valor del beneficio neto (sin swaps ni comisiones) de la orden seleccionada.

Para las órdenes abiertas, es el beneficio actual no realizado.

Para las órdenes cerradas, es el beneficio fijo.

 
Marco vd Heijden:

¿Cómo se llega al beneficio en pips?

OrderProfit()

Valor devuelto:

El valor del beneficio neto (sin swaps ni comisiones) de la orden seleccionada.

Para las órdenes abiertas, es el beneficio actual no realizado.

Para las órdenes cerradas, es el beneficio fijo.

Gracias por su comentario.

Lo siento Marco, no describí mi problema más claramente.
Puedo obtener fácilmente el valor de la orden de ganancia en Pips y la moneda - con los códigos de abajo.

DoubleToString( OrderProfit(), 2 )
DoubleToString( change_to_points( Bid - OrderOpenPrice() ), 0 );

Pero trato de encontrar la solución para el Stop Loss y Take Profit en la moneda.

Estoy trabajando en ello, y todavía necesito ayuda, por favor.

Gracias de antemano.

 
Max Enrik: ut Intento de encontrar la solución para el Stop Loss y Take Profit en la moneda.
Sustituir OrderStopLoss por uno de ellos.
  • Usted coloca el stop donde debe estar - donde la razón de la operación ya no es válida. Por ejemplo, al operar en un rebote de un soporte, el stop se sitúa por debajo del soporte.
  • Saldo de la cuenta * por ciento/100 = RIESGO = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot+ CommissionPerLot) (Tenga en cuenta que OOP-OSL incluye el SPREAD, y que DeltaPerLot suele ser de unos 10$/pip, pero tiene en cuenta los tipos de cambio del par frente a la moneda de su cuenta).
  • NO utilice TickValue por sí mismo - DeltaPerLot
  • Debes normalizar los lotes correctamente y comprobar el mínimo y el máximo.
  • También debe comprobar FreeMargin para evitar el stop out
 
whroeder1:
Sustituya OrderStopLoss por uno de esos.
  • Usted coloca el stop donde debe estar - donde la razón de la operación ya no es válida. Por ejemplo, al operar en un rebote de un soporte, el stop se sitúa por debajo del soporte.
  • Saldo de la cuenta * por ciento/100 = RIESGO = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot+ CommissionPerLot) (Tenga en cuenta que OOP-OSL incluye el SPREAD, y que DeltaPerLot suele ser de unos 10$/pip, pero tiene en cuenta los tipos de cambio del par frente a la moneda de su cuenta).
  • NO utilice TickValue por sí mismo - DeltaPerLot
  • Debe normalizar los lotes correctamente y comprobar el mínimo y el máximo.
  • También debe comprobar FreeMargin para evitar el stop out

Gracias por tu comentario más informativo.
Lo estoy estudiando...

//--- 2ª vez editado

Tal vez la falta de conocimiento del código no me da permiso para entender su método de cálculo.
Pero creo que estoy cerca de la solución. Y trato por debajo de código que tengo ( para la orden de compra ) Stop Loss en la moneda.
Entonces obtengo estos resultados ( sé que me pasé algo... porque no puedo implicarlos... ) por ejemplo Ganancias: 7.67 USD - Pips: 1001 / para USDCAD. Pero en realidad Profit: 7.69 USD. ( Ya he comprobado ( Swap y Comisión ) )

double  tickvalue               = MarketInfo( Symbol(), MODE_TICKVALUE ) / MarketInfo( Symbol(), MODE_TICKSIZE ),
        buy_stoploss_incurrency = OrderOpenPrice() - OrderStopLoss();
string  stoploss_incurrency     = DoubleToString( OrderLots() * buy_stoploss_incurrency * tickvalue + OrderCommission(), 2 );

Print( "stop loss in currency: ", stoploss_incurrency );

Así que necesito consejo, por favor.

Gracias de antemano.

//--- 3ª vez editado

Por favor, codificador o programador que me haga saber por encima de código es correcto? Porque ahora veo el Stop Loss correcto en la moneda para GBPCHF, pero no es correcto para USDCAD. No puedo entender lo que está mal? ( nota: USDCAD posición abierta, pero GBPCHF es órdenes pendientes. )

Todo está bien por ahora. Así que, muchas gracias Sr. William.

Razón de la queja: