Library "cache"
A simple cache library to store key value pairs.

  • Fed up of injecting and returning so many values all the time?
  • Want to separate your code and keep it clean?
  • Need to make an expensive calculation and use the results in numerous places?
  • Want to throttle calculations or persist random values across bars or ticks?

Then you've come to the right place. Or not! Up to you, I don't mind either way... ;)

Check the helpers and unit tests in the script for further detail.

Detailed Interface

init(persistant) Initialises the syncronised cache key and value arrays
  Parameters:
    persistant: bool, toggles data persistance between bars and ticks
  Returns: [string, float], a tuple of both arrays

set(keys, values, key, value) Sets a value into the cache
  Parameters:
    keys: string, the array of cache keys
    values: float, the array of cache values
    key: string, the cache key to create or update
    value: float, the value to set

has(keys, values, key) Checks if the cache has a key
  Parameters:
    keys: string, the array of cache keys
    values: float, the array of cache values
    key: string, the cache key to check
  Returns: bool, true only if the key is found

get(keys, values, key) Gets a keys value from the cache
  Parameters:
    keys: string, the array of cache keys
    values: float, the array of cache values
    key: string, the cache key to get
  Returns: float, the stored value

remove(keys, values, key) Removes a key and value from the cache
  Parameters:
    keys: string, the array of cache keys
    values: float, the array of cache values
    key: string, the cache key to remove

count() Counts how many key value pairs in the cache
  Returns: int, the total number of pairs

loop(keys, values) Returns true for each value in the cache (use as the while loop expression)
  Parameters:
    keys: string, the array of cache keys
    values: float, the array of cache values

next(keys, values) Returns each key value pair on successive calls (use in the while loop)
  Parameters:
    keys: string, the array of cache keys
    values: float, the array of cache values
  Returns: , tuple of each key value pair

clear(keys, values) Clears all key value pairs from the cache
  Parameters:
    keys: string, the array of cache keys
    values: float, the array of cache values

unittest_cache(case) Cache module unit tests, for inclusion in parent script test suite. Usage: log.unittest_cache(__ASSERTS)
  Parameters:
    case: string, the current test case and array of previous unit tests (__ASSERTS)

unittest(verbose) Run the cache module unit tests as a stand alone. Usage: cache.unittest()
  Parameters:
    verbose: bool, optionally disable the full report to only display failures
Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House Rules.

Want to use this library?

Copy the following line and paste it in your script.