
이동평균형 다변형 전략은 여러 개의 다른 주기의 이동평균선을 통해 다변형을 구축하고 다변형을 뚫고 거래 신호로 거래하는 트렌드 추적 전략이다. 이 전략은 여러 시간 주기 요소를 종합적으로 고려하여 시장 소음을 효과적으로 필터링하여 주요 트렌드를 잡을 수 있다.
이 전략은 3주기, 7주기 및 13주기 EMA와 같은 다른 주기의 EMA 평균선을 입력하여 가격 그래프에 다변형 채널을 구성합니다. 가격이 여러 EMA 평균선을 통과하면 여러 신호가 생성됩니다. 가격이 여러 EMA 평균선을 통과하면 빈 신호가 생성됩니다. 이것은 많은 가짜 돌파구를 배제 할 수 있습니다.
코드에서 close>ema1 and ema1>ema2 and ema2>ema3를 통해 상단파지 신호를 결정하고, close
이 전략의 가장 큰 장점은 주요 트렌드 방향을 효과적으로 파악하고, 여러 이동 평선을 사용하여 필터링 메커니즘을 구축하여, 시장의 단기 잡음으로 영향을 받지 않고, 가짜 신호를 줄이는 것입니다. 이동 중지 손실은 이익을 보호 할 수있는 적시에 중단 할 수 있습니다.
이 전략의 주요 위험은 트렌드를 정의할 수 없는 전환점이며, 트렌드가 반전될 때 상쇄로 인해 손실이 발생할 수 있다. 또한, 평행선 조합의 부적절한 설정은 거래 빈도가 너무 높거나 신호 지연으로 이어질 수 있다. 평행선 파라미터 조합을 최적화하고, 다른 지표를 추가하여 반전을 판단하고, 스톱 손실 범위를 넓히는 등의 방법을 통해 위험을 줄일 수 있다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이동 평균의 주기 변수를 최적화하여 최적의 변수 조합을 찾습니다.
트렌드 전환점에서 RSI, MACD 등과 같은 반전 신호 지표를 추가하여 적시에 손실을 막습니다.
이동한 스톱의 스톱 크기와 오차 값을 최적화하여 스톱이 트리거되는 확률을 낮춘다.
다양한 품종의 변수를 최적화하여 전략적 적응력을 높여줍니다.
이동평등선 다면형 전략은 전체적으로 신뢰할 수 있고 효과적인 트렌드 추적 전략이다. 그것의 가장 큰 장점은 주요 트렌드 방향을 잡는 동시에 큰 양의 소음을 필터링 할 수 있다는 것이다. 그러나 또한 역전 인식의 부족한 문제가 있다. 우리는 매개 변수 최적화, 보조 지표의 추가와 같은 방법을 통해 전략의 성능을 향상시킬 수 있다. 이 전략은 트렌드가 명백한 품종에 적합하며, 적절하게 사용하면 안정적인 거래 수익을 얻을 수 있다.
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Crypto-Oli
//@version=4
strategy("BLANK Strategy + TSL", initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, pyramiding=1, commission_value=0.075, overlay=true)
////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
////////////////////////////////////////////////////////////////////////////////
/// YOUR INPUTS BELOW - DELET EXAPLES ///
ema1=ema(close,input(3))
ema2=ema(close,input(7))
ema3=ema(close,input(13))
/// PLOTS IF YOU NEED BELOW - DELET EXAPLES ///
plot(ema1, "EMA1", color.yellow)
plot(ema2, "EMA2", color.white)
plot(ema3, "EMA3", color.blue)
/// YOUR CONDITIONS BELOW - DELET EXAPLES ///
longCondition = close>ema1 and ema1>ema2 and ema2>ema3 and time_cond
shortCondition = close<ema1 and ema1<ema2 and ema2<ema3 and time_cond
/// EXECUTION ///
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", trail_points = close * 0.05 / syminfo.mintick, trail_offset = close * 0.02 / syminfo.mintick)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short", trail_points = close * 0.05 / syminfo.mintick, trail_offset = close * 0.02 / syminfo.mintick)