이 전략은
이 전략은 먼저 가격의 이중 기하급수적 이동 평균 (MA) 을 계산하고, 그 다음 MA를 기반으로 RSI를 계산하고, 더 나아가 RSI의 기하급수적 이동 평균 (Smooth) 을 계산합니다. RSI가 이동 평균을 넘어서면 구매 신호를 생성하고, RSI가 이동 평균을 넘어서면 판매 신호를 생성합니다. 선택적으로, 전략은 또한 하루 최대 거래 수, 주식 비율로 거래 크기, 거래 시간 세션, 수익을 취하고 포인트에서 손실을 멈추고, 위험 통제를 위해 포인트에서 후속 중지.
대책:
전략은 명확한 기계적 규칙과 전반적으로 높은 신뢰성을 가지고 있으며, 중장기 트렌딩 제품에 적합합니다. 최적화되면 제어 가능한 위험을 가진 기계적 전략을 따르는 기본 트렌드가 될 수 있습니다. 라이브 성능에 대한 추가 평가가 가치가 있습니다.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title='[STRATEGY][RS]DemaRSI V0', shorttitle='D', overlay=false, initial_capital=100000, currency=currency.USD) src = input(close) ma_length = input(21) rsi_length = input(4) rsi_smooth = input(4) ma = ema(ema(src, ma_length), ma_length) marsi = rsi(ma, rsi_length) smooth = ema(marsi, rsi_smooth) plot(title='M', series=marsi, color=black) plot(title='S', series=smooth, color=red) hline(0) hline(50) hline(100) max_order_per_day = input(6) // strategy.risk.max_intraday_filled_orders(max_order_per_day) trade_size_as_equity_factor = input(false) trade_size = input(type=float, defval=10000.00) * (trade_size_as_equity_factor ? strategy.equity : 1) take_profit_in_points = input(100000) stop_loss_in_points = input(100000) trail_in_points = input(150) USE_SESSION = input(true) trade_session = input(title='Trade Session:', defval='0400-1500', confirm=false) istradingsession = not USE_SESSION ? true : not na(time('1', trade_session)) buy_entry = istradingsession and crossover(marsi, smooth) sel_entry = istradingsession and crossunder(marsi, smooth) strategy.entry('buy', long=true, qty=1, when=buy_entry) strategy.entry('sel', long=false, qty=1, when=sel_entry) strategy.exit('buy.Exit', from_entry='buy', profit=take_profit_in_points, loss=stop_loss_in_points, trail_points=trail_in_points, trail_offset=trail_in_points) strategy.exit('sel.Exit', from_entry='sel', profit=take_profit_in_points, loss=stop_loss_in_points, trail_points=trail_in_points, trail_offset=trail_in_points) strategy.close_all(when=not istradingsession)