diff --git a/3in1 copy.pine b/3in1 copy.pine index 4ac958d..b478f50 100644 --- a/3in1 copy.pine +++ b/3in1 copy.pine @@ -793,7 +793,27 @@ meanrange_1m = mtf_1m ? request.security(syminfo.tickerid, "1", supersmoother(ta upband1_1m = mtf_1m and not na(meanline_1m) and not na(meanrange_1m) ? meanline_1m + meanrange_1m * (2 * math.asin(1) * innermult) : na loband1_1m = mtf_1m and not na(meanline_1m) and not na(meanrange_1m) ? meanline_1m - meanrange_1m * (2 * math.asin(1) * innermult) : na // SRBR 1分钟数据 -[srbr_supportLevel_1m, srbr_resistanceLevel_1m, srbr_brekout_res_1m, srbr_res_holds_1m, srbr_sup_holds_1m, srbr_brekout_sup_1m, srbr_vol_1m, srbr_vol_hi_1m, srbr_vol_lo_1m] = mtf_1m ? get_mtf_srbr_data("1") : [na, na, na, na, na, na, na, na, na] +var float srbr_supportLevel_1m = na +var float srbr_resistanceLevel_1m = na +var bool srbr_brekout_res_1m = na +var bool srbr_res_holds_1m = na +var bool srbr_sup_holds_1m = na +var bool srbr_brekout_sup_1m = na +var float srbr_vol_1m = na +var float srbr_vol_hi_1m = na +var float srbr_vol_lo_1m = na + +if mtf_1m + [sup_1m, res_1m, br_res_1m, r_holds_1m, s_holds_1m, br_sup_1m, vol_1m, vol_hi_1m, vol_lo_1m] = get_mtf_srbr_data("1") + srbr_supportLevel_1m := sup_1m + srbr_resistanceLevel_1m := res_1m + srbr_brekout_res_1m := br_res_1m + srbr_res_holds_1m := r_holds_1m + srbr_sup_holds_1m := s_holds_1m + srbr_brekout_sup_1m := br_sup_1m + srbr_vol_1m := vol_1m + srbr_vol_hi_1m := vol_hi_1m + srbr_vol_lo_1m := vol_lo_1m // 5分钟数据 rsi_5m = mtf_5m ? get_mtf_rsi("5") : na @@ -805,7 +825,27 @@ meanrange_5m = mtf_5m ? request.security(syminfo.tickerid, "5", supersmoother(ta upband1_5m = mtf_5m and not na(meanline_5m) and not na(meanrange_5m) ? meanline_5m + meanrange_5m * (2 * math.asin(1) * innermult) : na loband1_5m = mtf_5m and not na(meanline_5m) and not na(meanrange_5m) ? meanline_5m - meanrange_5m * (2 * math.asin(1) * innermult) : na // SRBR 5分钟数据 -[srbr_supportLevel_5m, srbr_resistanceLevel_5m, srbr_brekout_res_5m, srbr_res_holds_5m, srbr_sup_holds_5m, srbr_brekout_sup_5m, srbr_vol_5m, srbr_vol_hi_5m, srbr_vol_lo_5m] = mtf_5m ? get_mtf_srbr_data("5") : [na, na, na, na, na, na, na, na, na] +var float srbr_supportLevel_5m = na +var float srbr_resistanceLevel_5m = na +var bool srbr_brekout_res_5m = na +var bool srbr_res_holds_5m = na +var bool srbr_sup_holds_5m = na +var bool srbr_brekout_sup_5m = na +var float srbr_vol_5m = na +var float srbr_vol_hi_5m = na +var float srbr_vol_lo_5m = na + +if mtf_5m + [sup_5m, res_5m, br_res_5m, r_holds_5m, s_holds_5m, br_sup_5m, vol_5m, vol_hi_5m, vol_lo_5m] = get_mtf_srbr_data("5") + srbr_supportLevel_5m := sup_5m + srbr_resistanceLevel_5m := res_5m + srbr_brekout_res_5m := br_res_5m + srbr_res_holds_5m := r_holds_5m + srbr_sup_holds_5m := s_holds_5m + srbr_brekout_sup_5m := br_sup_5m + srbr_vol_5m := vol_5m + srbr_vol_hi_5m := vol_hi_5m + srbr_vol_lo_5m := vol_lo_5m // 15分钟数据 rsi_15m = mtf_15m ? get_mtf_rsi("15") : na @@ -817,7 +857,27 @@ meanrange_15m = mtf_15m ? request.security(syminfo.tickerid, "15", supersmoother upband1_15m = mtf_15m and not na(meanline_15m) and not na(meanrange_15m) ? meanline_15m + meanrange_15m * (2 * math.asin(1) * innermult) : na loband1_15m = mtf_15m and not na(meanline_15m) and not na(meanrange_15m) ? meanline_15m - meanrange_15m * (2 * math.asin(1) * innermult) : na // SRBR 15分钟数据 -[srbr_supportLevel_15m, srbr_resistanceLevel_15m, srbr_brekout_res_15m, srbr_res_holds_15m, srbr_sup_holds_15m, srbr_brekout_sup_15m, srbr_vol_15m, srbr_vol_hi_15m, srbr_vol_lo_15m] = mtf_15m ? get_mtf_srbr_data("15") : [na, na, na, na, na, na, na, na, na] +var float srbr_supportLevel_15m = na +var float srbr_resistanceLevel_15m = na +var bool srbr_brekout_res_15m = na +var bool srbr_res_holds_15m = na +var bool srbr_sup_holds_15m = na +var bool srbr_brekout_sup_15m = na +var float srbr_vol_15m = na +var float srbr_vol_hi_15m = na +var float srbr_vol_lo_15m = na + +if mtf_15m + [sup_15m, res_15m, br_res_15m, r_holds_15m, s_holds_15m, br_sup_15m, vol_15m, vol_hi_15m, vol_lo_15m] = get_mtf_srbr_data("15") + srbr_supportLevel_15m := sup_15m + srbr_resistanceLevel_15m := res_15m + srbr_brekout_res_15m := br_res_15m + srbr_res_holds_15m := r_holds_15m + srbr_sup_holds_15m := s_holds_15m + srbr_brekout_sup_15m := br_sup_15m + srbr_vol_15m := vol_15m + srbr_vol_hi_15m := vol_hi_15m + srbr_vol_lo_15m := vol_lo_15m // 30分钟数据 rsi_30m = mtf_30m ? get_mtf_rsi("30") : na @@ -829,7 +889,27 @@ meanrange_30m = mtf_30m ? request.security(syminfo.tickerid, "30", supersmoother upband1_30m = mtf_30m and not na(meanline_30m) and not na(meanrange_30m) ? meanline_30m + meanrange_30m * (2 * math.asin(1) * innermult) : na loband1_30m = mtf_30m and not na(meanline_30m) and not na(meanrange_30m) ? meanline_30m - meanrange_30m * (2 * math.asin(1) * innermult) : na // SRBR 30分钟数据 -[srbr_supportLevel_30m, srbr_resistanceLevel_30m, srbr_brekout_res_30m, srbr_res_holds_30m, srbr_sup_holds_30m, srbr_brekout_sup_30m, srbr_vol_30m, srbr_vol_hi_30m, srbr_vol_lo_30m] = mtf_30m ? get_mtf_srbr_data("30") : [na, na, na, na, na, na, na, na, na] +var float srbr_supportLevel_30m = na +var float srbr_resistanceLevel_30m = na +var bool srbr_brekout_res_30m = na +var bool srbr_res_holds_30m = na +var bool srbr_sup_holds_30m = na +var bool srbr_brekout_sup_30m = na +var float srbr_vol_30m = na +var float srbr_vol_hi_30m = na +var float srbr_vol_lo_30m = na + +if mtf_30m + [sup_30m, res_30m, br_res_30m, r_holds_30m, s_holds_30m, br_sup_30m, vol_30m, vol_hi_30m, vol_lo_30m] = get_mtf_srbr_data("30") + srbr_supportLevel_30m := sup_30m + srbr_resistanceLevel_30m := res_30m + srbr_brekout_res_30m := br_res_30m + srbr_res_holds_30m := r_holds_30m + srbr_sup_holds_30m := s_holds_30m + srbr_brekout_sup_30m := br_sup_30m + srbr_vol_30m := vol_30m + srbr_vol_hi_30m := vol_hi_30m + srbr_vol_lo_30m := vol_lo_30m // 45分钟数据 rsi_45m = mtf_45m ? get_mtf_rsi("45") : na @@ -841,7 +921,27 @@ meanrange_45m = mtf_45m ? request.security(syminfo.tickerid, "45", supersmoother upband1_45m = mtf_45m and not na(meanline_45m) and not na(meanrange_45m) ? meanline_45m + meanrange_45m * (2 * math.asin(1) * innermult) : na loband1_45m = mtf_45m and not na(meanline_45m) and not na(meanrange_45m) ? meanline_45m - meanrange_45m * (2 * math.asin(1) * innermult) : na // SRBR 45分钟数据 -[srbr_supportLevel_45m, srbr_resistanceLevel_45m, srbr_brekout_res_45m, srbr_res_holds_45m, srbr_sup_holds_45m, srbr_brekout_sup_45m, srbr_vol_45m, srbr_vol_hi_45m, srbr_vol_lo_45m] = mtf_45m ? get_mtf_srbr_data("45") : [na, na, na, na, na, na, na, na, na] +var float srbr_supportLevel_45m = na +var float srbr_resistanceLevel_45m = na +var bool srbr_brekout_res_45m = na +var bool srbr_res_holds_45m = na +var bool srbr_sup_holds_45m = na +var bool srbr_brekout_sup_45m = na +var float srbr_vol_45m = na +var float srbr_vol_hi_45m = na +var float srbr_vol_lo_45m = na + +if mtf_45m + [sup_45m, res_45m, br_res_45m, r_holds_45m, s_holds_45m, br_sup_45m, vol_45m, vol_hi_45m, vol_lo_45m] = get_mtf_srbr_data("45") + srbr_supportLevel_45m := sup_45m + srbr_resistanceLevel_45m := res_45m + srbr_brekout_res_45m := br_res_45m + srbr_res_holds_45m := r_holds_45m + srbr_sup_holds_45m := s_holds_45m + srbr_brekout_sup_45m := br_sup_45m + srbr_vol_45m := vol_45m + srbr_vol_hi_45m := vol_hi_45m + srbr_vol_lo_45m := vol_lo_45m // 1小时数据 rsi_1h = mtf_1h ? get_mtf_rsi("60") : na @@ -853,7 +953,27 @@ meanrange_1h = mtf_1h ? request.security(syminfo.tickerid, "60", supersmoother(t upband1_1h = mtf_1h and not na(meanline_1h) and not na(meanrange_1h) ? meanline_1h + meanrange_1h * (2 * math.asin(1) * innermult) : na loband1_1h = mtf_1h and not na(meanline_1h) and not na(meanrange_1h) ? meanline_1h - meanrange_1h * (2 * math.asin(1) * innermult) : na // SRBR 1小时数据 -[srbr_supportLevel_1h, srbr_resistanceLevel_1h, srbr_brekout_res_1h, srbr_res_holds_1h, srbr_sup_holds_1h, srbr_brekout_sup_1h, srbr_vol_1h, srbr_vol_hi_1h, srbr_vol_lo_1h] = mtf_1h ? get_mtf_srbr_data("60") : [na, na, na, na, na, na, na, na, na] +var float srbr_supportLevel_1h = na +var float srbr_resistanceLevel_1h = na +var bool srbr_brekout_res_1h = na +var bool srbr_res_holds_1h = na +var bool srbr_sup_holds_1h = na +var bool srbr_brekout_sup_1h = na +var float srbr_vol_1h = na +var float srbr_vol_hi_1h = na +var float srbr_vol_lo_1h = na + +if mtf_1h + [sup_1h, res_1h, br_res_1h, r_holds_1h, s_holds_1h, br_sup_1h, vol_1h, vol_hi_1h, vol_lo_1h] = get_mtf_srbr_data("60") + srbr_supportLevel_1h := sup_1h + srbr_resistanceLevel_1h := res_1h + srbr_brekout_res_1h := br_res_1h + srbr_res_holds_1h := r_holds_1h + srbr_sup_holds_1h := s_holds_1h + srbr_brekout_sup_1h := br_sup_1h + srbr_vol_1h := vol_1h + srbr_vol_hi_1h := vol_hi_1h + srbr_vol_lo_1h := vol_lo_1h // 4小时数据 rsi_4h = mtf_4h ? get_mtf_rsi("240") : na @@ -865,7 +985,27 @@ meanrange_4h = mtf_4h ? request.security(syminfo.tickerid, "240", supersmoother( upband1_4h = mtf_4h and not na(meanline_4h) and not na(meanrange_4h) ? meanline_4h + meanrange_4h * (2 * math.asin(1) * innermult) : na loband1_4h = mtf_4h and not na(meanline_4h) and not na(meanrange_4h) ? meanline_4h - meanrange_4h * (2 * math.asin(1) * innermult) : na // SRBR 4小时数据 -[srbr_supportLevel_4h, srbr_resistanceLevel_4h, srbr_brekout_res_4h, srbr_res_holds_4h, srbr_sup_holds_4h, srbr_brekout_sup_4h, srbr_vol_4h, srbr_vol_hi_4h, srbr_vol_lo_4h] = mtf_4h ? get_mtf_srbr_data("240") : [na, na, na, na, na, na, na, na, na] +var float srbr_supportLevel_4h = na +var float srbr_resistanceLevel_4h = na +var bool srbr_brekout_res_4h = na +var bool srbr_res_holds_4h = na +var bool srbr_sup_holds_4h = na +var bool srbr_brekout_sup_4h = na +var float srbr_vol_4h = na +var float srbr_vol_hi_4h = na +var float srbr_vol_lo_4h = na + +if mtf_4h + [sup_4h, res_4h, br_res_4h, r_holds_4h, s_holds_4h, br_sup_4h, vol_4h, vol_hi_4h, vol_lo_4h] = get_mtf_srbr_data("240") + srbr_supportLevel_4h := sup_4h + srbr_resistanceLevel_4h := res_4h + srbr_brekout_res_4h := br_res_4h + srbr_res_holds_4h := r_holds_4h + srbr_sup_holds_4h := s_holds_4h + srbr_brekout_sup_4h := br_sup_4h + srbr_vol_4h := vol_4h + srbr_vol_hi_4h := vol_hi_4h + srbr_vol_lo_4h := vol_lo_4h // 计算多时间框架信号(修正版本,与原指标逻辑一致) // 1分钟信号