ノロ・バンドは戦略をフォローする傾向

作者: リン・ハーンチャオチャン, 日付: 2023-09-18 13:57:31
タグ:

概要

この戦略は,トレンド方向を決定するためにカスタムなノロバンド指標を使用し,特定のルールに基づいて取引シグナルを生成する.価格はバンドを突破するとシグナルが生成される.暗号ボトム指標は,信号品質を改善するためにも使用される.

戦略の論理

  1. ノーロ帯を計算します.ユーザーの期間に基づいて最近の高低を決定し,中間線と上下帯を計算します.

  2. トレンド方向を決定します. 上部帯の価格は上昇傾向です. 下部帯の価格は下位傾向です.

  3. シグナルを生成します. 上向きの価格が下向きの値を下に突入するとシグナルを購入します. 下向きの価格が上向きの値を下に突入するとシグナル販売します.

  4. CryptoBottom の信号が発生すると 購入機会を追加します.

  5. オープニングポジションのルール ユーザはロングやショートのみを選択できます 選択なしに両側を取引します

  6. グラフノロバンド グラフを表示したり隠したりできます

利点

  1. ノーロ帯は 効率的にトレンド方向を決定します

  2. バンド・ブレイクを組み合わせると 誤ったブレイク信号が 避けられます

  3. クリプトボトムが 買い信号の質を向上させる

  4. 長期または短期取引のみにカスタマイズできます

  5. 調整可能なパラメータは 異なる時間枠に適しています

リスク

  1. 誤ったパラメータは,帯域計算に障害を引き起こす可能性があります.

  2. 突破信号が遅れている

  3. クリプトボトムは完全に信頼できない

  4. 片方だけ取引すれば 機会を逃すかもしれません

  • リスク1はパラメータ最適化によって対処できます

  • リスク2は他の指標を組み合わせることで改善できます

  • リスク3はCryptoBottomのパフォーマンスを検証する必要があります

  • リスク4は,一方的な取引の収益性を評価する必要があります.

増進 の 機会

  1. テストパラメータがノロ帯に 影響する

  2. ノロ帯の代わりに他のブレイクアウト指標を評価します

  3. ストップ・ロスの戦略を評価する.

  4. 長期または短期取引のみの有効性をテストする.

  5. クリプトボトムのパラメータを最適化

結論

この戦略は,トレンドとブレイクアウト信号を時間エントリに決定するためにノロバンドを使用する.CryptoBottomは購入を改善する.パラメータ最適化とストップは戦略をさらに精製することができます.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-09-17 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Strategy v1.2", shorttitle = "NoroBands str 1.2", 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 Color or bar")
usecb = input(true, "Use CryptoBottom")
needbb = input(true, defval = false, title = "Show Bands")
needbg = input(true, 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)
//dn = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0

//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 = 90)

//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

longCondition = up == 1 or (up2 == 1 and usecb == 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)

もっと