이 전략은 트레이딩 신호를 생성하기 위해 서로 다른 기간의 두 이동 평균의 교차를 사용합니다. 트렌드 다음 전략에 속합니다. 이 전략은 짧은 기간 MA가 더 긴 기간 MA를 넘을 때 신호를 사용하여 트렌드 기회를 포착합니다.
이 전략은 9주기 단기 MA (SMA) 와 50주기 장기 MA (LMA) 를 사용합니다. SMA가 LMA를 넘을 때 구매 신호가 생성됩니다. SMA가 LMA를 넘을 때 판매 신호가 생성됩니다.
이 전략은 또한 트렌드의 강도를 측정하기 위해 RSI 지표를 포함합니다. 거래 신호는 RSI가 임계치 (디폴트 55) 를 넘었을 때만 생성됩니다. 이것은 RSI가 과잉 구매 구역에있을 때 잘못된 신호를 피합니다.
이 전략은 매번 전체 자본의 30%를 거래하며, 한 번에 하나의 포지션만 열립니다. 0.1%의 수수료가 계산됩니다.
위험은 매개 변수 최적화, 다른 지표 사용, 엄격한 자본 관리 및 스톱 로스 등을 통해 줄일 수 있습니다.
이 전략은 간단한 MA 크로스오버 시스템을 사용하여 트렌딩 기회를 캡처합니다. 기본 매개 변수는 안정적인 수익으로 최적화되어 알고리즘 거래에 적합합니다. 다른 지표를 추가하고 매개 변수를 최적화하고 스톱 로스를 구현하여 추가 개선이 가능합니다. 전반적으로 크로스오버 신호를 사용하여 트렌딩 시장을위한 효과적인 트렌드 다음 전략입니다.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 2h 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/ // © relevantLeader16058 //@version=4 strategy(shorttitle='Maximized Moving Average Crossing ',title='Maximized 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() => time >= start and time <= finish ? true : false // create function "within window of time" //MA inputs and calculations inlong=input(50, title='MA long period') inshort=input(9, title='MA short period') MAlong = sma(close, inlong) MAshort= sma(close, inshort) // RSI inputs and calculations lengthRSI = (14) RSI = rsi(close, lengthRSI) RSI_Signal = input(55, title = 'RSI Trigger', minval=1) //Entry and Exit bullish = crossover(MAshort, MAlong) bearish = crossunder(MAshort, MAlong) strategy.entry(id="long", long = true, when = bullish and RSI > RSI_Signal and window()) strategy.close(id="long", when = bearish and window()) plot(MAshort, color=color.purple, linewidth=2) plot(MAlong, color=color.red, linewidth=2)