# 2-4. option3_Fibo & Quarters
"NK-Box"にオプションとして使用するインジケーターです。"NK-Box"と全く同じ範囲にラインを描画することができます。
前期間の高値安値を基準としたフィボナッチ、4分割/8分割ラインを描画することができます。
フィボナッチについては前期間の高値安値の早い方を起点、遅い方を終点として計算しています。
![[▢TradingViewコード-15. option3_Fibo & Quarters.webp]]
出典: TradingView
---
> [!example] NOTICE(注意)
> - 学習および情報提供のみを目的としており、投資助言ではありません。
> - ツールを使用したことによる経済的損失について、一切の責任を負いません。
> - Pine Script v6 で動作確認しています。将来のTradingView側の仕様変更に対するアップデート保証や、個別の導入サポート・改修依頼は受け付けません(現状有姿での提供)。
> - [MIT License](https://opensource.org/licenses/MIT) に則っています。
> [!quote]- 導入の流れ
>
> - 「Pineを開く」→「スクリプトのメニューを開き、新規作成を選択」→「インジケーターを選択」→「全選択で既存のコードを削除してからペーストする」の順序で行ってください。
> ※この手順で行わないと正しく認識されないことがあります。
> - 好みの配色に設定後、パラメータータブの「デフォルトを保存」を押してください。
---
> **Copy area**
- Hist
> [!quote]- コードを展開する
> ````pinescript
> // SPDX-FileCopyrightText: 2026 NK-report https://www.nk-report.com/
> // SPDX-License-Identifier: MIT
> //
> // Disclaimer: This script is for educational purposes only and does not constitute investment advice.
>
> //@version=6
> indicator("NK-box_option3_Fibo & Quarters (History)", shorttitle="NK-opt3 F&Q (Hist)", overlay=true, max_lines_count=500, max_labels_count=500)
>
> // ==============================================================================
> // 【01】 免責・ライセンス
> // ==============================================================================
> // 独自視点の「解説/考察」記事を公開している個人サイトです。サイト内のTradingViewコードは無料でコピーできます。: https://www.nk-report.com/
> //
> // 免責事項: 本スクリプトは学習および情報提供のみを目的としており、投資助言ではありません。
> //
> // 1. 本コードは2026年時点の Pine Script v6 で動作確認を行っています。
> // 将来の仕様変更に伴う不具合等について、個別のサポートや改修は行いません。
> // 2. 本スクリプトは一般的な計算ロジックに基づき、LLMを用いて独自に作成したものです。
> // MITライセンスに則っています。
> // ------------------------------------------------------------------------------
> // MIT License
> //
> // Copyright 2026 NK-report https://www.nk-report.com/
> //
> // Permission is hereby granted, free of charge, to any person obtaining a copy of
> // this software and associated documentation files (the "Software"), to deal in
> // the Software without restriction, including without limitation the rights to
> // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
> // of the Software, and to permit persons to whom the Software is furnished to do
> // so, subject to the following conditions:
> //
> // The above copyright notice and this permission notice shall be included in all
> // copies or substantial portions of the Software.
> //
> // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> // SOFTWARE.
> // ==============================================================================
> // 【02】 UI設定と言語
> // ==============================================================================
> const string GRP_GENERAL = "▼ 基本設定"
> const string GRP_OFFSET = "▼ 描画位置の微調整 (オフセット)"
> const string GRP_CALC = "▼ 計算ロジック設定"
> const string GRP_FIBO_RET = "▼ Fibo: リトレースメント"
> const string GRP_FIBO_EXT = "▼ Fibo: エクステンション"
> const string GRP_GRID = "▼ Quarters: 等分割グリッド"
> const string GRP_FIBO_CUS = "▼ カスタムレベル"
>
> const string LBL_TF = "基準期間"
> const string OPT_TF_D = "1日"
> const string OPT_TF_W = "1週"
> const string OPT_TF_1M = "1ヶ月"
> const string OPT_TF_3M = "3ヶ月"
> const string OPT_TF_12M = "12ヶ月"
>
> const string OPT_POS_L = "左"
> const string OPT_POS_C = "中央"
> const string OPT_POS_R = "右"
>
> const string OPT_STY_S = "実線"
> const string OPT_STY_D = "破線"
> const string OPT_STY_DT = "点線"
>
> const string OPT_GRID_NONE = "非表示"
> const string OPT_GRID_Q4 = "4分割"
> const string OPT_GRID_Q8 = "8分割"
>
> i_tf_str = input.string(OPT_TF_3M, title=LBL_TF, options=[OPT_TF_D, OPT_TF_W, OPT_TF_1M, OPT_TF_3M, OPT_TF_12M], group=GRP_GENERAL)
> i_lbl_pos = input.string(OPT_POS_C, title="ラベル配置位置", options=[OPT_POS_L, OPT_POS_C, OPT_POS_R], group=GRP_GENERAL)
>
> i_offset_left = input.int(-1, title="左端のズレ調整 (バー数)", group=GRP_OFFSET)
> i_offset_right = input.int(0, title="右端のズレ調整 (バー数)", group=GRP_OFFSET)
>
> i_use_log = input.bool(true, title="対数(Log)スケールで計算 (※フィボナッチのみ適用)", group=GRP_CALC, tooltip="チャートを対数スケール(右下のlog)で表示している場合、チェックを入れると手動ツールと一致します。")
> i_rev = input.bool(false, title="階層を反転 (Reverse)", group=GRP_CALC, tooltip="手動ツールと0.382や0.618の上下が逆になっている場合に使用してください。")
>
> i_show_ret = input.bool(true, title="表示 (0.382, 0.5, 0.618, 0.786)", group=GRP_FIBO_RET, inline="ret")
> i_col_ret = input.color(color.blue, title="", group=GRP_FIBO_RET, inline="ret")
> i_wid_ret = input.int(2, title="", minval=1, maxval=5, group=GRP_FIBO_RET, inline="ret")
> i_sty_ret = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_FIBO_RET, inline="ret")
>
> i_show_ext = input.bool(true, title="表示 (1.272, 1.618, 2.272, 2.618)", group=GRP_FIBO_EXT, inline="ext")
> i_col_ext = input.color(color.lime, title="", group=GRP_FIBO_EXT, inline="ext")
> i_wid_ext = input.int(2, title="", minval=1, maxval=5, group=GRP_FIBO_EXT, inline="ext")
> i_sty_ext = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_FIBO_EXT, inline="ext")
>
> i_grid_mode = input.string(OPT_GRID_NONE, title="グリッド表示", options=[OPT_GRID_NONE, OPT_GRID_Q4, OPT_GRID_Q8], group=GRP_GRID)
> i_col_q4 = input.color(color.aqua, title="4分割 カラー", group=GRP_GRID, inline="q4")
> i_wid_q4 = input.int(2, title="", minval=1, maxval=5, group=GRP_GRID, inline="q4")
> i_sty_q4 = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_GRID, inline="q4")
>
> i_col_q8 = input.color(color.purple, title="8分割 カラー", group=GRP_GRID, inline="q8")
> i_wid_q8 = input.int(2, title="", minval=1, maxval=5, group=GRP_GRID, inline="q8")
> i_sty_q8 = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_GRID, inline="q8")
>
> i_show_c1 = input.bool(false, title="カスタム 1 表示", group=GRP_FIBO_CUS, inline="c1")
> i_val_c1 = input.float(0.0, title="", step=0.001, group=GRP_FIBO_CUS, inline="c1")
> i_col_c1 = input.color(color.orange, title="", group=GRP_FIBO_CUS, inline="c1")
> i_wid_c1 = input.int(2, title="", minval=1, maxval=5, group=GRP_FIBO_CUS, inline="c1")
> i_sty_c1 = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_FIBO_CUS, inline="c1")
>
> i_show_c2 = input.bool(false, title="カスタム 2 表示", group=GRP_FIBO_CUS, inline="c2")
> i_val_c2 = input.float(1.0, title="", step=0.001, group=GRP_FIBO_CUS, inline="c2")
> i_col_c2 = input.color(color.orange, title="", group=GRP_FIBO_CUS, inline="c2")
> i_wid_c2 = input.int(2, title="", minval=1, maxval=5, group=GRP_FIBO_CUS, inline="c2")
> i_sty_c2 = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_FIBO_CUS, inline="c2")
>
> i_show_c3 = input.bool(false, title="カスタム 3 表示", group=GRP_FIBO_CUS, inline="c3")
> i_val_c3 = input.float(2.414, title="", step=0.001, group=GRP_FIBO_CUS, inline="c3")
> i_col_c3 = input.color(color.orange, title="", group=GRP_FIBO_CUS, inline="c3")
> i_wid_c3 = input.int(2, title="", minval=1, maxval=5, group=GRP_FIBO_CUS, inline="c3")
> i_sty_c3 = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_FIBO_CUS, inline="c3")
>
>
> // ==============================================================================
> // 【03】 全コード共通仕様(時間・インフラ処理)
> // ==============================================================================
> string req_tf = switch i_tf_str
> OPT_TF_D => "1D"
> OPT_TF_W => "1W"
> OPT_TF_1M => "1M"
> OPT_TF_3M => "3M"
> OPT_TF_12M => "12M"
>
> bool is_new_period = timeframe.change(req_tf) or barstate.isfirst
>
> f_get_style(sty_str) =>
> sty_str == OPT_STY_S ? line.style_solid : sty_str == OPT_STY_D ? line.style_dashed : line.style_dotted
>
>
> // ==============================================================================
> // 【05】 このコード固有の計算仕様 (Specific Indicator Logic)
> // ==============================================================================
> var float curr_o = na
> var float curr_h = na
> var float curr_l = na
> var int curr_h_idx = na
> var int curr_l_idx = na
>
> var float prev_o = na
> var float prev_h = na
> var float prev_l = na
> var float prev_c = na
> var int prev_h_idx = na
> var int prev_l_idx = na
>
> var int start_bar = na
>
> bool do_draw = false
> int draw_start = na
> int draw_end = na
> float draw_h = na
> float draw_l = na
> bool draw_is_bull = false
>
> if is_new_period
> // スナップショット
> if not na(prev_h) and not na(start_bar) and not na(prev_h_idx) and not na(prev_l_idx)
> do_draw := true
> draw_start := math.max(0, start_bar + i_offset_left)
> draw_end := math.max(0, bar_index[1] + i_offset_right)
> draw_h := prev_h
> draw_l := prev_l
>
> draw_is_bull := prev_l_idx < prev_h_idx
> if prev_h_idx == prev_l_idx
> draw_is_bull := prev_c >= prev_o
>
> prev_o := curr_o
> prev_h := curr_h
> prev_l := curr_l
> prev_c := close[1]
> prev_h_idx := curr_h_idx
> prev_l_idx := curr_l_idx
>
> curr_o := open
> curr_h := high
> curr_l := low
> curr_h_idx := bar_index
> curr_l_idx := bar_index
> start_bar := bar_index
> else
> if na(curr_h) or high > curr_h
> curr_h := high
> curr_h_idx := bar_index
> if na(curr_l) or low < curr_l
> curr_l := low
> curr_l_idx := bar_index
>
> // ------------------------------------------------------------------------------
> // 方向判定と高度な数学計算ロジック
> // ------------------------------------------------------------------------------
> f_calc_fibo(u_in, _h, _l, _is_bull) =>
> bool bull = i_rev ? not _is_bull : _is_bull
> float ratio = u_in <= 1.0 ? u_in : u_in - 1.0
> float val = na
>
> if i_use_log
> float log_h = math.log(_h)
> float log_l = math.log(_l)
> float log_r = log_h - log_l
> float log_v = na
> if u_in <= 1.0
> log_v := bull ? log_h - (log_r * ratio) : log_l + (log_r * ratio)
> else
> log_v := bull ? log_h + (log_r * ratio) : log_l - (log_r * ratio)
> val := math.exp(log_v)
> else
> float range_v = _h - _l
> if u_in <= 1.0
> val := bull ? _h - (range_v * ratio) : _l + (range_v * ratio)
> else
> val := bull ? _h + (range_v * ratio) : _l - (range_v * ratio)
> val
>
> f_calc_grid(u, _h, _l) =>
> _l + ((_h - _l) * u)
>
> f_is_bull(_h_idx, _l_idx, _o, _c) =>
> bool bull = _l_idx < _h_idx
> if _h_idx == _l_idx
> bull := _c >= _o
> bull
>
>
> // ------------------------------------------------------------------------------
> // 描画関数 (グローバルスコープで定義してSyntax Errorを完全回避)
> // ------------------------------------------------------------------------------
> f_draw_fibo(_val, _txt, _col, _wid, _sty, _d_start, _d_end, _lbl_x) =>
> if not na(_val)
> line.new(_d_start, _val, _d_end, _val, color=_col, width=_wid, style=f_get_style(_sty))
> label.new(_lbl_x, _val, text=_txt, color=color.new(color.white, 100), textcolor=_col, style=label.style_none, size=size.small)
>
> f_draw_grid(_val, _col, _wid, _sty, _d_start, _d_end) =>
> if not na(_val)
> line.new(_d_start, _val, _d_end, _val, color=_col, width=_wid, style=f_get_style(_sty))
>
>
> // ==============================================================================
> // 【06】 描画と出力 (Rendering & Outputs)
> // ==============================================================================
> if do_draw
> int lbl_x = i_lbl_pos == OPT_POS_L ? draw_start : i_lbl_pos == OPT_POS_C ? int(math.round((draw_start + draw_end) / 2)) : draw_end
>
> if i_show_ret
> f_draw_fibo(f_calc_fibo(0.382, draw_h, draw_l, draw_is_bull), "0.382", i_col_ret, i_wid_ret, i_sty_ret, draw_start, draw_end, lbl_x)
> f_draw_fibo(f_calc_fibo(0.500, draw_h, draw_l, draw_is_bull), "0.500", i_col_ret, i_wid_ret, i_sty_ret, draw_start, draw_end, lbl_x)
> f_draw_fibo(f_calc_fibo(0.618, draw_h, draw_l, draw_is_bull), "0.618", i_col_ret, i_wid_ret, i_sty_ret, draw_start, draw_end, lbl_x)
> f_draw_fibo(f_calc_fibo(0.786, draw_h, draw_l, draw_is_bull), "0.786", i_col_ret, i_wid_ret, i_sty_ret, draw_start, draw_end, lbl_x)
>
> if i_show_ext
> f_draw_fibo(f_calc_fibo(1.272, draw_h, draw_l, draw_is_bull), "1.272", i_col_ext, i_wid_ext, i_sty_ext, draw_start, draw_end, lbl_x)
> f_draw_fibo(f_calc_fibo(1.618, draw_h, draw_l, draw_is_bull), "1.618", i_col_ext, i_wid_ext, i_sty_ext, draw_start, draw_end, lbl_x)
> f_draw_fibo(f_calc_fibo(2.272, draw_h, draw_l, draw_is_bull), "2.272", i_col_ext, i_wid_ext, i_sty_ext, draw_start, draw_end, lbl_x)
> f_draw_fibo(f_calc_fibo(2.618, draw_h, draw_l, draw_is_bull), "2.618", i_col_ext, i_wid_ext, i_sty_ext, draw_start, draw_end, lbl_x)
>
> bool is_q4 = i_grid_mode == OPT_GRID_Q4
> bool is_q8 = i_grid_mode == OPT_GRID_Q8
>
> if is_q8
> f_draw_grid(f_calc_grid(0.125, draw_h, draw_l), i_col_q8, i_wid_q8, i_sty_q8, draw_start, draw_end)
> if is_q4 or is_q8
> f_draw_grid(f_calc_grid(0.250, draw_h, draw_l), is_q8 ? i_col_q8 : i_col_q4, is_q8 ? i_wid_q8 : i_wid_q4, is_q8 ? i_sty_q8 : i_sty_q4, draw_start, draw_end)
> if is_q8
> f_draw_grid(f_calc_grid(0.375, draw_h, draw_l), i_col_q8, i_wid_q8, i_sty_q8, draw_start, draw_end)
> if is_q4 or is_q8
> f_draw_grid(f_calc_grid(0.500, draw_h, draw_l), is_q8 ? i_col_q8 : i_col_q4, is_q8 ? i_wid_q8 : i_wid_q4, is_q8 ? i_sty_q8 : i_sty_q4, draw_start, draw_end)
> if is_q8
> f_draw_grid(f_calc_grid(0.625, draw_h, draw_l), i_col_q8, i_wid_q8, i_sty_q8, draw_start, draw_end)
> if is_q4 or is_q8
> f_draw_grid(f_calc_grid(0.750, draw_h, draw_l), is_q8 ? i_col_q8 : i_col_q4, is_q8 ? i_wid_q8 : i_wid_q4, is_q8 ? i_sty_q8 : i_sty_q4, draw_start, draw_end)
> if is_q8
> f_draw_grid(f_calc_grid(0.875, draw_h, draw_l), i_col_q8, i_wid_q8, i_sty_q8, draw_start, draw_end)
>
> if i_show_c1
> f_draw_fibo(f_calc_fibo(i_val_c1, draw_h, draw_l, draw_is_bull), str.tostring(i_val_c1), i_col_c1, i_wid_c1, i_sty_c1, draw_start, draw_end, lbl_x)
> if i_show_c2
> f_draw_fibo(f_calc_fibo(i_val_c2, draw_h, draw_l, draw_is_bull), str.tostring(i_val_c2), i_col_c2, i_wid_c2, i_sty_c2, draw_start, draw_end, lbl_x)
> if i_show_c3
> f_draw_fibo(f_calc_fibo(i_val_c3, draw_h, draw_l, draw_is_bull), str.tostring(i_val_c3), i_col_c3, i_wid_c3, i_sty_c3, draw_start, draw_end, lbl_x)
>
> // データウィンドウ出力 (客観的事実のみを静かに出力)
> bool out_bull = f_is_bull(prev_h_idx, prev_l_idx, prev_o, prev_c)
> bool is_data_q4 = i_grid_mode == OPT_GRID_Q4
> bool is_data_q8 = i_grid_mode == OPT_GRID_Q8
>
> plot(f_calc_fibo(0.382, prev_h, prev_l, out_bull), title="Fibo 0.382", color=i_col_ret, display=display.data_window, editable=false)
> plot(f_calc_fibo(0.500, prev_h, prev_l, out_bull), title="Fibo 0.500", color=i_col_ret, display=display.data_window, editable=false)
> plot(f_calc_fibo(0.618, prev_h, prev_l, out_bull), title="Fibo 0.618", color=i_col_ret, display=display.data_window, editable=false)
> plot(f_calc_fibo(0.786, prev_h, prev_l, out_bull), title="Fibo 0.786", color=i_col_ret, display=display.data_window, editable=false)
> plot(f_calc_fibo(1.272, prev_h, prev_l, out_bull), title="Fibo 1.272", color=i_col_ext, display=display.data_window, editable=false)
> plot(f_calc_fibo(1.618, prev_h, prev_l, out_bull), title="Fibo 1.618", color=i_col_ext, display=display.data_window, editable=false)
> plot(f_calc_fibo(2.272, prev_h, prev_l, out_bull), title="Fibo 2.272", color=i_col_ext, display=display.data_window, editable=false)
> plot(f_calc_fibo(2.618, prev_h, prev_l, out_bull), title="Fibo 2.618", color=i_col_ext, display=display.data_window, editable=false)
>
> plot(is_data_q8 ? f_calc_grid(0.125, prev_h, prev_l) : na, title="Qtr 0.125", color=i_col_q8, display=display.data_window, editable=false)
> plot(is_data_q4 or is_data_q8 ? f_calc_grid(0.250, prev_h, prev_l) : na, title="Qtr 0.250", color=is_data_q8 ? i_col_q8 : i_col_q4, display=display.data_window, editable=false)
> plot(is_data_q8 ? f_calc_grid(0.375, prev_h, prev_l) : na, title="Qtr 0.375", color=i_col_q8, display=display.data_window, editable=false)
> plot(is_data_q4 or is_data_q8 ? f_calc_grid(0.500, prev_h, prev_l) : na, title="Qtr 0.500", color=is_data_q8 ? i_col_q8 : i_col_q4, display=display.data_window, editable=false)
> plot(is_data_q8 ? f_calc_grid(0.625, prev_h, prev_l) : na, title="Qtr 0.625", color=i_col_q8, display=display.data_window, editable=false)
> plot(is_data_q4 or is_data_q8 ? f_calc_grid(0.750, prev_h, prev_l) : na, title="Qtr 0.750", color=is_data_q8 ? i_col_q8 : i_col_q4, display=display.data_window, editable=false)
> plot(is_data_q8 ? f_calc_grid(0.875, prev_h, prev_l) : na, title="Qtr 0.875", color=i_col_q8, display=display.data_window, editable=false)
>
> plot(f_calc_fibo(i_val_c1, prev_h, prev_l, out_bull), title="Custom 1", color=i_col_c1, display=display.data_window, editable=false)
> plot(f_calc_fibo(i_val_c2, prev_h, prev_l, out_bull), title="Custom 2", color=i_col_c2, display=display.data_window, editable=false)
> plot(f_calc_fibo(i_val_c3, prev_h, prev_l, out_bull), title="Custom 3", color=i_col_c3, display=display.data_window, editable=false)
> ````
- Current
> [!quote]- コードを展開する
> ````pinescript
> // SPDX-FileCopyrightText: 2026 NK-report https://www.nk-report.com/
> // SPDX-License-Identifier: MIT
> //
> // Disclaimer: This script is for educational purposes only and does not constitute investment advice.
>
> //@version=6
> indicator("NK-box_option3_Fibo & Quarters (Current)", shorttitle="NK-opt3 F&Q (Curr)", overlay=true)
>
> // ==============================================================================
> // 【01】 免責・ライセンス
> // ==============================================================================
> // 独自視点の「解説/考察」記事を公開している個人サイトです。サイト内のTradingViewコードは無料でコピーできます。: https://www.nk-report.com/
> //
> // 免責事項: 本スクリプトは学習および情報提供のみを目的としており、投資助言ではありません。
> //
> // 1. 本コードは2026年時点の Pine Script v6 で動作確認を行っています。
> // 将来の仕様変更に伴う不具合等について、個別のサポートや改修は行いません。
> // 2. 本スクリプトは一般的な計算ロジックに基づき、LLMを用いて独自に作成したものです。
> // MITライセンスに則っています。
> // ------------------------------------------------------------------------------
> // MIT License
> //
> // Copyright 2026 NK-report https://www.nk-report.com/
> //
> // Permission is hereby granted, free of charge, to any person obtaining a copy of
> // this software and associated documentation files (the "Software"), to deal in
> // the Software without restriction, including without limitation the rights to
> // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
> // of the Software, and to permit persons to whom the Software is furnished to do
> // so, subject to the following conditions:
> //
> // The above copyright notice and this permission notice shall be included in all
> // copies or substantial portions of the Software.
> //
> // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> // SOFTWARE.
> // ==============================================================================
> // 【02】 UI設定と言語
> // ==============================================================================
> const string GRP_GENERAL = "▼ 基本設定"
> const string GRP_OFFSET = "▼ 描画位置の微調整 (オフセット)"
> const string GRP_CALC = "▼ 計算ロジック設定"
> const string GRP_FIBO_RET = "▼ Fibo: リトレースメント"
> const string GRP_FIBO_EXT = "▼ Fibo: エクステンション"
> const string GRP_GRID = "▼ Quarters: 等分割グリッド"
> const string GRP_FIBO_CUS = "▼ カスタムレベル"
>
> const string LBL_TF = "基準期間"
> const string OPT_TF_D = "1日"
> const string OPT_TF_W = "1週"
> const string OPT_TF_1M = "1ヶ月"
> const string OPT_TF_3M = "3ヶ月"
> const string OPT_TF_12M = "12ヶ月"
>
> const string OPT_POS_L = "左"
> const string OPT_POS_C = "中央"
> const string OPT_POS_R = "右"
>
> const string OPT_STY_S = "実線"
> const string OPT_STY_D = "破線"
> const string OPT_STY_DT = "点線"
>
> const string OPT_GRID_NONE = "非表示"
> const string OPT_GRID_Q4 = "4分割"
> const string OPT_GRID_Q8 = "8分割"
>
> i_tf_str = input.string(OPT_TF_3M, title=LBL_TF, options=[OPT_TF_D, OPT_TF_W, OPT_TF_1M, OPT_TF_3M, OPT_TF_12M], group=GRP_GENERAL)
> i_lbl_pos = input.string(OPT_POS_C, title="ラベル配置位置", options=[OPT_POS_L, OPT_POS_C, OPT_POS_R], group=GRP_GENERAL)
>
> i_offset_left = input.int(-1, title="左端のズレ調整 (バー数換算)", group=GRP_OFFSET)
> i_offset_right = input.int(0, title="右端のズレ調整 (バー数換算)", group=GRP_OFFSET)
>
> i_use_log = input.bool(true, title="対数(Log)スケールで計算 (※フィボナッチのみ適用)", group=GRP_CALC, tooltip="チャートを対数スケール(右下のlog)で表示している場合、チェックを入れると手動ツールと一致します。")
> i_rev = input.bool(false, title="階層を反転 (Reverse)", group=GRP_CALC, tooltip="手動ツールと0.382や0.618の上下が逆になっている場合に使用してください。")
>
> i_show_ret = input.bool(true, title="表示 (0.382, 0.5, 0.618, 0.786)", group=GRP_FIBO_RET, inline="ret")
> i_col_ret = input.color(color.blue, title="", group=GRP_FIBO_RET, inline="ret")
> i_wid_ret = input.int(2, title="", minval=1, maxval=5, group=GRP_FIBO_RET, inline="ret")
> i_sty_ret = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_FIBO_RET, inline="ret")
>
> i_show_ext = input.bool(true, title="表示 (1.272, 1.618, 2.272, 2.618)", group=GRP_FIBO_EXT, inline="ext")
> i_col_ext = input.color(color.lime, title="", group=GRP_FIBO_EXT, inline="ext")
> i_wid_ext = input.int(2, title="", minval=1, maxval=5, group=GRP_FIBO_EXT, inline="ext")
> i_sty_ext = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_FIBO_EXT, inline="ext")
>
> i_grid_mode = input.string(OPT_GRID_NONE, title="グリッド表示", options=[OPT_GRID_NONE, OPT_GRID_Q4, OPT_GRID_Q8], group=GRP_GRID)
> bool is_q4 = i_grid_mode == OPT_GRID_Q4
> bool is_q8 = i_grid_mode == OPT_GRID_Q8
>
> i_col_q4 = input.color(color.aqua, title="4分割 カラー", group=GRP_GRID, inline="q4")
> i_wid_q4 = input.int(2, title="", minval=1, maxval=5, group=GRP_GRID, inline="q4")
> i_sty_q4 = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_GRID, inline="q4")
>
> i_col_q8 = input.color(color.purple, title="8分割 カラー", group=GRP_GRID, inline="q8")
> i_wid_q8 = input.int(2, title="", minval=1, maxval=5, group=GRP_GRID, inline="q8")
> i_sty_q8 = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_GRID, inline="q8")
>
> i_show_c1 = input.bool(false, title="カスタム 1 表示", group=GRP_FIBO_CUS, inline="c1")
> i_val_c1 = input.float(0.0, title="", step=0.001, group=GRP_FIBO_CUS, inline="c1")
> i_col_c1 = input.color(color.orange, title="", group=GRP_FIBO_CUS, inline="c1")
> i_wid_c1 = input.int(2, title="", minval=1, maxval=5, group=GRP_FIBO_CUS, inline="c1")
> i_sty_c1 = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_FIBO_CUS, inline="c1")
>
> i_show_c2 = input.bool(false, title="カスタム 2 表示", group=GRP_FIBO_CUS, inline="c2")
> i_val_c2 = input.float(1.0, title="", step=0.001, group=GRP_FIBO_CUS, inline="c2")
> i_col_c2 = input.color(color.orange, title="", group=GRP_FIBO_CUS, inline="c2")
> i_wid_c2 = input.int(2, title="", minval=1, maxval=5, group=GRP_FIBO_CUS, inline="c2")
> i_sty_c2 = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_FIBO_CUS, inline="c2")
>
> i_show_c3 = input.bool(false, title="カスタム 3 表示", group=GRP_FIBO_CUS, inline="c3")
> i_val_c3 = input.float(2.414, title="", step=0.001, group=GRP_FIBO_CUS, inline="c3")
> i_col_c3 = input.color(color.orange, title="", group=GRP_FIBO_CUS, inline="c3")
> i_wid_c3 = input.int(2, title="", minval=1, maxval=5, group=GRP_FIBO_CUS, inline="c3")
> i_sty_c3 = input.string(OPT_STY_S, title="", options=[OPT_STY_S, OPT_STY_D, OPT_STY_DT], group=GRP_FIBO_CUS, inline="c3")
>
>
> // ==============================================================================
> // 【03】 全コード共通仕様(時間・インフラ処理)
> // ==============================================================================
> string req_tf = switch i_tf_str
> OPT_TF_D => "1D"
> OPT_TF_W => "1W"
> OPT_TF_1M => "1M"
> OPT_TF_3M => "3M"
> OPT_TF_12M => "12M"
>
> const int MS_PER_SEC = 1000
> bool is_new_period = timeframe.change(req_tf) or barstate.isfirst
>
> f_get_style(sty_str) =>
> sty_str == OPT_STY_S ? line.style_solid : sty_str == OPT_STY_D ? line.style_dashed : line.style_dotted
>
> // ------------------------------------------------------------------------------
> // オブジェクトの事前生成 (独立変数を宣言し、ズレを完全排除)
> // ※Pine Scriptの構文に基づき、異なる型のvar宣言は改行して行います
> // ------------------------------------------------------------------------------
> // Fibo用: 線とラベルのセット
> var line l_r1 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_ret, style=f_get_style(i_sty_ret), color=i_show_ret ? i_col_ret : na)
> var label lbl_r1 = label.new(na, na, xloc=xloc.bar_time, text="0.382", color=color.new(color.white, 100), textcolor=i_show_ret ? i_col_ret : na, style=label.style_none, size=size.small)
>
> var line l_r2 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_ret, style=f_get_style(i_sty_ret), color=i_show_ret ? i_col_ret : na)
> var label lbl_r2 = label.new(na, na, xloc=xloc.bar_time, text="0.500", color=color.new(color.white, 100), textcolor=i_show_ret ? i_col_ret : na, style=label.style_none, size=size.small)
>
> var line l_r3 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_ret, style=f_get_style(i_sty_ret), color=i_show_ret ? i_col_ret : na)
> var label lbl_r3 = label.new(na, na, xloc=xloc.bar_time, text="0.618", color=color.new(color.white, 100), textcolor=i_show_ret ? i_col_ret : na, style=label.style_none, size=size.small)
>
> var line l_r4 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_ret, style=f_get_style(i_sty_ret), color=i_show_ret ? i_col_ret : na)
> var label lbl_r4 = label.new(na, na, xloc=xloc.bar_time, text="0.786", color=color.new(color.white, 100), textcolor=i_show_ret ? i_col_ret : na, style=label.style_none, size=size.small)
>
> var line l_e1 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_ext, style=f_get_style(i_sty_ext), color=i_show_ext ? i_col_ext : na)
> var label lbl_e1 = label.new(na, na, xloc=xloc.bar_time, text="1.272", color=color.new(color.white, 100), textcolor=i_show_ext ? i_col_ext : na, style=label.style_none, size=size.small)
>
> var line l_e2 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_ext, style=f_get_style(i_sty_ext), color=i_show_ext ? i_col_ext : na)
> var label lbl_e2 = label.new(na, na, xloc=xloc.bar_time, text="1.618", color=color.new(color.white, 100), textcolor=i_show_ext ? i_col_ext : na, style=label.style_none, size=size.small)
>
> var line l_e3 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_ext, style=f_get_style(i_sty_ext), color=i_show_ext ? i_col_ext : na)
> var label lbl_e3 = label.new(na, na, xloc=xloc.bar_time, text="2.272", color=color.new(color.white, 100), textcolor=i_show_ext ? i_col_ext : na, style=label.style_none, size=size.small)
>
> var line l_e4 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_ext, style=f_get_style(i_sty_ext), color=i_show_ext ? i_col_ext : na)
> var label lbl_e4 = label.new(na, na, xloc=xloc.bar_time, text="2.618", color=color.new(color.white, 100), textcolor=i_show_ext ? i_col_ext : na, style=label.style_none, size=size.small)
>
> // Quarters用: 線のみ
> var line l_q1 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_q8, style=f_get_style(i_sty_q8), color=is_q8 ? i_col_q8 : na)
> var line l_q2 = line.new(na, na, na, na, xloc=xloc.bar_time, width=is_q8 ? i_wid_q8 : i_wid_q4, style=is_q8 ? f_get_style(i_sty_q8) : f_get_style(i_sty_q4), color=is_q8 ? i_col_q8 : is_q4 ? i_col_q4 : na)
> var line l_q3 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_q8, style=f_get_style(i_sty_q8), color=is_q8 ? i_col_q8 : na)
> var line l_q4 = line.new(na, na, na, na, xloc=xloc.bar_time, width=is_q8 ? i_wid_q8 : i_wid_q4, style=is_q8 ? f_get_style(i_sty_q8) : f_get_style(i_sty_q4), color=is_q8 ? i_col_q8 : is_q4 ? i_col_q4 : na)
> var line l_q5 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_q8, style=f_get_style(i_sty_q8), color=is_q8 ? i_col_q8 : na)
> var line l_q6 = line.new(na, na, na, na, xloc=xloc.bar_time, width=is_q8 ? i_wid_q8 : i_wid_q4, style=is_q8 ? f_get_style(i_sty_q8) : f_get_style(i_sty_q4), color=is_q8 ? i_col_q8 : is_q4 ? i_col_q4 : na)
> var line l_q7 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_q8, style=f_get_style(i_sty_q8), color=is_q8 ? i_col_q8 : na)
>
> var line l_c1 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_c1, style=f_get_style(i_sty_c1), color=i_show_c1 ? i_col_c1 : na)
> var label lbl_c1 = label.new(na, na, xloc=xloc.bar_time, text=str.tostring(i_val_c1), color=color.new(color.white, 100), textcolor=i_show_c1 ? i_col_c1 : na, style=label.style_none, size=size.small)
>
> var line l_c2 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_c2, style=f_get_style(i_sty_c2), color=i_show_c2 ? i_col_c2 : na)
> var label lbl_c2 = label.new(na, na, xloc=xloc.bar_time, text=str.tostring(i_val_c2), color=color.new(color.white, 100), textcolor=i_show_c2 ? i_col_c2 : na, style=label.style_none, size=size.small)
>
> var line l_c3 = line.new(na, na, na, na, xloc=xloc.bar_time, width=i_wid_c3, style=f_get_style(i_sty_c3), color=i_show_c3 ? i_col_c3 : na)
> var label lbl_c3 = label.new(na, na, xloc=xloc.bar_time, text=str.tostring(i_val_c3), color=color.new(color.white, 100), textcolor=i_show_c3 ? i_col_c3 : na, style=label.style_none, size=size.small)
>
>
> // ==============================================================================
> // 【05】 このコード固有の計算仕様 (Specific Indicator Logic)
> // ==============================================================================
> var float temp_o = na
> var float temp_h = na
> var float temp_l = na
> var int temp_h_t = na
> var int temp_l_t = na
>
> var float prev_o = na
> var float prev_h = na
> var float prev_l = na
> var float prev_c = na
> var int prev_h_t = na
> var int prev_l_t = na
>
> var int start_t = na
> var int end_t = na
>
> if is_new_period
> prev_o := temp_o
> prev_h := temp_h
> prev_l := temp_l
> prev_c := close[1]
> prev_h_t := temp_h_t
> prev_l_t := temp_l_t
>
> temp_o := open
> temp_h := high
> temp_l := low
> temp_h_t := time
> temp_l_t := time
>
> start_t := time
> int tc = time_close(req_tf)
> int fallback_t = time + timeframe.in_seconds(req_tf) * MS_PER_SEC
> // ※安全装置強化:time_close()とtimeframe.in_seconds()の両方がnaになる特殊休場日への対策
> end_t := not na(tc) ? tc : not na(fallback_t) ? fallback_t : time + (86400 * MS_PER_SEC)
> else
> if na(temp_h) or high > temp_h
> temp_h := high
> temp_h_t := time
> if na(temp_l) or low < temp_l
> temp_l := low
> temp_l_t := time
>
> f_calc_fibo(u_in, _h, _l, _is_bull, _use_log, _rev) =>
> bool bull = _rev ? not _is_bull : _is_bull
> float ratio = u_in <= 1.0 ? u_in : u_in - 1.0
> float val = na
>
> if _use_log
> float log_h = math.log(_h)
> float log_l = math.log(_l)
> float log_r = log_h - log_l
> float log_v = na
> if u_in <= 1.0
> log_v := bull ? log_h - (log_r * ratio) : log_l + (log_r * ratio)
> else
> log_v := bull ? log_h + (log_r * ratio) : log_l - (log_r * ratio)
> val := math.exp(log_v)
> else
> float range_v = _h - _l
> if u_in <= 1.0
> val := bull ? _h - (range_v * ratio) : _l + (range_v * ratio)
> else
> val := bull ? _h + (range_v * ratio) : _l - (range_v * ratio)
> val
>
> f_calc_grid(u, _h, _l) =>
> _l + ((_h - _l) * u)
>
> f_is_bull(_h_t, _l_t, _o, _c) =>
> bool bull = _l_t < _h_t
> if _h_t == _l_t
> bull := _c >= _o
> bull
>
> // ------------------------------------------------------------------------------
> // 描画関数 (グローバルスコープで定義してSyntax Errorを完全回避)
> // ------------------------------------------------------------------------------
> f_upd_fibo(_show, _val, _line, _lbl, _d_start, _d_end, _lbl_t) =>
> if _show and not na(_val)
> line.set_xy1(_line, _d_start, _val)
> line.set_xy2(_line, _d_end, _val)
> label.set_xy(_lbl, _lbl_t, _val)
> else
> line.set_xy1(_line, na, na)
> line.set_xy2(_line, na, na)
> label.set_xy(_lbl, na, na)
>
> f_upd_grid(_show, _val, _line, _d_start, _d_end) =>
> if _show and not na(_val)
> line.set_xy1(_line, _d_start, _val)
> line.set_xy2(_line, _d_end, _val)
> else
> line.set_xy1(_line, na, na)
> line.set_xy2(_line, na, na)
>
>
> // ==============================================================================
> // 【06】 描画と出力 (Rendering & Outputs)
> // ==============================================================================
> bool do_draw = false
> int draw_start = na
> int draw_end = na
>
> if not na(prev_o) and not na(start_t) and not na(end_t)
> do_draw := true
> int bar_ms = timeframe.in_seconds(timeframe.period) * MS_PER_SEC
> draw_start := start_t + (i_offset_left * bar_ms)
> draw_end := end_t + (i_offset_right * bar_ms)
>
> if do_draw
> bool is_bull = f_is_bull(prev_h_t, prev_l_t, prev_o, prev_c)
> int lbl_t = i_lbl_pos == OPT_POS_L ? draw_start : i_lbl_pos == OPT_POS_C ? int(math.round((draw_start + draw_end) / 2)) : draw_end
>
> // Fibo
> f_upd_fibo(i_show_ret, f_calc_fibo(0.382, prev_h, prev_l, is_bull, i_use_log, i_rev), l_r1, lbl_r1, draw_start, draw_end, lbl_t)
> f_upd_fibo(i_show_ret, f_calc_fibo(0.500, prev_h, prev_l, is_bull, i_use_log, i_rev), l_r2, lbl_r2, draw_start, draw_end, lbl_t)
> f_upd_fibo(i_show_ret, f_calc_fibo(0.618, prev_h, prev_l, is_bull, i_use_log, i_rev), l_r3, lbl_r3, draw_start, draw_end, lbl_t)
> f_upd_fibo(i_show_ret, f_calc_fibo(0.786, prev_h, prev_l, is_bull, i_use_log, i_rev), l_r4, lbl_r4, draw_start, draw_end, lbl_t)
>
> f_upd_fibo(i_show_ext, f_calc_fibo(1.272, prev_h, prev_l, is_bull, i_use_log, i_rev), l_e1, lbl_e1, draw_start, draw_end, lbl_t)
> f_upd_fibo(i_show_ext, f_calc_fibo(1.618, prev_h, prev_l, is_bull, i_use_log, i_rev), l_e2, lbl_e2, draw_start, draw_end, lbl_t)
> f_upd_fibo(i_show_ext, f_calc_fibo(2.272, prev_h, prev_l, is_bull, i_use_log, i_rev), l_e3, lbl_e3, draw_start, draw_end, lbl_t)
> f_upd_fibo(i_show_ext, f_calc_fibo(2.618, prev_h, prev_l, is_bull, i_use_log, i_rev), l_e4, lbl_e4, draw_start, draw_end, lbl_t)
>
> // Quarters
> f_upd_grid(is_q8, f_calc_grid(0.125, prev_h, prev_l), l_q1, draw_start, draw_end)
> f_upd_grid(is_q4 or is_q8, f_calc_grid(0.250, prev_h, prev_l), l_q2, draw_start, draw_end)
> f_upd_grid(is_q8, f_calc_grid(0.375, prev_h, prev_l), l_q3, draw_start, draw_end)
> f_upd_grid(is_q4 or is_q8, f_calc_grid(0.500, prev_h, prev_l), l_q4, draw_start, draw_end)
> f_upd_grid(is_q8, f_calc_grid(0.625, prev_h, prev_l), l_q5, draw_start, draw_end)
> f_upd_grid(is_q4 or is_q8, f_calc_grid(0.750, prev_h, prev_l), l_q6, draw_start, draw_end)
> f_upd_grid(is_q8, f_calc_grid(0.875, prev_h, prev_l), l_q7, draw_start, draw_end)
>
> // Custom
> f_upd_fibo(i_show_c1, f_calc_fibo(i_val_c1, prev_h, prev_l, is_bull, i_use_log, i_rev), l_c1, lbl_c1, draw_start, draw_end, lbl_t)
> f_upd_fibo(i_show_c2, f_calc_fibo(i_val_c2, prev_h, prev_l, is_bull, i_use_log, i_rev), l_c2, lbl_c2, draw_start, draw_end, lbl_t)
> f_upd_fibo(i_show_c3, f_calc_fibo(i_val_c3, prev_h, prev_l, is_bull, i_use_log, i_rev), l_c3, lbl_c3, draw_start, draw_end, lbl_t)
>
> // データウィンドウ出力 (客観的事実のみを静かに出力)
> bool out_bull = f_is_bull(prev_h_t, prev_l_t, prev_o, prev_c)
>
> plot(f_calc_fibo(0.382, prev_h, prev_l, out_bull, i_use_log, i_rev), title="Fibo 0.382", color=i_col_ret, display=display.data_window, editable=false)
> plot(f_calc_fibo(0.500, prev_h, prev_l, out_bull, i_use_log, i_rev), title="Fibo 0.500", color=i_col_ret, display=display.data_window, editable=false)
> plot(f_calc_fibo(0.618, prev_h, prev_l, out_bull, i_use_log, i_rev), title="Fibo 0.618", color=i_col_ret, display=display.data_window, editable=false)
> plot(f_calc_fibo(0.786, prev_h, prev_l, out_bull, i_use_log, i_rev), title="Fibo 0.786", color=i_col_ret, display=display.data_window, editable=false)
> plot(f_calc_fibo(1.272, prev_h, prev_l, out_bull, i_use_log, i_rev), title="Fibo 1.272", color=i_col_ext, display=display.data_window, editable=false)
> plot(f_calc_fibo(1.618, prev_h, prev_l, out_bull, i_use_log, i_rev), title="Fibo 1.618", color=i_col_ext, display=display.data_window, editable=false)
> plot(f_calc_fibo(2.272, prev_h, prev_l, out_bull, i_use_log, i_rev), title="Fibo 2.272", color=i_col_ext, display=display.data_window, editable=false)
> plot(f_calc_fibo(2.618, prev_h, prev_l, out_bull, i_use_log, i_rev), title="Fibo 2.618", color=i_col_ext, display=display.data_window, editable=false)
>
> plot(is_q8 ? f_calc_grid(0.125, prev_h, prev_l) : na, title="Qtr 0.125", color=i_col_q8, display=display.data_window, editable=false)
> plot(is_q4 or is_q8 ? f_calc_grid(0.250, prev_h, prev_l) : na, title="Qtr 0.250", color=is_q8 ? i_col_q8 : i_col_q4, display=display.data_window, editable=false)
> plot(is_q8 ? f_calc_grid(0.375, prev_h, prev_l) : na, title="Qtr 0.375", color=i_col_q8, display=display.data_window, editable=false)
> plot(is_q4 or is_q8 ? f_calc_grid(0.500, prev_h, prev_l) : na, title="Qtr 0.500", color=is_q8 ? i_col_q8 : i_col_q4, display=display.data_window, editable=false)
> plot(is_q8 ? f_calc_grid(0.625, prev_h, prev_l) : na, title="Qtr 0.625", color=i_col_q8, display=display.data_window, editable=false)
> plot(is_q4 or is_q8 ? f_calc_grid(0.750, prev_h, prev_l) : na, title="Qtr 0.750", color=is_q8 ? i_col_q8 : i_col_q4, display=display.data_window, editable=false)
> plot(is_q8 ? f_calc_grid(0.875, prev_h, prev_l) : na, title="Qtr 0.875", color=i_col_q8, display=display.data_window, editable=false)
>
> plot(f_calc_fibo(i_val_c1, prev_h, prev_l, out_bull, i_use_log, i_rev), title="Custom 1", color=i_col_c1, display=display.data_window, editable=false)
> plot(f_calc_fibo(i_val_c2, prev_h, prev_l, out_bull, i_use_log, i_rev), title="Custom 2", color=i_col_c2, display=display.data_window, editable=false)
> plot(f_calc_fibo(i_val_c3, prev_h, prev_l, out_bull, i_use_log, i_rev), title="Custom 3", color=i_col_c3, display=display.data_window, editable=false)
> ````
---
> **Navigation**
**ページ移動:**
* [[2-3. option2_SVWAP & Zone|前の記事へ]]
* [[3. NK-Horizon|次の記事へ]]
* [[09. ▢-TradingViewコード|▢-TradingViewへ戻る]]
* [[01. トップページ|トップページへ戻る]]