Library "TimeLockedMA" Library & function(s) which generates a moving average that stays locked to users desired time preference.
TODO - Add functionality for more moving average types. IE: smooth, weighted etc...
Example: time_locked_ma(close, length=1, timeframe='days', type='ema') Will generate a 1 day exponential moving average that will stay consistent across all chart intervals.
Error Handling On small time frames with large moving averages (IE: 1min chart with a 50 week moving average), you'll get a study error that says "(function "sma") references too many candles in history". To fix this, make sure you have timeframe="" as an indicator() header. Next, in the indicator settings, increase the timeframe from to a higher interval until the error goes away. By default, it's set to "Chart". Bringing the interval up to 1hr will usually solve the issue.
Furthermore, adding timeframe_gaps=false to your indicator() header will give you an approximation of real-time values.
Misc Info For time_lock_ma() setting type='na' will return the relative length value that adjusts dynamically to user's chart time interval. This is good for plugging into other functions where a lookback or length is required. (IE: Bollinger Bands)
time_locked_ma(source, length, timeframe, type) Creates a moving average that is locked to a desired timeframe Parameters: source: float, Moving average source length: int, Moving average length timeframe: string, Desired timeframe. Use: "minutes", "hours", "days", "weeks", "months", "chart" type: string, string Moving average type. Use "SMA" (default) or "EMA". Value of "NA" will return relative lookback length. Returns: moving average that is locked to desired timeframe.
timeframe_convert(t, a, b) Converts timeframe to desired timeframe. From a --> b Parameters: t: int, Time interval a: string, Time period b: string, Time period to convert to Returns: Converted timeframe value
chart_time(timeframe_period, timeframe_multiplier) Separates timeframe.period function and returns chart interval and period Parameters: timeframe_period: string, timeframe.period timeframe_multiplier: int, timeframe.multiplier