[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 625

 
Dimka-novitsek:

¡Buenos días!

Categóricamente no puedo entenderlo - las condiciones para el trailing stop no funcionan.

Así, el pedido se retira inmediatamente cuando aún no está en el historial, ¡lo que no entiendo en absoluto!

¡Y esta es la situación es mejor! Si tenemos este truco, al menos se corrige la orden cuando ya está en el historial.

Pero una de cada cinco o diez veces la nahodka no toma el valorverdadero, ¡y no se producen más modificaciones!


¿Has probado con if(OrderClosePrice()==OrderTakeProfit())nahodka=true;?
 
Dimka-novitsek:

¡Buenos días!

Categóricamente no puedo entenderlo - las condiciones para el trailing stop no funcionan.

Así, el pedido se retira inmediatamente cuando aún no está en el historial, ¡lo que no entiendo en absoluto!

¡Y esta es la situación es mejor! Si tenemos este truco, al menos se corrige la orden cuando ya está en el historial.

Pero una de cada cinco o diez veces la nahodka no toma el valor verdadero, ¡y no se producen más modificaciones!

Cuando se selecciona un pedido por billete, no se tiene en cuenta el fondo común. Por lo tanto, es absolutamente inútil escribir MODE_HISTORY. Una vez seleccionada la orden según el ticket, hay que comprobar necesariamente su hora de cierre OrderCloseTime() - si es mayor que cero, la orden se cierra y se selecciona del historial, si es cero, entonces la orden sigue en el mercado y se selecciona de la lista de posiciones de mercado.

Esta comprobación no está presente en sus líneas:

if (OrderSelect(tacket, SELECT_BY_TICKET , MODE_HISTORY)) 
if (OrderTakeProfit( )-3*Point<profit&&OrderTakeProfit( )+3*Point>profit) nahodka=true;     // Находим ордер, сработавший именно по тейкпрофиту 

Hay que empezar de a poco:

if (OrderSelect(tacket, SELECT_BY_TICKET)) {
   if (OrderCloseTime()>0) {                         // Убедились, что ордер выбран из истории
      // Тут ищете далее то, что вам необходимо ... а закрылся ли он по тейку ...
      }
   }

y serás feliz...

 
Dimka-novitsek:

¡Buenos días!

Categóricamente no puedo entenderlo - las condiciones para el trailing stop no funcionan.

Así, el pedido se retira inmediatamente cuando aún no está en el historial, ¡lo que no entiendo en absoluto!

¡Y esta es la situación es mejor! Si tenemos este truco, al menos se corrige la orden cuando ya está en el historial.

¡Sin embargo, el nahodka no toma ningún valorverdadero una vez de cinco a diezy no hay ninguna otra modificación!

¡! - Es su ingenio para nombrar el Ticket: tecket, tocket, tucket, etc. etc. ¡¿No estás confundido con estos nombres?! Mi consejo: para evitar confusiones, no lo hagas. Así es como se construye LochBranding, por ejemplo: ADIDAS y ADITAS...

Además, no tiene sentido tener tantas banderas, por ejemplo

     if (OrderSelect (ticket, SELECT_BY_TICKET))
     {
         //---- Проверяем закрыт этот ордер или нет
         if (OrderCloseTime > 0)
         {
             //---- Находим ордер, сработавший именно по тейкпрофиту 
             if (NormalizeDouble (OrderTakeProfit()- OrderClosePrice()), Digits) == 0.0)
             {
                 if (OrderSelect (tucket, SELECT_BY_TICKET))
                 {
                     double ld_SL = NormalizeDouble (Bid - treylingstop * Point, Digits);
                     if (NormalizeDouble (ld_SL - OrderStopLoss(), Digits) > 0.0)
                     {
                         Print ("втораямодифи    " );
                         OrderModify (tucket, OrderOpenPrice(), ld_SL, OrderTakeProfit(), 0, CLR_NONE);
                     }
                 }
             }
         }
     }
Esta es una improvisación fácil basada en su código.
 
¡¡¡¡¡¡¡Gracias!!!!!!!
 
Dimka-novitsek:
¡¡Sí, claro!!
Dimka-novitsek:

Así es como no se modifica bye - y es una condición zircal, y tampoco funciona todo el tiempo.

Este es el lugar.


No debería modificarse, porque la última operación, y en general todas las del gráfico dado, están cerradas en sl
 
lottamer:

resulta que la función SecondsAfterOpenLastPos() de la biblioteca de Kim devuelve estos números 1355319542 , y el último número es realmente segundos... puedes ver cómo cambian.....

¿qué es? si realmente son segundos - son 43 años.... y medio.... y la función debería devolver los segundos transcurridos desde que se cerró la última transacción...

Aunque resulta que incluso OrderOpenTime da la hora en el mismo formato... ¿cómo traducirlo a la inversa? aparentemente debe tomar la hora actual y restarle OrderOpenTime. ¿Cómo puedo obtener la hora actual?


Si quieres ver la hora en un formato al que estés más acostumbrado, utiliza las funciones de conversión, hay muchas de ellas en la sección de ayuda de la fecha y hora, puedes mostrar la salida en diferentes formatos, por ejemplo, días, horas, minutos, tiempo...

La última hora del servidor será devuelta por la función iClose para la barra cero. O simplementeClose[0].

Esta función devuelve el último precio conocido. El tiempo volverá

HoraCorriente( )
 
rigonich:


Ya te han dicho que este es el formato de hora con el que trabaja el ordenador, y es el único con el que puede trabajar. Si quieres ver la hora en un formato más familiar, utiliza las funciones de traducción, hay muchas en la sección de ayuda de fecha y hora, puedes sacar lo que quieras, separar los días, las horas, los minutos, la hora en diferentes formatos...

La última hora del servidor será devuelta por la función iClose para la barra cero. O simplementeClose[0].

Esta función devuelve el último precio conocido. El tiempo volverá

HoraCorriente( )


conseguí enganchar el post :))), aunque lo borré...descubrí que la hora se encuentra simplemente restandoTimeCurrent()-OrderOpenTime()
 
lottamer:

conseguí enganchar el post :))), aunque lo borré...habiendo descubierto que la hora se encuentra simplemente restando TimeCurrent()-OrderOpenTime()

Si quiere que no responda a sus preguntas, dígalo.
 

Sólo tengo una posición en el mercado... así que no fallará...

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))

 
rigonich:

Si quiere que no responda a sus preguntas, dígalo.

No, no!!! quiero hacerlo, pero no quiero que hagas ningún trabajo extra... ya eres REALMENTE útil... así que lo que he conseguido averiguar yo mismo (¡no puedes preguntar y quedarte sin hacer nada!) - lo borraré rápidamente...