Pine脚本 | 如何显示和排版绘图开关?

想必白嫖党们和我一样喜欢把一堆代码塞进一个脚本里,但却出现一个痛点,你的绘图开关一大堆,你得在窗口滑来滑去点击。嘿嘿,小虎教你怎么解决“开关的排版问题” ~

先上图,这是最终效果:

代码案例:

  • 上图的绘图开关源代码:
    //@version=5
    indicator(title='top', overlay=true, explicit_plot_zorder=true) //explicit_plot_zorder开启绘制顺序为越靠尾的代码绘图越靠顶
    
    //---------------------------------------------------------------------all_signals---------------------------------------------------------------------
    //信号显示模块
    head_sma_envelopes_0_signal = input.bool(defval=true, title='HS', inline='head_sma_envelopes_signals_1', group='all_signals')
    head_sma_timeframe = input.timeframe(defval='W', title='', options=['','D','W','M'], inline='head_sma_envelopes_signals_1', group='all_signals')
    head_sma_atr_signal = input.bool(defval=true, title='atr', inline='head_sma_envelopes_signals_1', group='all_signals')
    head_sma_table_signal = input.bool(defval=true, title='table', inline='head_sma_envelopes_signals_1', group='all_signals')
    head_sma_envelopes_1_signal = input.bool(defval=true, title='HS1', inline='head_sma_envelopes_signals_2', group='all_signals')
    head_sma_upper_mult = input.float(defval=1.62, title='', step=0.01, inline='head_sma_envelopes_signals_2', group='all_signals')
    head_sma_envelopes_2_signal = input.bool(defval=true, title='HS2', inline='head_sma_envelopes_signals_2', group='all_signals')
    head_sma_lower_mult = input.float(defval=0.62, title='', step=0.01, inline='head_sma_envelopes_signals_2', group='all_signals')
    
    envelope_signal = input.bool(defval=true, title='envelopes', inline='envelope_signal', group='all_signals')
    envelope_fill_signal = input.bool(defval=true, title='fill', inline='envelope_signal', group='all_signals')
    middle_signal = input.bool(defval=true, title='middle', inline='envelope_signal', group='all_signals')
    
    SuperTrend_signal = input.bool(defval=true, title='atr1', inline='SuperTrend_signal', group='all_signals')
    SuperTrend_timeframe = input.timeframe(defval='', title='', options=['','180','D','8D','64D'], inline='SuperTrend_signal', group='all_signals')
    SuperTrend_signal_2 = input.bool(defval=true, title='atr2', inline='SuperTrend_signal', group='all_signals')
    SuperTrend_timeframe_2 = input.timeframe(defval='', title='', options=['','180','D','8D','64D'], inline='SuperTrend_signal', group='all_signals')
    
    SuperTrend_resistance_signal = input.bool(defval=true, title='SuperTrend Resistance', inline='SuperTrend Resistance', group='all_signals')
    
    resistance_signal = input.bool(defval=true, title='resistance', inline='resistance_signal', group='all_signals')
    
    td_signal = input.bool(defval=true, title='td', inline='td_signal', group='all_signals')
  • explicit_plot_zorder=true,这个设置能让你代码中的 plot 输出的绘图按代码顺序倒序绘制,建议开启。当然不开也可以,但在绘图过多的情况下,你的绘图顺序可能会一团糟。
  • inline='head_sma_envelopes_signals_1' ,inline 的功能使 input 放在同一行显示并按代码顺序中从左到右排列。
  • group='all_signals',group 的功能是使 input 分组显示,相当于word文档的段落间距。

排版技巧:

  1. 先确定相关性,把相关的开关划分为一组
  2. 再确定重要性,从上到下排序
  3. 开关名称尽量简写
  4. 适当使用option下拉列表替代bool勾选开关,有助于节省弹窗空间

猜你喜欢

转载自blog.csdn.net/qq_17685725/article/details/125688003
今日推荐