Hola Buenos días,
He programado con la creación simplificada, pero no encuentro como se puede programar algo muy sencillo que es:
Vender cuando el precio se ha incrementado en un x%
A ver si alguien me puede decir como se pone.
Muchas gracias de antemano
Hola galibier,
Necesitarías establecer también desde que momento a que momento sube ese x%
Por ejemplo si es en sólo una vela creo que podría valer:
IF abs(close-close[1])/close)>x/100 THEN
SELL 1 CONTRACT AT MARKET
ENDIF
O si quieres que suba en un número de velas “y”
IF abs(close-close[y])/close)>x/100 THEN
SELL 1 CONTRACT AT MARKET
ENDIF
Ten en cuenta que la venta se produce siempre al principio de la vela siguiente, creo que no hay forma de hacer que sea dentro de una vela justo en el momento que se produce ese x% mayor. Puedes jugar con el timeframe para eso, poniendo timeframes menores puedes entrar antes.
No lo he probado en la plataforma así que puede haber algún error en el código pero creo que la idea es correcta
Acabo de darme cuenta de que si no recuerdo mal el indicador ROC (Rate of Change) es precisamente eso… el cambio en % de un número de velas… investígalo pero creo que con ese indicador sería aún más fácil de programar, algo así:
IF ROC[Y](close)>x THEN
SELL 1 CONTRACT AT MARKET
ENDIF
Muchas gracias,
Lo probaré, a ver que sale.
saludos
Hola de nuevo,
Lo he probado en los dos codigos pero me sale , “Error de sintaxis, linia 5, caracter 29, complete la sintaxi de esta linia”
A ver si me puedes decir donde esta el error.
Muchas gracias
Hola de nuevo,
Lo he probado en los dos codigos pero me sale , “Error de sintaxis, linia 5, caracter 29, complete la sintaxi de esta linia”
A ver si me puedes decir donde esta el error.
Muchas gracias
Galibier,
Mi código creo que está bien escrito pero sin ver tu código completo no puedo decirte nada más, no puedo saber que tienes en la línea 5, caracter 29 si no lo incluyes.
Hola buenos días,
El código es este: ( le he puesto los parametros de la y y de la x y me sale el error de “Error de sintaxis, linia 5, caracter 29, complete la sintaxi de esta linia”
// Definición de los parámetros del código
DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
// Condiciones de entrada de posiciones cortas
IF abs(close-close[y])/close)>x/100 THEN
SELL 1 CONTRACT AT MARKET
ENDIF
// Stops y objetivos
SET STOP %LOSS 10
SET TARGET %PROFIT 10
Mucghas gracias
Buenos días galibier,
Falta un paréntesis en una de las líneas de código que te escribí, tendría que ser: IF abs((close-close[y])/close)>x/100 THEN
Pero al revisarlo me di cuenta de algo importante: según está escrita la condición vale para cuando el precio sube o baja ese x%, el “abs” significa valor absoluto, si sólo quieres que se active cuando el precio se incremente (eso creo) el código quedaría:
// Definición de los parámetros del código
DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
// Condiciones de entrada de posiciones cortas
IF ((close-close[Y])/close)>x/100 THEN
SELL 1 CONTRACT AT MARKET
ENDIF
// Stops y objetivos
SET STOP %LOSS 10
SET TARGET %PROFIT 10
Hola,
He puesto lo que me indicas y me sale este mensaje:
Los sistemas de trading deben contener al menos una instruccion de entrada al mercado (BUY o SELLSHORT)
Seguro que es una tontería pero lo he intentado de varias formas y no hay manera.
Gracias de nuevo
Gallbier,
Fallo mío, no estoy acostumbrado a escribir así código sin pasarlo por el sistema y lo escribí mal, para abrir cortos es SELLSHORT en vez de SELL, SELL es sólo para cerrar la posición después de comprar -BUY.
Ok perfecto, ahora sí me funciona
muchs gracias