적응형 트리플 슈퍼트렌드 전략의 핵심 아이디어는 여러 슈퍼트렌드 지표를 결합하여 시장 트렌드를 식별하고, 트렌드가 일치할 때 장기화하고, 트렌드가 역전될 때 진출하는 것입니다.
구체적으로 전략은 세 개의 슈퍼 트렌드 지표를 사용합니다.
세 개의 슈퍼트렌드 지표 모두 동시에 상승 (녹색) 신호를 표시하면 전략은 정의된 날짜 범위 내에서 (2023년 1월 1일부터 2023년 10월 1일까지) 긴 포지션을 개설합니다. 슈퍼트렌드 지표 중 하나라도 하락 (붉은) 신호를 표시하면 전략은 긴 포지션을 종료합니다. 또한 전략은 수익을 확보하고 위험을 관리하기 위해 10%의 수익을 취하고 1%의 손실을 중지합니다.
따라서 무역의 구체적인 논리는 다음과 같습니다.
이 논리는 날짜 범위 내에서 상승 추세로부터 이익을 얻는 것을 목표로 하며, 스톱 로스로 하향 위험을 통제합니다.
적응적 삼중 슈퍼 트렌드 전략은 몇 가지 주요 장점을 가지고 있습니다:
요약하자면, 이 전략은 수동 거래를 돕기 위한 핵심 트렌드 다음 전략으로 훌륭하게 작동합니다. 위험 통제를 동시에 주요 트렌드로부터 이익을 얻기 위해 고품질의 거래 신호를 제공함으로써 양적 거래에 중요한 도구입니다.
많은 장점에도 불구하고, 적응적 삼중 슈퍼 트렌드 전략은 몇 가지 주요 위험을 가지고 있습니다.
이러한 위험은 다음과 같이 완화 될 수 있습니다.
다재다능한 트렌드 다음 전략으로서, 적응성 트리플 슈퍼트렌드는 개선할 여지가 많습니다.
이러한 최적화로 전략은 더 많은 시장 환경에서 안정적인 성과를 유지할 수 있으며 더 높은 수익 인자를 달성 할 수 있습니다. 이것은 앞으로 흥미로운 연구 방향을 제시합니다.
/*backtest start: 2023-01-25 00:00:00 end: 2024-01-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Custom Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15, shorttitle="Supertrend Strategy") // Define the parameters for Supertrend 1 factor1 = input.float(3.0, "Factor 1", step = 0.01) atrPeriod1 = input(12, "ATR Length 1") // Define the parameters for Supertrend 2 factor2 = input.float(1.0, "Factor 2", step = 0.01) atrPeriod2 = input(10, "ATR Length 2") // Define the parameters for Supertrend 3 factor3 = input.float(2.0, "Factor 3", step = 0.01) atrPeriod3 = input(11, "ATR Length 3") [_, direction1] = ta.supertrend(factor1, atrPeriod1) [_, direction2] = ta.supertrend(factor2, atrPeriod2) [_, direction3] = ta.supertrend(factor3, atrPeriod3) // Define the start and end dates as Unix timestamps (in seconds) start_date = timestamp("2023-01-01T00:00:00") end_date = timestamp("2023-10-01T00:00:00") // Determine Buy and Sell conditions within the specified date range in_date_range = true buy_condition = direction1 > 0 and direction2 > 0 and direction3 > 0 and in_date_range sell_condition = direction1 < 0 or direction2 < 0 or direction3 < 0 // Track the position with a variable var isLong = false if buy_condition and not isLong strategy.entry("Long Entry", strategy.long) isLong := true if sell_condition and isLong // Define take profit and stop loss percentages take_profit_percentage = 10 // Increased to 10% stop_loss_percentage = 1 // Calculate take profit and stop loss levels take_profit_level = close * (1 + take_profit_percentage / 100) stop_loss_level = close * (1 - stop_loss_percentage / 100) // Exit the long position with take profit and stop loss strategy.exit("Take Profit/Stop Loss", from_entry="Long Entry", limit=take_profit_level, stop=stop_loss_level) isLong := false