code: def signals(
      indicator,
      xa,
      xb,
      cross_values,
      xserie,
      xserie_a,
      xserie_b,
      cross_series,
      offset,
  ) -> DataFrame:
      df = DataFrame()
      if xa is not None and isinstance(xa, (int, float)):
          if cross_values:
              crossed_above_start = cross_value(
                  indicator, xa, above=True, offset=offset
              )
              crossed_above_end = cross_value(
                  indicator, xa, above=False, offset=offset
              )
              df[crossed_above_start.name] = crossed_above_start
              df[crossed_above_end.name] = crossed_above_end
          else:
              crossed_above = above_value(indicator, xa, offset=offset)
              df[crossed_above.name] = crossed_above
  
      if xb is not None and isinstance(xb, (int, float)):
          if cross_values:
              crossed_below_start = cross_value(
                  indicator, xb, above=True, offset=offset
              )
              crossed_below_end = cross_value(
                  indicator, xb, above=False, offset=offset
              )
              df[crossed_below_start.name] = crossed_below_start
              df[crossed_below_end.name] = crossed_below_end
          else:
              crossed_below = below_value(indicator, xb, offset=offset)
              df[crossed_below.name] = crossed_below
  
      # xseries is the default value for both xserie_a and xserie_b
      if xserie_a is None:
          xserie_a = xserie
      if xserie_b is None:
          xserie_b = xserie
  
      if xserie_a is not None and verify_series(xserie_a):
          if cross_series:
              cross_serie_above = cross(
                  indicator, xserie_a, above=True, offset=offset
              )
          else:
              cross_serie_above = above(
                  indicator, xserie_a, offset=offset
              )
  
          df[cross_serie_above.name] = cross_serie_above
  
      if xserie_b is not None and verify_series(xserie_b):
          if cross_series:
              cross_serie_below = cross(
                  indicator, xserie_b, above=False, offset=offset
              )
          else:
              cross_serie_below = below(
                  indicator, xserie_b, offset=offset
              )
  
          df[cross_serie_below.name] = cross_serie_below
  
      return df
  
file_path: pandas-ta/pandas_ta/utils/_signals.py
imports: from pandas import DataFrame, Series
  from ._core import get_offset, verify_series
  from ._math import zero
label_desc: Use image node_id 8 for calling a global function with example usage: signals(indicator, xa, xb, cross_values, xserie, xserie_a, xserie_b, cross_series, offset) and returns: df