この戦略は,VWAPにRSIインジケーターを適用し,RSIの
この戦略の利点は,過剰購入/過剰売却のRSIと価格トレンドのVWAPの両方を活用することであり,誤った信号をフィルタリングするのに役立ちます.しかし,トレンド逆転を特定するのも遅くなるリスクもあります.RSIパラメータを細かく調整し,連続したブレイクアウト期間は戦略を最適化することができます.
要約すると,RSIブレイク VWAP戦略は,複数の指標を組み合わせて取引機会を特定しますが,異なる市場状況に適応するために慎重にテストと調整が必要です.この戦略を長期的に適用するには,リスクを制御することが重要です.
/*backtest start: 2022-09-04 00:00:00 end: 2023-09-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"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/ // © Mysteriown //@version=4 strategy("RSI on VWAP Upgraded strategy", overlay=false, pyramiding = 3, commission_value = 0.04) // pyramiding is the number of positions you can take before closing all of them (be carefull if using it with a trading bot) // commission_value is the commission taken for each buy/sell // ------------------------------------------ // // ----------------- Inputs ----------------- // // ------------------------------------------ // length = input(20, title="RSI Length", type=input.integer) ovrsld = input(30, "RSI Oversold level", type=input.float) ovrbgt = input(85, "RSI Overbought level", type=input.float) lateleave = input(28, "Number of candles", type=input.integer) // lateleave : numbers of bars in overbought/oversold zones where the position is closed. The position is closed when this number is reached or when the zone is left (the first condition). // best parameters BTCUSDTPERP M15 : 20 / 30 / 85 / 28 stratbull = input(title="Enter longs ?", type = input.bool, defval=true) stratbear = input(title="Enter shorts ?", type = input.bool, defval=true) bet = input(0.1, "Amount of coin/token by position", type=input.float) stratyear = input(2020, title = "Strategy Start Year") stratmonth = input(7, title = "Strategy Start Month") stratday = input(1, title = "Strategy Start Day") stratstart = timestamp(stratyear,stratmonth,stratday,0,0) // ------------------------------------------ // // ---------------- Rsi VWAP ---------------- // // ------------------------------------------ // rsiVWAP = rsi(vwap(close), length) // ------------------------------------------ // // ------------------ Plots ----------------- // // ------------------------------------------ // prsi = plot(rsiVWAP, color = rsiVWAP>ovrbgt ? color.red : rsiVWAP<ovrsld ? color.green : color.white, title="RSI on VWAP", linewidth=1, style=plot.style_line) hline = plot(ovrbgt, color = color.gray, style=plot.style_line) lline = plot(ovrsld, color = color.gray, style=plot.style_line) fill(prsi,hline, color = rsiVWAP > ovrbgt ? color.red : na, transp = 30) fill(prsi,lline, color = rsiVWAP < ovrsld ? color.green : na, transp = 30) // ------------------------------------------ // // ---------------- Positions --------------- // // ------------------------------------------ // if stratbull and time > stratstart strategy.entry("Long", true, bet, when = crossover(rsiVWAP, ovrsld), comment="") strategy.close("Long", when = crossover(rsiVWAP, ovrbgt)[lateleave] or crossunder(rsiVWAP, ovrbgt), comment="") if stratbear and time > stratstart strategy.entry("Short", false, bet, when = crossunder(rsiVWAP, ovrbgt), comment="") strategy.close("Short", when = crossunder(rsiVWAP, ovrsld)[lateleave] or crossover(rsiVWAP, ovrsld), comment="")