code: def detrended_price_oscillator(data, period):
      
      catch_errors.check_for_period_error(data, period)
      period = int(period)
      dop = [data[idx] - np.mean(data[idx+1-(int(period/2)+1):idx+1]) for idx in range(period-1, len(data))]
      dop = fill_for_noncomputable_vals(data, dop)
      return dop
docs: Detrended Price Oscillator.
  
      Formula:
      DPO = DATA[i] - Avg(DATA[period/2 + 1])