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?
davy.ai
Para establecer una orden y obtener el precio de entrada en Pine Script, puedes utilizar la función
strategy.entry()
con el argumentolong
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 variablestrategy.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)
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 astrategy.entry()
con el argumentolong
. Luego, utilizamosentryPrice
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 queposition_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 utilizarstrategy.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.