
이것은 TRAMA ((Triangular Moving Average) 와 간단한 이동 평균 ((SMA) 을 기반으로 한 지능형 에너지 거래 전략이다. 이 전략은 두 가지 평행선 시스템을 결합하여 거래 신호를 생성하고 위험을 제어하기 위해 스톱 스톱 메커니즘을 설정한다. 이 전략은 4주기 및 28주기의 SMA 교차와 TRAMA 지수를 사용하여 거래 신호를 확인하고, 여러 신호를 확인하여 거래의 정확성을 향상시킨다.
전략은 거래 신호를 생성하기 위해 두 가지 핵심 구성 요소를 사용합니다. 첫째는 4주기 및 28주기 SMA를 기반으로 한 교차 시스템입니다. 단기 평균이 장기 평균을 상향으로 통과하면 다중 신호가 발생하고, 하향으로 통과하면 공백 신호가 발생합니다. 두 번째로, 전략은 TRAMA 지표를 보조 확인 시스템으로 도입합니다.
이 전략은 전통적인 기술 분석과 현대적인 양적 거래 철학을 결합한 전략이다. 다중 신호 확인과 엄격한 위험 통제를 통해, 전략은 좋은 실용성을 보여준다. 일부 최적화가 필요한 곳이 있지만, 전체적인 프레임 워크 디자인은 합리적이며, 좋은 응용 전망을 가지고 있다.
/*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)