
이 전략은 다단계 이동 평균의 교차 원리를 적용하여 중장선 추세를 포착하여 안정적인 수익을 달성합니다. 전략은 다양한 파라미터의 빠른, 중간, 느린 세 개의 이동 평균을 사용하여 교차 상황에 따라 거래 결정을 내립니다. 이러한 다단계 이동 평균 교차 전략은 전통적인 두 개의 이동 평균 전략에 비해 더 많은 가짜 신호를 필터링하여 전략의 승률을 높입니다.
이 전략은 3개의 이동 평균을 사용한다: 빠른 이동 평균 MAshort, 중간 이동 평균 MAmid, 그리고 느린 이동 평균 MAlong. 그 중, MAshort 파라미트는 9, 가장 빠르게 반응, 짧은 선 신호를 잡기 위해; MAmid 파라미트는 50, 속도가 적당하다, 트렌드를 확인하기 위해; MAlong 파라미트는 100, 가장 느리게 반응, 긴 선 추세 방향을 판단하기 위해.
이 전략의 구체적인 거래 논리는 다음과 같다: MMAmid 상의 MAlong을 횡단할 때, 상승 동력이 형성되고 있음을 나타냅니다. 이 때 전략은 더 많이 한다.
이 전략의 가장 큰 장점은 여러 모의 이동 평균의 조합을 통해 가짜 신호를 효과적으로 필터링 할 수 있다는 것입니다. 중장선 상향 추세에서 더 강력한 돌파구를 선택하여 더 많은 상장을 할 수 있습니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 다음과 같은 위험도 있습니다.
위와 같은 위험에 대해, 우리는 전략의 적용 범위를 더욱 넓히고, 손해 방지 기술 제어와 결합하여 최대한의 회수를 할 것입니다. 중장기 추세가 전환되면, 우리는 포지션을 줄이는 방법을 적용할 것입니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이 전략은 전형적인 중장기 트렌드 전략에 속하며, 다단계 이동 평균을 매칭하여 WebDriverWait==long term trend를 사용하여 거래 위험을 제어하는 전제 하에서 지속적인 수익을 얻습니다. 단일 지표에 비해 여러 개의 매개 변수를 결합하여 강력한 중장기 트렌드 신호를 효과적으로 식별 할 수 있습니다. 이 전략은 더 많은 품종에 적용 할 수 있으며, 더 많은 종류의 양적 거래 분야에서 중요한 역할을 할 수 있습니다.
/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 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/
// © Coinrule
//@version=4
strategy(shorttitle='Multi Moving Average Crossing',title='Multi Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
//MA inputs and calculations
inlong=input(100, title='MAlong')
inmid=input(50, title='MAmid')
inshort=input(9, title='MAfast')
MAlong = sma(close, inlong)
MAshort= sma(close, inshort)
MAmid= sma(close, inmid)
//Entry
bullish = crossover(MAmid, MAlong)
strategy.entry(id="long", long = true, when = bullish and window())
//Exit
bearish = crossunder(MAshort, MAmid)
strategy.close("long", when = bearish and window())
plot(MAshort, color=color.orange, linewidth=2)
plot(MAmid, color=color.red, linewidth=2)
plot(MAlong, color=color.blue, linewidth=2)