
この戦略は,価格チャネル,ブリン帯,急速RSI指標に基づく二線反転取引戦略である.これは,チャネル指標のトレンド識別,ブリン帯のサポートレジスタンス識別,および急速RSIの判断超買超売の信号を組み合わせて,効率的な反転取引を実現する.
この戦略は,主に以下の指標に基づいて取引決定を行います.
価格チャネル:一定の周期内の最高価格と最低価格を計算し,チャネルの中軸を描きます. 価格がチャネルを突破すると取引シグナルが生成されます.
ブリン帯:中央軸は価格通路の中軸で,価格と中央軸の偏差基準差を計算して上下軌を構成する.価格とブリン帯が上下軌に相互作用すると取引信号が生成する.
急速RSI ((2サイクル):価格の超買超売を判断し,RSIは5を下回るとオッズ,95上回ると空きである.
CryptoBottom指標: 価格がサポートから下落するかどうかを判断し,急速なRSIと組み合わせて高い確率を達成する.
価格突破チャネル,ブリン帯時間,およびRSI超買い超売り時間による多空は,この戦略の核心取引論理を構成する.
この戦略には以下の利点があります.
双線システム,信号精度を向上させる.価格通路は大きなトレンドを判断し,ブリン帯は正確なサポート抵抗位を識別し,両者は信号品質を向上させる.
急速RSI指標は,超買い超売り判断し,反転のタイミングを把握する。RSIパラメータは2で,反転のノードを迅速に判断する。
CryptoBottomは多頭信号の決定を加速する. サポート位を下回ったとき,底の特性を迅速に判断し,多頭信号の欠落を避ける.
策略パラメータ設定は合理的で,容易に最適化できる.パラメータ組み合わせはシンプルで明快で,パラメータ最適化に適している.
この戦略にはいくつかのリスクがあります.
ブリン帯のパラメータは正しく設定されず,大きな動きを見逃したり,偽信号を生成する可能性があります.
双線交互モデルは複雑で,正しい判断には一定の技術的蓄積が必要である.
逆転が失敗するリスクは依然として存在し,再び逆転が起こる可能性は完全に避けられない.
パラメータ最適化が困難で,最適のパラメータは市場環境の変化により失効する可能性があります.
この戦略は以下の方向から最適化できます.
ブリン帯のパラメータを最適化して,上下線を価格に近付け,信号の正確性を向上させる.
損失の一定比率に達したときに損失を止めて,リスクを効果的に制御する戦略を増加させる.
複数の指標を組み合わせて,トレンドを判断し,レジスタンス値をサポートし,偽信号を減らす.
機械学習アルゴリズムを追加し,パラメータを自動的に最適化し,市場環境の変化に対応できるようにする.
この戦略は,価格チャネル,ブリン帯,急速RSI指標を統合し,二線逆転取引システムを構築する.大きなトレンドを判断しながら,サポートレジスタンスとオーバーバイのオーバーセルの機会を迅速に把握する.パラメータ設定は,シンプルで直接で,容易に理解し,最適化できる.反転機会を効果的に識別し,量化取引に適した.
/*backtest
start: 2022-12-18 00:00:00
end: 2023-11-30 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Noro's Bands Strategy v1.3", shorttitle = "NoroBands str 1.3", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, "Use ColorBar")
usecb = input(true, "Use CryptoBottom")
usersi = input(true, "Use RSI")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
src = close
//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
//CryptoBottom
mac = sma(close, 10)
lencb = abs(close - mac)
sma = sma(lencb, 100)
max = max(open, close)
min = min(open, close)
//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2
//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]
//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")
//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)
//Signals
up = trend == 1 and ((close < open or color == false) or close < hd) ? 1 : 0
dn = trend == -1 and ((close > open or color == false) or close > ld) ? 1 : 0
up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0 //CryptoBottom
//dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom
up3 = fastrsi < 5 ? 1 : 0
//dn3 = fastrsi > 99 ? 1 : 0
longCondition = up == 1 or (up2 == 1 and usecb == true) or (up3 == 1 and usersi == true)
if (longCondition)
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
shortCondition = dn == 1
if (shortCondition)
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)