¡Ayuda! - ¿Cómo hacer stop final no tomar pérdidas cuando beneficio negativo?
Resultados 1 al 6 de 6

Tema: ¡Ayuda! - ¿Cómo hacer stop final no tomar pérdidas cuando beneficio negativo?

  1. #1
    Estoy de vuelta probando usando la demo comercial de MB. El código estándar de final de recorrido no tendrá en cuenta el cambio de comisión y orden.
    ¿Alguien había intentado con éxito tener el trailing stop no tomar pérdidas con beneficio negativo?

    código típico de final de recorrido:

    void ShortTrailingStop ()
    {
    int scnt;
    int stotal = OrdersTotal ();

    para (scnt = stotal-1; scnt gt; = 0; scnt--)
    {
    OrderSelect (scnt, SELECT_BY_POS, MODE_TRADES);
    if (OrderType () lt; = OP_SELL OrderSymbol () == Símbolo ())
    {
    if (OrderType () == OP_SELL)/se abre la posición corta
    {
    if (TrailingStopgt; 0)
    {
    if ((OrderOpenPrice () - Ask) gt; (Point * TrailingStop))
    {
    if ((OrderStopLoss () gt; (Ask (Point * TrailingStop))) || (OrderStopLoss () == 0))
    {
    OrderModify (OrderTicket (), OrderOpenPrice (), Ask (Point * TrailingStop), OrderTakeProfit (), 0, Red);
    return (0);
    }
    }
    }
    }
    }
    }
    }

  2.                         
    Publicidad
  3. #2
    Fácil. Simplemente haga que el código final agregue el beneficio = ganancia Ganancia () y rechace el retiro a menos que el beneficio; 0. - Tendrás que cerrar las órdenes por código de programa en lugar de usar stoploss en orden.

  4. #3
    Gracias por su respuesta, luego no se queda, solo obtendrá ganancias cuando existan beneficios que requieran la función OrderModify () para el seguimiento, pero el parámetro doble stoploss es la causa del problema. No funcionará con el agente encargado. ¿Hay alguna manera de evitar esto?

  5. #4

    Cita Iniciado por ;
    Estoy de vuelta probando ... if (OrderType () lt; = OP_SELL OrderSymbol () == Symbol ()) {if (OrderType () == OP_SELL)/abre la posición corta {
    Bueno, no estoy muy seguro de si cambiaría el resultado final del código en este momento, pero creo que he visto este pequeño detalle recientemente en algún otro tema. if (OrderType () lt; = OP_SELL siempre será verdadero, algo relacionado con OrderType () no es un número. Creo que se saldrá con la suya debido a su siguiente if () es decir, (OrderType () == OP_SELL) Ver en este 1 está comprobando si es igual a OP_SELL, que es el uso correcto. Verificar si hay menos de OP_SELL no es el uso correcto (¿gramar?) Creo que hay un valor de intercambio almacenado para el pedido, pero no estoy seguro acerca de la comisión aclamaciones

  6. #5
    Gracias por tu respuesta. Ese no es el problema, acabo de cambiarlo a == FYI que fue para verificar si es OP_SELL u OP_BUY que devolverá 1 y 0. lt; = 1 o 0. No es el motivo por el que Tailing Stop Loss vende a pérdida

  7. #6
    La rutina se involucra un poco. Debe calcular la ganancia de pip más alta obtenida desde que se abrió la orden. Resta tu factor de sendero. Si el camino se activara, también verifica si el orden es beneficioso. Si es así, permita que se cierre la orden. Deberá usar iBarShift en M1 e iHighest o iLowest para calcular el precio más alto o más bajo alcanzado desde la creación de la orden. Comience con OrderOpenTime () y avance a la hora actual y encuentre el precio más altomás bajo (dependiendo de si es COMPRAR o VENDER). Mantenga también el recuento de OrderProfit (): si está en el beneficio, cierre el pedido con OrderClose ().

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.