
이 전략은 다중 평행선 시스템과 RSI 지표에 기반한 트렌드 추적 전략이다. 이 전략은 20, 50 및 200 주기의 이동 평균 조합을 사용하여 서로 다른 평행선 사이의 위치 관계를 분석하여 시장의 흐름을 판단하고 RSI 지표와 결합하여 거래 신호를 확인한다. 이 전략은 동적 스톱 손실과 수익 목표를 설정하여 스톱 손실을 추적하여 얻은 이익을 보호한다.
이 전략의 핵심은 3개의 평균선 (MA20, MA50, MA200) 사이의 상대적인 위치 관계를 분석하여 시장의 추세를 결정하는 것이다. 이 전략은 18가지의 다른 평균선 조합 시나리오를 정의하고 있으며, 주로 평균선 교차와 위치 관계에 초점을 맞추고 있다. 단기 평균선이 장기 평균선 위에 있을 때, 더 많은 것을 할 경향이 있다. 반대로 더 많은 것을 할 경향이 있다. 과도한 거래를 피하기 위해, 이 전략은 RSI 지표를 필터링 조건으로 도입했으며, RSI가 70보다 낮으면 더 많은 것을 할 수 있고, 30보다 높으면 더 많은 것을 할 수 있다. 이 전략은 1:10의 리스크 수익률을 설정하고, 25점의 추적 스톱을 사용하여 이익을 보호한다.
이 전략은 구조적으로 완전하고 논리적으로 명확한 트렌드 추적 전략이다. RSI 지표의 필터링과 함께 여러 평행선 시스템의 결합을 통해 비교적 신뢰할 수있는 거래 시스템을 형성한다. 전략의 위험 관리 메커니즘은 합리적으로 설계되어 있으며, 스톱을 추적하는 방식으로 수익을 보호하고 조기 퇴출하지 않습니다. 전략에는 여전히 최적화 할 수있는 공간이 있지만 전체적인 프레임 워크 설계는 과학적이며 실제 응용 가치가 있습니다.
/*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"}]
*/
//@version=5
strategy("Refined MA Strategy with Trailing Stop for 30m", overlay=true)
// Define the moving averages
TR20 = ta.sma(close, 20)
TR50 = ta.sma(close, 50)
TR200 = ta.sma(close, 200)
// Define the RSI for additional filtering
rsi = ta.rsi(close, 14)
// Define the scenarios
scenario1 = TR20 > TR50 and TR50 > TR200
scenario2 = TR50 > TR20 and TR20 > TR200
scenario3 = TR200 > TR50 and TR50 > TR20
scenario4 = TR50 > TR200 and TR200 > TR20
scenario5 = TR20 > TR200 and TR200 > TR50
scenario6 = TR200 > TR20 and TR20 > TR50
scenario7 = TR20 == TR50 and TR50 > TR200
scenario8 = TR50 == TR20 and TR20 > TR200
scenario9 = TR200 == TR50 and TR50 > TR20
scenario10 = TR20 > TR50 and TR50 == TR200
scenario11 = TR50 > TR20 and TR20 == TR200
scenario12 = TR20 > TR50 and TR50 == TR200
scenario13 = TR20 == TR50 and TR50 == TR200
scenario14 = TR20 > TR50 and TR200 == TR50
scenario15 = TR50 > TR20 and TR200 == TR50
scenario16 = TR20 > TR50 and TR50 == TR200
scenario17 = TR20 > TR50 and TR50 == TR200
scenario18 = TR20 > TR50 and TR50 == TR200
// Entry conditions
longCondition = (scenario1 or scenario2 or scenario5) and rsi < 70
shortCondition = (scenario3 or scenario4 or scenario6) and rsi > 30
// Execute trades based on scenarios with 50 points stop loss and 1:10 RR, using a trailing stop of 25 points
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit", from_entry="Long", limit=close + 250, trail_offset=25)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit", from_entry="Short", limit=close - 250, trail_offset=25)