この戦略は"ダブル指数関数移動平均RSI取引戦略"と呼ばれる.自動取引を実施するための主要な取引指標として,ダブルEMAと相対強度指数 (RSI) を使用する.
この戦略は,まず価格のダブル指数関数移動平均 (MA) を計算し,その後MAに基づいてRSIを計算し,さらにRSIの指数関数移動平均 (スムーズ) を計算する.RSIが移動平均を超えると購入信号を生成し,RSIが移動平均を下回ると販売信号を生成する.オプションとして,戦略は,1日最大取引数,株式の割合としての取引量,取引時間セッション,ポイントでの利益とストップ損失,リスク管理のためのポイントでのトライリングストップのパラメータも設定する.
対策:
戦略には明確な機械的ルールと高い信頼性があり,中長期のトレンド製品に適しています.最適化されると,制御可能なリスクを持つ機械的戦略に従う基本的なトレンドになり,ライブパフォーマンスについてさらなる評価に値します.
/*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)