diff --git a/3in1 copy.pine b/3in1 copy.pine index 283b564..a2be915 100644 --- a/3in1 copy.pine +++ b/3in1 copy.pine @@ -959,6 +959,26 @@ srbr_bullish_15m = mtf_15m ? (srbr_brekout_res_15m or (srbr_brekout_res_15m and srbr_bearish_15m = mtf_15m ? (srbr_brekout_sup_15m or (srbr_brekout_sup_15m and srbr_sup_holds_15m[1]) or srbr_res_holds_15m) : false srbr_neutral_15m = mtf_15m ? (not srbr_bullish_15m and not srbr_bearish_15m) : false +// 30分钟SRBR信号计算 +srbr_bullish_30m = mtf_30m ? (srbr_brekout_res_30m or (srbr_brekout_res_30m and srbr_res_holds_30m[1]) or srbr_sup_holds_30m) : false +srbr_bearish_30m = mtf_30m ? (srbr_brekout_sup_30m or (srbr_brekout_sup_30m and srbr_sup_holds_30m[1]) or srbr_res_holds_30m) : false +srbr_neutral_30m = mtf_30m ? (not srbr_bullish_30m and not srbr_bearish_30m) : false + +// 45分钟SRBR信号计算 +srbr_bullish_45m = mtf_45m ? (srbr_brekout_res_45m or (srbr_brekout_res_45m and srbr_res_holds_45m[1]) or srbr_sup_holds_45m) : false +srbr_bearish_45m = mtf_45m ? (srbr_brekout_sup_45m or (srbr_brekout_sup_45m and srbr_sup_holds_45m[1]) or srbr_res_holds_45m) : false +srbr_neutral_45m = mtf_45m ? (not srbr_bullish_45m and not srbr_bearish_45m) : false + +// 1小时SRBR信号计算 +srbr_bullish_1h = mtf_1h ? (srbr_brekout_res_1h or (srbr_brekout_res_1h and srbr_res_holds_1h[1]) or srbr_sup_holds_1h) : false +srbr_bearish_1h = mtf_1h ? (srbr_brekout_sup_1h or (srbr_brekout_sup_1h and srbr_sup_holds_1h[1]) or srbr_res_holds_1h) : false +srbr_neutral_1h = mtf_1h ? (not srbr_bullish_1h and not srbr_bearish_1h) : false + +// 4小时SRBR信号计算 +srbr_bullish_4h = mtf_4h ? (srbr_brekout_res_4h or (srbr_brekout_res_4h and srbr_res_holds_4h[1]) or srbr_sup_holds_4h) : false +srbr_bearish_4h = mtf_4h ? (srbr_brekout_sup_4h or (srbr_brekout_sup_4h and srbr_sup_holds_4h[1]) or srbr_res_holds_4h) : false +srbr_neutral_4h = mtf_4h ? (not srbr_bullish_4h and not srbr_bearish_4h) : false + // 30分钟信号 distance_30m = mtf_30m and not na(close_30m) and not na(ma200_30m) ? math.abs(close_30m - ma200_30m) : na @@ -1774,8 +1794,12 @@ if show_mtf_table and barstate.islast table.cell(mtf_table, 8, 3, na(distance_to_mean_15m) ? "N/A" : str.tostring(distance_to_mean_15m, '#.##'), text_color=color.black, bgcolor=mean_bg_color_15m, text_size=text_size) table.cell(mtf_table, 9, 3, na(distance_to_r1_15m) ? "N/A" : str.tostring(distance_to_r1_15m, '#.##'), text_color=color.black, bgcolor=r1_bg_color_15m, text_size=text_size) table.cell(mtf_table, 10, 3, na(distance_to_s1_15m) ? "N/A" : str.tostring(distance_to_s1_15m, '#.##'), text_color=color.black, bgcolor=s1_bg_color_15m, text_size=text_size) - table.cell(mtf_table, 11, 3, get_signal_text(osc_15m, long_15m, short_15m), text_color=color.black, bgcolor=signal_color_15m, text_size=text_size) - table.cell(mtf_table, 12, 3, get_final_judgment(osc_15m, long_15m, short_15m), text_color=color.black, bgcolor=signal_color_15m, text_size=text_size) + // SRBR状态 + srbr_status_15m = srbr_bullish_15m ? "看涨" : srbr_bearish_15m ? "看跌" : "中性" + srbr_color_15m = srbr_bullish_15m ? color.new(color.green, 40) : srbr_bearish_15m ? color.new(color.red, 40) : color.new(color.gray, 60) + table.cell(mtf_table, 11, 3, srbr_status_15m, text_color=color.black, bgcolor=srbr_color_15m, text_size=text_size) + table.cell(mtf_table, 12, 3, get_signal_text(osc_15m, long_15m, short_15m), text_color=color.black, bgcolor=signal_color_15m, text_size=text_size) + table.cell(mtf_table, 13, 3, get_final_judgment(osc_15m, long_15m, short_15m), text_color=color.black, bgcolor=signal_color_15m, text_size=text_size) // ═════════ 30分钟时间框架数据 ═════════ if mtf_30m and not na(rsi_30m) @@ -1806,8 +1830,12 @@ if show_mtf_table and barstate.islast table.cell(mtf_table, 8, 4, na(distance_to_mean_30m) ? "N/A" : str.tostring(distance_to_mean_30m, '#.##'), text_color=color.black, bgcolor=mean_bg_color_30m, text_size=text_size) table.cell(mtf_table, 9, 4, na(distance_to_r1_30m) ? "N/A" : str.tostring(distance_to_r1_30m, '#.##'), text_color=color.black, bgcolor=r1_bg_color_30m, text_size=text_size) table.cell(mtf_table, 10, 4, na(distance_to_s1_30m) ? "N/A" : str.tostring(distance_to_s1_30m, '#.##'), text_color=color.black, bgcolor=s1_bg_color_30m, text_size=text_size) - table.cell(mtf_table, 11, 4, get_signal_text(osc_30m, long_30m, short_30m), text_color=color.black, bgcolor=signal_color_30m, text_size=text_size) - table.cell(mtf_table, 12, 4, get_final_judgment(osc_30m, long_30m, short_30m), text_color=color.black, bgcolor=signal_color_30m, text_size=text_size) + // SRBR状态 + srbr_status_30m = srbr_bullish_30m ? "看涨" : srbr_bearish_30m ? "看跌" : "中性" + srbr_color_30m = srbr_bullish_30m ? color.new(color.green, 40) : srbr_bearish_30m ? color.new(color.red, 40) : color.new(color.gray, 60) + table.cell(mtf_table, 11, 4, srbr_status_30m, text_color=color.black, bgcolor=srbr_color_30m, text_size=text_size) + table.cell(mtf_table, 12, 4, get_signal_text(osc_30m, long_30m, short_30m), text_color=color.black, bgcolor=signal_color_30m, text_size=text_size) + table.cell(mtf_table, 13, 4, get_final_judgment(osc_30m, long_30m, short_30m), text_color=color.black, bgcolor=signal_color_30m, text_size=text_size) // ═════════ 45分钟时间框架数据 ═════════ if mtf_45m and not na(rsi_45m) @@ -1838,8 +1866,12 @@ if show_mtf_table and barstate.islast table.cell(mtf_table, 8, 5, na(distance_to_mean_45m) ? "N/A" : str.tostring(distance_to_mean_45m, '#.##'), text_color=color.black, bgcolor=mean_bg_color_45m, text_size=text_size) table.cell(mtf_table, 9, 5, na(distance_to_r1_45m) ? "N/A" : str.tostring(distance_to_r1_45m, '#.##'), text_color=color.black, bgcolor=r1_bg_color_45m, text_size=text_size) table.cell(mtf_table, 10, 5, na(distance_to_s1_45m) ? "N/A" : str.tostring(distance_to_s1_45m, '#.##'), text_color=color.black, bgcolor=s1_bg_color_45m, text_size=text_size) - table.cell(mtf_table, 11, 5, get_signal_text(osc_45m, long_45m, short_45m), text_color=color.black, bgcolor=signal_color_45m, text_size=text_size) - table.cell(mtf_table, 12, 5, get_final_judgment(osc_45m, long_45m, short_45m), text_color=color.black, bgcolor=signal_color_45m, text_size=text_size) + // SRBR状态 + srbr_status_45m = srbr_bullish_45m ? "看涨" : srbr_bearish_45m ? "看跌" : "中性" + srbr_color_45m = srbr_bullish_45m ? color.new(color.green, 40) : srbr_bearish_45m ? color.new(color.red, 40) : color.new(color.gray, 60) + table.cell(mtf_table, 11, 5, srbr_status_45m, text_color=color.black, bgcolor=srbr_color_45m, text_size=text_size) + table.cell(mtf_table, 12, 5, get_signal_text(osc_45m, long_45m, short_45m), text_color=color.black, bgcolor=signal_color_45m, text_size=text_size) + table.cell(mtf_table, 13, 5, get_final_judgment(osc_45m, long_45m, short_45m), text_color=color.black, bgcolor=signal_color_45m, text_size=text_size) // ═════════ 1小时时间框架数据 ═════════ if mtf_1h and not na(rsi_1h) @@ -1870,8 +1902,12 @@ if show_mtf_table and barstate.islast table.cell(mtf_table, 8, 6, na(distance_to_mean_1h) ? "N/A" : str.tostring(distance_to_mean_1h, '#.##'), text_color=color.black, bgcolor=mean_bg_color_1h, text_size=text_size) table.cell(mtf_table, 9, 6, na(distance_to_r1_1h) ? "N/A" : str.tostring(distance_to_r1_1h, '#.##'), text_color=color.black, bgcolor=r1_bg_color_1h, text_size=text_size) table.cell(mtf_table, 10, 6, na(distance_to_s1_1h) ? "N/A" : str.tostring(distance_to_s1_1h, '#.##'), text_color=color.black, bgcolor=s1_bg_color_1h, text_size=text_size) - table.cell(mtf_table, 11, 6, get_signal_text(osc_1h, long_1h, short_1h), text_color=color.black, bgcolor=signal_color_1h, text_size=text_size) - table.cell(mtf_table, 12, 6, get_final_judgment(osc_1h, long_1h, short_1h), text_color=color.black, bgcolor=signal_color_1h, text_size=text_size) + // SRBR状态 + srbr_status_1h = srbr_bullish_1h ? "看涨" : srbr_bearish_1h ? "看跌" : "中性" + srbr_color_1h = srbr_bullish_1h ? color.new(color.green, 40) : srbr_bearish_1h ? color.new(color.red, 40) : color.new(color.gray, 60) + table.cell(mtf_table, 11, 6, srbr_status_1h, text_color=color.black, bgcolor=srbr_color_1h, text_size=text_size) + table.cell(mtf_table, 12, 6, get_signal_text(osc_1h, long_1h, short_1h), text_color=color.black, bgcolor=signal_color_1h, text_size=text_size) + table.cell(mtf_table, 13, 6, get_final_judgment(osc_1h, long_1h, short_1h), text_color=color.black, bgcolor=signal_color_1h, text_size=text_size) // ═════════ 4小时时间框架数据 ═════════ if mtf_4h and not na(rsi_4h) @@ -1902,8 +1938,12 @@ if show_mtf_table and barstate.islast table.cell(mtf_table, 8, 7, na(distance_to_mean_4h) ? "N/A" : str.tostring(distance_to_mean_4h, '#.##'), text_color=color.black, bgcolor=mean_bg_color_4h, text_size=text_size) table.cell(mtf_table, 9, 7, na(distance_to_r1_4h) ? "N/A" : str.tostring(distance_to_r1_4h, '#.##'), text_color=color.black, bgcolor=r1_bg_color_4h, text_size=text_size) table.cell(mtf_table, 10, 7, na(distance_to_s1_4h) ? "N/A" : str.tostring(distance_to_s1_4h, '#.##'), text_color=color.black, bgcolor=s1_bg_color_4h, text_size=text_size) - table.cell(mtf_table, 11, 7, get_signal_text(osc_4h, long_4h, short_4h), text_color=color.black, bgcolor=signal_color_4h, text_size=text_size) - table.cell(mtf_table, 12, 7, get_final_judgment(osc_4h, long_4h, short_4h), text_color=color.black, bgcolor=signal_color_4h, text_size=text_size) + // SRBR状态 + srbr_status_4h = srbr_bullish_4h ? "看涨" : srbr_bearish_4h ? "看跌" : "中性" + srbr_color_4h = srbr_bullish_4h ? color.new(color.green, 40) : srbr_bearish_4h ? color.new(color.red, 40) : color.new(color.gray, 60) + table.cell(mtf_table, 11, 7, srbr_status_4h, text_color=color.black, bgcolor=srbr_color_4h, text_size=text_size) + table.cell(mtf_table, 12, 7, get_signal_text(osc_4h, long_4h, short_4h), text_color=color.black, bgcolor=signal_color_4h, text_size=text_size) + table.cell(mtf_table, 13, 7, get_final_judgment(osc_4h, long_4h, short_4h), text_color=color.black, bgcolor=signal_color_4h, text_size=text_size)