이 전략은 트라마 (삼각형 이동 평균) 와 단순 이동 평균 (SMA) 을 기반으로 하는 지능형 양적 거래 전략이다. 이 전략은 거래 신호를 생성하기 위한 두 이동 평균 시스템을 결합하고 위험 통제를 위해 스톱 로스/테이크 노프프 메커니즘을 구현한다. 트라마 지표와 함께 4 기간 및 28 기간 SMA 크로스오버를 사용하여 거래 신호를 확인하여 여러 신호 확인을 통해 정확도를 향상시킨다.
이 전략은 트레이딩 신호를 생성하기 위해 두 가지 핵심 구성 요소를 사용합니다. 첫째는 4 기간 및 28 기간 SMA를 기반으로 한 크로스오버 시스템으로, 단기 MA가 장기 MA를 넘어서면 긴 신호를 생성하고, 아래로 넘어가면 짧은 신호를 생성합니다. 둘째, 전략은 TRAMA 지표를 보조 확인 시스템으로 통합합니다. TRAMA는 더 빠른 응답 시간과 더 적은 지연으로 향상된 이동 평균입니다. 가격이 TRAMA를 통과 할 때 추가 거래 신호가 생성됩니다. 전략에는 또한 각각 2%와 1%로 설정된 비율 기반의 수익 취득 및 스톱 로스 메커니즘이 포함되어 있습니다.
이 전략은 전통적인 기술 분석과 현대적인 양적 거래 개념을 결합한 전략이다. 다중 신호 확인과 엄격한 위험 통제를 통해 전략은 좋은 실용성을 보여줍니다. 최적화 할 수있는 영역이 있지만 전반적인 프레임워크 디자인은 좋은 응용 전망과 합리적입니다. 거래자는 실시간 거래 전에 철저한 역사 데이터 백테스팅과 매개 변수 최적화를 수행하는 것이 좋습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ivanvallejoc //@version=5 strategy("MANCOS2.0", overlay=true, margin_long=80, margin_short=80) longCondition = ta.crossover(ta.sma(close, 4), ta.sma(close, 28)) if (longCondition) strategy.entry("My Long Entry Id", strategy.long) shortCondition = ta.crossunder(ta.sma(close, 4), ta.sma(close, 28)) if (shortCondition) strategy.entry("My Short Entry Id", strategy.short) // Parámetros de la TRAMA length = input(1.5, title="TRAMA Length") src = close filt = 2 / (length + 1) trama = 0.0 var tramaPrev = na(trama[1]) ? close : trama[1] trama := (src - tramaPrev) * filt + tramaPrev // Plot de la TRAMA plot(trama, color=color.blue, linewidth=2, title="TRAMA") // Señales de compra y venta basadas en TRAMA buySignal = ta.crossover(close, trama) sellSignal = ta.crossunder(close, trama) // Configuración de Take Profit y Stop Loss takeProfitPerc = input(2, title="Take Profit (%)") / 100 stopLossPerc = input(1, title="Stop Loss (%)") / 100 // Precios de TP y SL takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPerc) stopLossPrice = strategy.position_avg_price * (1 - stopLossPerc) // Condiciones de entrada en largo if (buySignal) strategy.entry("Long", strategy.long) // Condiciones de salida para posición larga (TP/SL) if (strategy.position_size > 0) strategy.exit("TP/SL", "Long", limit=takeProfitPrice, stop=stopLossPrice) // Entrada en corto basada en TRAMA if (sellSignal) strategy.entry("Short", strategy.short) // Precios de TP y SL para posiciones cortas takeProfitPriceShort = strategy.position_avg_price * (1 - takeProfitPerc) stopLossPriceShort = strategy.position_avg_price * (1 + stopLossPerc) if (strategy.position_size < 0) strategy.exit("TP/SL", "Short", limit=takeProfitPriceShort, stop=stopLossPriceShort)