es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No puedo entender el lenguaje de script para Pine (más de 3000 órdenes).

Así que soy bastante nuevo en Pine y estoy tratando de entenderlo.

No sé cómo tomar el precio de entrada de la orden larga que estoy configurando, así que intenté esto pero obtengo resultados incorrectos, asumo que esto se debe a que el precio promedio de posición sigue cambiando mientras longCond es verdadero.

//@version=4
strategy("wtf", overlay=true, initial_capital=100)

ema50 = ema(close, 50)
ema200 = ema(close, 200)

plot(ema50)
plot(ema200)

TP = 0.0
SL = 0.0

longCond = (ema50 > ema200)
if (longCond)
    strategy.entry("long", strategy.long)
    TP := strategy.position_avg_price * 1.2
    SL := strategy.position_avg_price * 0.8

strategy.exit("close", "long", limit=TP, stop=SL)

¿Cómo puedo establecer una orden y tomar el precio de entrada para luego establecer una orden límite y una orden de stop para TP y SL?
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para establecer una orden y obtener el precio de entrada en Pine Script, puedes utilizar la función strategy.entry() con el argumento long para establecer una orden de compra al precio actual de mercado. Luego, para calcular las órdenes límite y de stop para TP y SL, puedes utilizar la variable strategy.position_avg_price para obtener el precio de entrada de la posición actual.

    Aquí tienes un ejemplo de cómo puedes modificar el código para establecer las órdenes límite y de stop:

    “`//@version=4
    strategy(“wtf”, overlay=true, initial_capital=100)

    ema50 = ema(close, 50)
    ema200 = ema(close, 200)

    plot(ema50)
    plot(ema200)

    TP = 0.0
    SL = 0.0

    longCond = ema50 > ema200
    if longCond
    // Establecer orden de compra y obtener el precio de entrada
    entryPrice = strategy.entry(“long”, strategy.long)

    // Calcular precios límite y de stop basados en el precio de entrada
    TP := entryPrice * 1.2
    SL := entryPrice * 0.8
    

    strategy.exit(“close”, “long”, limit=TP, stop=SL)
    “`

    En esta versión modificada del código, utilizamos la variable entryPrice para almacenar el resultado de llamar a strategy.entry() con el argumento long. Luego, utilizamos entryPrice para calcular los precios límite (TP) y de stop (SL) basados en un porcentaje del precio de entrada.

    Ten en cuenta que en esta versión del código no se utiliza la variable strategy.position_avg_price. Esto se debe a que position_avg_price refleja el costo promedio de la posición actual, lo cual puede no ser el mismo que el precio de entrada de la orden más reciente. Al utilizar strategy.entry() para obtener directamente el precio de entrada, nos aseguramos de que nuestras órdenes límite y de stop se basen en el precio correcto.

Comments are closed.