Hi, I need to implement a condition in my system. I use an average of 14 and another of 35. Right now it is configured as follows: When the price is below the two averages, I buy, and when the price is above, I sell. I have a Stop loss of 10 points. The condition I want to implement is that when I miss the stop, I do not make another purchase (or sale) until the price has not returned to below the average (or vice versa if it is sale). This way, I would avoid that when there is an important increase or decrease, I am buying every time the stop drops, and accumulating very important losses. Thanks.
En el foro de español, habla español, por favor. Gracias.
Lo siento. Es mi primera vez y no me di cuenta. Lo explico en español. Uso un sitema con una media móvil de 14 y otra de 35 periodos. Compro cuando el precio está por debajo de ambas medias y vendo cuando está por encima. O sea un istema contratendencia. Coloco un stop de 10 puntos. Hasta aqui todo bien, pero necesito implementar una condición en la que cuando salta el stop, no vuelva a comprar hasta que el precio no se ha situado de nuevo bajo ambas medias. O al revés si estoy vendiendo. De esta manera evitaría tener perdidas grandes cuando hay una subida o bajada importante. Gracias de antemano.
Esto es lo que hice, verifique si puede funcionar bien y lamento si la traducción no es lo suficientemente precisa (estoy usando el traductor de Google):
ONCE MyProfit = 0 //Inicializa la variable para guardar la estrategia
IF Not OnMarket THEN
IF MyProfit = 0 THEN
MyProfit = StrategyProfit //Ahorre el beneficio inicial de la estrategia
ENDIF
TradeON = 1
IF MyProfit < STRATEGYPROFIT THEN //Si hubo una pérdida ...
TradeON = 0 //...señales para no abrir otras posiciones
ENDIF
ELSE
MyProfit = StrategyProfit //si un puesto está abierto, guarde la estrategia
ENDIF
FastMA = average[14](close)
SlowMA = average[35](close)
GoLong = FastMA < SlowMA AND close < FastMA
GoShort = FastMA > SlowMA AND close > FastMA
IF GoLong OR GoShort THEN //cuando el precio cae por debajo o por encima de los promedios, todavía puede ser operado
TradeON = 1
ENDIF
IF GoLong AND Not OnMarket AND TradeON THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF GoShort AND Not OnMarket AND TradeON THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
SET STOP pLOSS 10
SET TARGET pPROFIT 20
No funciona. Creo que me has entendido mal. Así es como lo tengo ahora mismo en mi platarforma:
-------------------------------------------------------------------------
// Código principal : EMA14,35TF-1
//-------------------------------------------------------------------------
// Definición de los parámetros del código
DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
// Impide al sistema operar en días precisos de la semana
daysForbiddenEntry = OpenDayOfWeek = 6
// Condiciones para entrada de posiciones largas
indicator1 = Average[14](close)
c1 = (close < indicator1)
indicator2 = Average[35](close)
c2 = (close < indicator2)
IF (c1 AND c2) AND not daysForbiddenEntry THEN
BUY 50 SHARES AT MARKET
ENDIF
// Condiciones de salida de posiciones largas
indicator3 = Average[14](close)
c3 = (close > indicator3)
indicator4 = Average[35](close)
c4 = (close > indicator4)
IF c3 AND c4 THEN
SELL AT MARKET
ENDIF
// Condiciones de entrada de posiciones cortas
indicator5 = Average[14](close)
c5 = (close > indicator5)
indicator6 = Average[35](close)
c6 = (close > indicator6)
IF (c5 AND c6) AND not daysForbiddenEntry THEN
SELLSHORT 50 SHARES AT MARKET
ENDIF
// Condiciones de salida de posiciones cortas
indicator7 = Average[14](close)
c7 = (close < indicator7)
indicator8 = Average[35](close)
c8 = (close < indicator8)
IF c7 AND c8 THEN
EXITSHORT AT MARKET
ENDIF
// Stops y objetivos
SET STOP pLOSS 10
Lo único que quiero implementar, es que por ejemplo, si estoy en compra y me salta el stop, no me vuelva a comprar hasta que no se den nuevamente las condiciones c5 y c6.
Para escribir el código , utilice el botón <> “insert PRT code”.Gracias.
Mañana voy a modificar tu estrategia.
Esta es su versión actualizada, la probé en el EUR/CHF en 1 minuto, porque el Stop Loss es demasiado pequeño y las condiciones de entrada demasiado fáciles y en los gráficos más largos a menudo abren y cierran una operación en la misma vela e inmediatamente abren otro sin que ProOrder sea capaz de detectar ONMARKET y STRATEGYPROFIT a tiempo.
//-------------------------------------------------------------------------
// Código principal : EMA14,35TF-1
//-------------------------------------------------------------------------
// Definición de los parámetros del código
DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
ONCE MyProfit = 0 //Variable utilizada para conocer el resultado (actualizado a
// la última operación cerrada) de mi estrategia
ONCE TradeLongON = 1 //Variable utilizada para permitir operaciones alcistas: 1 = sí, 0 = no
ONCE TradeShortON = 1 //Variable utilizada para permitir operaciones bajistas: 1 = sí, 0 = no
ONCE LongTrade = 0 //Variable utilizada para saber si la última operación fue al alza
ONCE ShortTrade = 0 //Variable utilizada para saber si la última operación fue hacia abajo
IF LongOnMarket THEN
LongTrade = 1
ShortTrade = 0
ELSIF ShortOnMarket THEN
LongTrade = 0
ShortTrade = 1
ENDIF
IF Not OnMarket AND MyProfit < StrategyProfit THEN //Si la última operación fue perdida ...
MyProfit = StrategyProfit
IF LongTrade THEN //...y fue alcista....
TradeLongON = 0 //...detener las operaciones alcistas
ELSIF ShortTrade THEN //...y era bajista...
TradeShortON = 0 //...detener operaciones bajistas
ENDIF
ENDIF
IF MyProfit <> StrategyProfit THEN
MyProfit = StrategyProfit //Guarde el resultado de la estrategia actualizada
ENDIF
// Impide al sistema operar en días precisos de la semana
daysForbiddenEntry = OpenDayOfWeek = 6
// Condiciones para entrada de posiciones largas
indicator1 = Average[14](close)
c1 = (close < indicator1)
indicator2 = Average[35](close)
c2 = (close < indicator2)
IF c1 AND c2 THEN //Cuando las condiciones C1 y C2 ocurren ...
TradeShortON = 1 //...Puedes comenzar de nuevo con operaciones bajistas
ENDIF
IF (c1 AND c2) AND not daysForbiddenEntry AND TradeLongON THEN
BUY 50 SHARES AT MARKET
ENDIF
// Condiciones de salida de posiciones largas
indicator3 = Average[14](close)
c3 = (close > indicator3)
indicator4 = Average[35](close)
c4 = (close > indicator4)
IF c3 AND c4 THEN
SELL AT MARKET
ENDIF
// Condiciones de entrada de posiciones cortas
indicator5 = Average[14](close)
c5 = (close > indicator5)
indicator6 = Average[35](close)
c6 = (close > indicator6)
IF c5 AND c6 THEN //Cuando las condiciones C5 y C6 ocurren ...
TradeLongON = 1 //...Puedes comenzar de nuevo con operaciones alcistas
ENDIF
IF (c5 AND c6) AND not daysForbiddenEntry AND TradeShortON THEN
SELLSHORT 50 SHARES AT MARKET
ENDIF
// Condiciones de salida de posiciones cortas
indicator7 = Average[14](close)
c7 = (close < indicator7)
indicator8 = Average[35](close)
c8 = (close < indicator8)
IF c7 AND c8 THEN
EXITSHORT AT MARKET
ENDIF
// Stops y objetivos
SET STOP pLOSS 10
//graph MyProfit
//graph StrategyProfit
//graph TradeLongON
//graph TradeShortON
//graph LongTrade + (ShortTrade * 2)
Roberto, sigue sin funcionar. Sigue comprando y vendiendo en el mismo sitio, y cuando me salta el stop, vuelve a comprar o vender, y eso estropea la estrategia. Yo necesito que cuando salte el stop, no me vuelva a hacer ninguna operación hasta que el precio no vuelva a sobrepasar las dos medias. Con lo cual siempre que salte el stop, la siguiente operación tiene que ser obligatoriamente contraria. Si me ha saltado el stop cuando estoy en compra, la siguiente operación tiene que ser de venta. Si no puedo hacer esto, la estrategia no funciona, porque cuando hay una subida grande, por ejemplo de 1000 puntos, Con mis sistema habria perdido diez veces seguidas.
Puede adjuntar una foto de la pantalla con la operación comercial destacada.
Cuéntame también sobre qué herramienta y el marco de tiempo probaste la estrategia.
Gracias.
perdon amigo jose antonio por opinar sobre tu estrategia pero no le veo mucho sentido a bloquear las operaciones de largos o cortos por el hecho de que salte el stop en un sentido u otro. Si, puede que salte el stop 10 veces seguidas y nos haga perder 100 pips pero también puede que salte una vez y la siguiente entrada sea un posible largo con un profit de 200 puntos y tu sistema no la abriria por por haber saltado antes el stop de 10 pip. Lo que es el stop es una protección pero no sirve para adivinar que la tendencia vaya a seguir en un sentido u otro.
Saludos
Buenos dias. Roberto, te envío una foto de la pantalla con una situación como la que quiero evitar.
En cuanto a tu opinión, Pablo, es evidente que no podemos adivinar que va a hacer el precio, la estrategia es sólo cuestión de matemáticas. De una manera funciona y de la otra no.
Roberto, me preguntabas también sobre la herramienta y el marco de tiempo. Está pensado para euro-dolar en tf de 1 minuto.
Desafortunadamente, como te dije, cuando la vela de configuración es la misma donde ocurre la pérdida de parada, no se puede verificar nada, porque ProOrder necesita una vela para actualizar ONMARKET y STRATEGYPROFIT.
Donde la estrategia funcionó fue solo porque el mercado estaba en la etapa lateral y los promedios móviles cruzados cada vez.
Lo único que debe hacer es probarlo en un marco de tiempo más pequeño, por ejemplo 5 segundos o addruttura 1.
Roberto, te aseguro que la estrategia funciona perfectamente en eurodolar y en graficos de 1 minuto. Lo que pasa es que no es rentable si no soy capaz de implementar esa condición de que el stop me salte una sola vez. Dime que puedo hacer, con quién puedo hablar o quién puede ayudarme a configurar esto como yo quiero. No puede ser tan complicado como para que no podáis ayudarme