OPEN-SOURCE SCRIPT

daniel

//version=5
strategy("Estrategia ADX con Stop Loss y Objetivo", overlay=true)

// Configuración de parámetros
adxLength = input.int(14, title="Periodo ADX")
adxThreshold = input.int(25, title="Umbral ADX")
stopLossPerc = input.float(1, title="Stop Loss (%)", step=0.1) / 100
takeProfitPerc = input.float(3, title="Take Profit (%)", step=0.1) / 100 // Cambiado a 3%

// Cálculo de TR (True Range) manualmente
highLow = high - low
highClosePrev = math.abs(high - close[1])
lowClosePrev = math.abs(low - close[1])
tr = math.max(highLow, math.max(highClosePrev, lowClosePrev))
atr = ta.sma(tr, adxLength)

// Cálculo de +DM y -DM
plusDM = (high - high[1] > low[1] - low) ? math.max(high - high[1], 0) : 0
minusDM = (low[1] - low > high - high[1]) ? math.max(low[1] - low, 0) : 0

// Suavizado de +DM y -DM
smoothedPlusDM = ta.sma(plusDM, adxLength)
smoothedMinusDM = ta.sma(minusDM, adxLength)

// Cálculo de +DI y -DI
plusDI = (smoothedPlusDM / atr) * 100
minusDI = (smoothedMinusDM / atr) * 100

// Cálculo del DX y ADX
dx = math.abs(plusDI - minusDI) / (plusDI + minusDI) * 100
adx = ta.sma(dx, adxLength)

// Condiciones de entrada
longCondition = ta.crossover(plusDI, minusDI) and adx > adxThreshold
shortCondition = ta.crossover(minusDI, plusDI) and adx > adxThreshold

// Ejecución de operaciones
if (longCondition)
strategy.entry("Compra", strategy.long)

if (shortCondition)
strategy.entry("Venta", strategy.short)

// Stop Loss y Take Profit
strategy.exit("Cerrar Compra", from_entry="Compra", loss=stopLossPerc, profit=takeProfitPerc)
strategy.exit("Cerrar Venta", from_entry="Venta", loss=stopLossPerc, profit=takeProfitPerc)
Bands and ChannelsCandlestick analysisChart patterns

오픈 소스 스크립트

진정한 TradingView 정신에 따라, 이 스크립트의 저자는 트레이더들이 이해하고 검증할 수 있도록 오픈 소스로 공개했습니다. 저자에게 박수를 보냅니다! 이 코드는 무료로 사용할 수 있지만, 출판물에서 이 코드를 재사용하는 것은 하우스 룰에 의해 관리됩니다. 님은 즐겨찾기로 이 스크립트를 차트에서 쓸 수 있습니다.

차트에 이 스크립트를 사용하시겠습니까?

면책사항