OPEN-SOURCE SCRIPT

Max-Min-Average Lines & BB rebound

このスクリプトは、TradingViewで使用可能なPine Scriptバージョン6で書かれたテクニカル指標で、以下の機能を実現しています。

---

## **主な目的**
1. **最高値・最安値・平均値ラインの表示**
- 過去一定期間の最高値 (MaxL)、最安値 (MinL)、およびその平均値 (AverageL) を計算してチャート上にプロットします。
- 視覚的に相場の過去のレンジを確認できます。

2. **ボリンジャーバンド反発シグナル**
- ボリンジャーバンドを計算し、価格が特定の条件を満たした場合に買い・売りのシグナルを表示します。
- ボリンジャーバンドの幅 (BB Width) や中心線の傾きに基づいたフィルタを活用しています。

---

## **詳細なコード説明**

### **1. 基本設定**
```pinescript
//version=6
indicator("Max-Min-Average Lines & BB rebound", overlay=true)
```
- **バージョン6**のPine Scriptを使用。
- `overlay=true` により、計算結果がチャート上に直接描画されます(別ウィンドウではなく価格の上に重ねて表示)。

---

### **2. MaxL・MinL・AverageLの計算**
```pinescript
L = input.int(20, title="Period (L)", minval=1, tooltip="過去何日間を計算するかを指定します")
Thickness = input.int(1, title="Line Thickness", minval=1, tooltip="線の太さを指定します (1以上)")

MaxL = ta.highest(high, L)
MinL = ta.lowest(low, L)
AverageL = (MaxL + MinL) / 2
```
- ユーザー入力を通じて、計算期間 (`L`) とラインの太さ (`Thickness`) を指定可能。
- 過去`L`日間の最高値 (`MaxL`)、最安値 (`MinL`)、その平均値 (`AverageL`) を計算。

---

### **3. ラインの描画**
```pinescript
plot(MaxL, color=color.green, linewidth=Thickness, title="MaxL (最高値)", style=plot.style_line)
plot(AverageL, color=color.gray, linewidth=Thickness, title="AverageL (平均値)", style=plot.style_line)
plot(MinL, color=color.red, linewidth=Thickness, title="MinL (最安値)", style=plot.style_line)
```
- 最高値ライン (緑)、平均値ライン (灰色)、最安値ライン (赤) をそれぞれ描画します。

---

### **4. ボリンジャーバンド計算**
```pinescript
smaPeriod = input.int(20, title="SMA Period", minval=1)
bbLength = input.int(20, title="Bollinger Bands Length", minval=1)
bbDeviation = input.float(1.0, title="Bollinger Bands Deviation")
[bbMiddle, bbUpper, bbLower] = ta.bb(close, bbLength, bbDeviation)
bbWidth = ta.bbw(close, bbLength, 1)
```
- ボリンジャーバンドの中心線、上限線、下限線 (`bbMiddle`, `bbUpper`, `bbLower`) を計算。
- ボリンジャーバンド幅 (`bbWidth`) も計算して、ボラティリティの指標として活用。

---

### **5. シグナル条件**
#### **買いシグナル条件**
```pinescript
buyCondition = showBuySignal and
low < (bbUpper - adjustBuy * (bbWidth / 2)) and
close > (bbUpper + adjustBuy * (bbWidth / 2)) and
bbMiddleSlope > 0
```
- **条件**:
1. ロー価格 (`low`) が調整値付き上限線に触れる。
2. クローズ価格 (`close`) が調整値付き上限線を超える。
3. ボリンジャーバンドの中心線 (`bbMiddle`) の傾きがプラス。

#### **売りシグナル条件**
```pinescript
sellCondition = showSellSignal and
high > (bbLower + adjustSell * (bbWidth / 2)) and
close < (bbLower - adjustSell * (bbWidth / 2)) and
bbMiddleSlope < 0
```
- **条件**:
1. ハイ価格 (`high`) が調整値付き下限線に触れる。
2. クローズ価格 (`close`) が調整値付き下限線を下回る。
3. ボリンジャーバンドの中心線 (`bbMiddle`) の傾きがマイナス。

---

### **6. シグナルの描画**
```pinescript
plotshape(series=buyCondition, location=location.belowbar, style=shape.labelup, color=color.new(color.green, 50), size=size.normal, title="Buy Signal")
plotshape(series=sellCondition, location=location.abovebar, style=shape.labeldown, color=color.new(color.red, 50), size=size.normal, title="Sell Signal")
```
- 買いシグナルが発生した場合は、チャートのロー部分に緑の矢印。
- 売りシグナルが発生した場合は、チャートのハイ部分に赤の矢印。

---

### **7. ボリンジャーバンドのプロット**
```pinescript
plot(bbUpper, color=color.blue, linewidth=1, title="Upper BB")
plot(bbLower, color=color.blue, linewidth=1, title="Lower BB")
plot(bbMiddle, color=color.orange, linewidth=2, title="SMA")
```
- ボリンジャーバンドの上限、下限、中央線をそれぞれ青とオレンジ色でプロット。

---

### **8. アラート機能**
```pinescript
if (buyCondition)
alert("Buy Signal: 条件が一致しました!(上側ボリンジャーバンド & 中心線の傾きプラス)", alert.freq_once_per_bar_close)

if (sellCondition)
alert("Sell Signal: 条件が一致しました!(下側ボリンジャーバンド & 中心線の傾きマイナス)", alert.freq_once_per_bar_close)
```
- 買い/売り条件が発生した際に、アラートを1バーにつき1回発生させます。

---

## **カスタマイズ可能な入力パラメータ**
| パラメータ名 | 説明 |
|---------------------------|---------------------------------------|
| **Period (L)** | 最高値・最安値計算の期間。 |
| **Line Thickness** | ラインの太さ。 |
| **SMA Period** | ボリンジャーバンド中心線のSMA期間。 |
| **Bollinger Bands Length**| ボリンジャーバンド計算の期間。 |
| **Bollinger Bands Deviation** | ボリンジャーバンドの偏差。 |
| **Buy/Sell Adjustment Factor** | シグナル調整用の補正値。 |
| **Show Buy/Sell Signal** | 買い/売りシグナルの表示オン/オフ。 |

---

### **特徴**
- **視覚的な指標**: トレンドレンジやボリンジャーバンドを明確に視覚化。
- **シグナルフィルタリング**: ボリンジャーバンド中心線の傾きを考慮。
- **通知機能**: トレードシグナルが発生した際にアラート通知。

このスクリプトは、テクニカル分析の幅広いニーズに対応し、視覚化とシグナル通知を組み合わせた実用的なツールです。
Bands and Channels

Script de código aberto

No verdadeiro espírito do TradingView, o autor desse script o publicou como código aberto, para que os traders possam compreendê-lo e analisá-lo. Parabéns ao autor! Você pode usá-lo gratuitamente, mas a reutilização desse código em publicações é regida pelas Regras da Casa. Você pode favoritá-lo para usá-lo em um gráfico.

Quer usar esse script no gráfico?

Aviso legal