이 전략은 트렌드 방향과 과잉 구매 / 과잉 판매 상황을 식별하기 위해 이중 이동 평균 크로스오버와 RSI 지표를 결합합니다. 구매 조건이 충족되면 장기간에 걸쳐서 판매 조건이 발생하면 포지션을 닫습니다. 목표는 트렌드 방향을 결정하기 위해 이동 평균 크로스오버를 사용하여 RSI 지표를 사용하여 정상에서 잘못 구매하고 바닥에서 판매하는 것을 피하여 더 나은 이익을 창출하는 것입니다.
급속한 9주기 이동 평균이 느린 50주기 이동 평균을 넘을 때, 그것은 짧은 시간 프레임에서 상향 트렌드와 더 긴 시간 프레임에서 상향 트렌드를 신호합니다. 이는 전형적인 상승 신호입니다. 한편, RSI가 이전 기간보다 5 포인트 더 크고 70 미만인 경우 자산이 접근하고 있지만 아직 과잉 매입 영역에 있지 않다는 것을 의미합니다.
빠른 9주기 이동 평균이 느린 50주기 이동 평균을 넘으면 하락 시장의 시작을 알리고 기존의 긴 포지션은 종료되어야 합니다.
이 전략은 방향과 RSI를 결정하기 위해 이중 이동 평균 크로스오버를 활용하여 상위와 하위 추격을 피합니다. 안정적인 수익을 위해 중장기 트렌드를 효과적으로 탈 수 있습니다. 그러나 크로스오버 신호의 후진 성격과 RSI 매개 변수 조정에 주의해야합니다. 또한 가격과 볼륨을 상관해야합니다. 지속적인 테스트와 최적화로이 전략은 더 나은 결과를 얻을 수 있습니다.
/*backtest start: 2022-11-14 00:00:00 end: 2023-11-20 00:00:00 period: 1d basePeriod: 1h 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/ // © joshuajcoop01 //@version=5 strategy("Bitpanda Coinrule Template", overlay=true, initial_capital=1000, process_orders_on_close=true, default_qty_type=strategy.percent_of_equity, default_qty_value=30, commission_type=strategy.commission.percent, commission_value=0.1) showDate = input(defval=true, title='Show Date Range') timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0) notInTrade = strategy.position_size <= 0 // RSI length = input(14) vrsi = ta.rsi(close, length) // Moving Averages for Buy Condition buyFastEMA = ta.ema(close, 9) buySlowEMA = ta.ema(close, 50) buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA) increase = 5 if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod) strategy.entry("Long", strategy.long) // Moving Averages for Sell Condition sellFastEMA = ta.ema(close, 9) sellSlowEMA = ta.ema(close, 50) plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue) plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green) condition = ta.crossover(sellSlowEMA, sellFastEMA) //sellCondition1 = request.security(syminfo.tickerid, "60", condition) strategy.close('Long', when = condition and timePeriod)