docs: def _ohlc_dict(df_or_figure,open='',high='',low='',close='',volume='',
  			   validate='',**kwargs):
  	"""
  	Returns a dictionary with the actual column names that 
  	correspond to each of the OHLCV values.
  
  	df_or_figure :  DataFrame or Figure
  	open : string
  		Column name to be used for OPEN values
  	high : string
  		Column name to be used for HIGH values
  	low : string
  		Column name to be used for LOW values
  	close : string
  		Column name to be used for CLOSE values
  	volume : string
  		Column name to be used for VOLUME values
  	validate : string
  		Validates that the stated column exists
  		Example:
  			validate='ohv' | Will ensure Open, High
  							 and close values exist. 
  	"""
  	c_dir={}
  	ohlcv=['open','high','low','close','volume']
  	if type(df_or_figure)==pd.DataFrame:
  		cnames=df_or_figure.columns
  	elif type(df_or_figure)==Figure or type(df_or_figure) == dict:
  		cnames=df_or_figure.axis['ref'].keys()
  	elif type(df_or_figure)==pd.Series:
  		cnames=[df_or_figure.name]
  	c_min=dict([(v.lower(),v) for v in cnames])
  	for _ in ohlcv:
  		if _ in c_min.keys():
  			c_dir[_]=c_min[_]
  		else:
  			for c in cnames:
  				if _ in c.lower():
  					c_dir[_]=c
  
  	if open:
  		c_dir['open']=open
  	if high:
  		c_dir['high']=high
  	if low:
  		c_dir['low']=low
  	if close:
  		c_dir['close']=close
  	if volume:
  		c_dir['volume']=volume
  		
  	for v in list(c_dir.values()):
  		if v not in cnames:
  			raise StudyError('{0} is not a valid column name'.format(v))
  
  	if validate:
  			errs=[]
  			val=validate.lower()
  			s_names=dict([(_[0],_) for _ in ohlcv])
  			cols=[_[0] for _ in c_dir.keys()]
  			for _ in val:
  				if _ not in cols:
  					errs.append(s_names[_])
  			if errs:
  				raise StudyError('Missing Columns: {0}'.format(', '.join(errs)))
  
  	return c_dir