SISTEMA DE MEDIAS MOVILES A LA CONTRA

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #114117 quote
    jacas
    Participant
    New

    Hola. Utilizo un sistema con dos medias móviles simples de 5 y de 10. El sistema va a contratendencia. O sea cuando el precio supera ambas medias móviles, vendo, y cuando el precio está por debajo de ambas medias móviles, compro. Coloco un stop de 20 puntos. Necesito añadir una condición para que cuando me salta el stop, no se produzca un nueva compra hasta que el precio haya cruzado las medias de nuevo, para así evitar que en una subida o caida importante me esté comprando o vendiendo continuamente produciendo perdidas considerables. Espero que haya quedado suficientemente claro. Agradecería si alguien puede ayudarme. Muchas gracias de antemano.

    // Definición de los parámetros del código
    DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
    
    // Condiciones para entrada de posiciones largas
    indicator1 = ExponentialAverage[5](close)
    c1 = (close < indicator1)
    indicator2 = Average[10](close)
    c2 = (close < indicator2)
    
    IF c1 AND c2 THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    // Condiciones de salida de posiciones largas
    indicator3 = ExponentialAverage[5](close)
    c3 = (close > indicator3)
    indicator4 = Average[10](close)
    c4 = (close > indicator4)
    
    IF c3 AND c4 THEN
    SELL AT MARKET
    ENDIF
    
    // Condiciones de entrada de posiciones cortas
    indicator5 = ExponentialAverage[5](close)
    c5 = (close > indicator5)
    indicator6 = Average[10](close)
    c6 = (close > indicator6)
    
    IF c5 AND c6 THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    // Condiciones de salida de posiciones cortas
    indicator7 = ExponentialAverage[5](close)
    c7 = (close < indicator7)
    indicator8 = Average[10](close)
    c8 = (close < indicator8)
    
    IF c7 AND c8 THEN
    EXITSHORT AT MARKET
    ENDIF
    
    // Stops y targets
    SET STOP pLOSS 20
    SET TARGET pPROFIT 50
    
    #114118 quote
    robertogozzi
    Moderator
    Master

    Pruebe este (no probado):

    // Definición de los parámetros del código
    DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
    ONCE TradeON = 1
    IF StrategyProfit < StrategyProfit[1] THEN
       TradeON = 0
    ENDIF
    // Condiciones para entrada de posiciones largas
    indicator1 = ExponentialAverage[5](close)
    c1 = (close < indicator1)
    indicator2 = Average[10](close)
    c2 = (close < indicator2)
    Cross1 = c1 CROSSES OVER c2
    IF Cross1 THEN
       TradeON = 1
    ENDIF
    IF c1 AND c2 AND TradeON THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
     
    // Condiciones de salida de posiciones largas
    indicator3 = ExponentialAverage[5](close)
    c3 = (close > indicator3)
    indicator4 = Average[10](close)
    c4 = (close > indicator4)
     
    IF c3 AND c4 THEN
    SELL AT MARKET
    ENDIF
     
    // Condiciones de entrada de posiciones cortas
    indicator5 = ExponentialAverage[5](close)
    c5 = (close > indicator5)
    indicator6 = Average[10](close)
    c6 = (close > indicator6)
    Cross2 = c5 CROSSES UNDER c6
    IF Cross2 THEN
       TradeON = 1
    ENDIF
    IF c5 AND c6 AND TradeON THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
     
    // Condiciones de salida de posiciones cortas
    indicator7 = ExponentialAverage[5](close)
    c7 = (close < indicator7)
    indicator8 = Average[10](close)
    c8 = (close < indicator8)
     
    IF c7 AND c8 THEN
    EXITSHORT AT MARKET
    ENDIF
     
    // Stops y targets
    SET STOP pLOSS 20
    SET TARGET pPROFIT 50
    #114122 quote
    jacas
    Participant
    New

    Necesito que una vez que salte el stop no se produzca ninguna compra hasta que el precio no cruce ambas medias. Con esto creo que solo lo evita al cruzar una. O sea no puede haber dos compras o ventas seguidas en el mismo sentido nunca. Quizás sea más fácil programar así, dando una orden de que no no se pueden producir dos compras seguidas en el mismo sentido. Es una idea.

    #114124 quote
    robertogozzi
    Moderator
    Master

    Lo siento, entendí mal su solicitud.

    Reemplace la línea 12 con:

    Cross1 = (close CROSSES UNDER indicator1 AND close < indicator2) OR (close CROSSES UNDER indicator2 AND close < indicator1) OR (close CROSSES UNDER indicator1 AND close CROSSES UNDER indicator2)

    y línea 35 con:

    Cross2 = (close CROSSES OVER  indicator5 AND close > indicator6) OR (close CROSSES OVER  indicator6 AND close > indicator5) OR (close CROSSES OVER  indicator5 AND close CROSSES OVER  indicator6)
    #114126 quote
    robertogozzi
    Moderator
    Master

    Esta es la versión que no permite más de una operación en la misma dirección:

    // Definición de los parámetros del código
    DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
    ONCE TradeLong  = 1
    ONCE TradeShort = 1
    // Condiciones para entrada de posiciones largas
    indicator1 = ExponentialAverage[5](close)
    c1 = (close < indicator1)
    indicator2 = Average[10](close)
    c2 = (close < indicator2)
    IF c1 AND c2 AND TradeLong AND Not OnMarket THEN
    BUY 1 CONTRACT AT MARKET
    TradeLong  = 0
    TradeShort = 1
    ENDIF
     
    // Condiciones de salida de posiciones largas
    indicator3 = ExponentialAverage[5](close)
    c3 = (close > indicator3)
    indicator4 = Average[10](close)
    c4 = (close > indicator4)
     
    IF c3 AND c4 THEN
    SELL AT MARKET
    ENDIF
     
    // Condiciones de entrada de posiciones cortas
    indicator5 = ExponentialAverage[5](close)
    c5 = (close > indicator5)
    indicator6 = Average[10](close)
    c6 = (close > indicator6)
    IF c5 AND c6 AND TradeShort AND Not OnMarket THEN
    SELLSHORT 1 CONTRACT AT MARKET
    TradeLong  = 1
    TradeShort = 0
    ENDIF
     
    // Condiciones de salida de posiciones cortas
    indicator7 = ExponentialAverage[5](close)
    c7 = (close < indicator7)
    indicator8 = Average[10](close)
    c8 = (close < indicator8)
     
    IF c7 AND c8 THEN
    EXITSHORT AT MARKET
    ENDIF
     
    // Stops y targets
    SET STOP pLOSS 20
    SET TARGET pPROFIT 50
    #114133 quote
    jacas
    Participant
    New

    No se consigue con ese cambio. Si lo pruebas por ejemplo en Euro-Dolar en un día como ayer, que fue de una fuerte subida, no puedes evitar que se compre una posición cada vez que salta el stop.

    #114134 quote
    robertogozzi
    Moderator
    Master

    ¿Qué marco de tiempo usas?

    #114137 quote
    jacas
    Participant
    New

    15 MINUTOS

    #114157 quote
    robertogozzi
    Moderator
    Master

    Probé con EurUsd, un plazo de 15 minutos, y todas las operaciones parecen buenas. Entraron en LARGO cuando el precio estaba por debajo de ambos promedios y no entraron en un nuevo comercio en la misma dirección hasta que ocurrió un nuevo cruce. Si encontró algunas transacciones incorrectas, ¿informará el día y la hora de la vela cuando ingresaron las transacciones? Gracias.

    Nicolas thanked this post
    #114182 quote
    jacas
    Participant
    New

    Te envío una captura de pantalla de los resultados de estos tres últimos días. Como verás salta el stop varias veces seguidas, que es lo que pretendo evitar.

    Captura-de-pantalla.png Captura-de-pantalla.png
    #114230 quote
    robertogozzi
    Moderator
    Master

    Es por sus condiciones de exir, en las líneas 37-45. No espera a que se alcancen las ganancias o pérdidas, cuando las condiciones se invierten, se detiene. Debe cambiar sus condiciones para salir, o usar solo pips para salir, sin preocuparse por los cruces inversos.

    #114707 quote
    Lisandro77
    Participant
    Average

    Hola Roberto…opero en DAX y con Acciones de EEU, hay determinadas estrategias que aplico en forma manual y quisiera hacerte unas consultas para respecto a la programación de Pro Real Time (la estoy probando desde hace un tiempo, pero en algunos detalles no puedo avanzar)..Es posible realizarte consulta por aqui..?

    Gracias. Saludos

    Lisandro

    #114713 quote
    robertogozzi
    Moderator
    Master

    Sí, solo pregunta y trataré de ayudarte lo antes posible.

Viewing 13 posts - 1 through 13 (of 13 total)
  • You must be logged in to reply to this topic.

SISTEMA DE MEDIAS MOVILES A LA CONTRA


ProOrder: Trading Automático y Backtesting

New Reply
Author
author-avatar
jacas @jacas Participant
Summary

This topic contains 12 replies,
has 3 voices, and was last updated by robertogozzi
6 years, 3 months ago.

Topic Details
Forum: ProOrder: Trading Automático y Backtesting
Language: Spanish
Started: 12/03/2019
Status: Active
Attachments: 1 files
Logo Logo
Loading...