robbatt

lib_statemachine

Library "lib_statemachine"
simple state machine that allows tracking a state an manipulating it with conditions

method step(this, before, after, condition)
  will step the state of the state machine from one to the next in case of condition
  Namespace types: StateMachine
  Parameters:
    this (StateMachine): (StateMachine) the state machine to use
    before (int): (int) from state
    after (int): (int) to state
    condition (bool): (bool) if condition is true
  Returns: true (bool) if the state of the statemachine changed

method step(this, after, condition)
  will change the state of the state machine to the next in case of condition (not depending on previous state)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine): (StateMachine) the state machine to use
    after (int): (int) to state
    condition (bool): (bool) if condition is true
  Returns: true (bool) if the state of the statemachine changed

method changed(this, within_bars)
  will return true if the state of the state machine was changed in this iteration
  Namespace types: StateMachine
  Parameters:
    this (StateMachine): (StateMachine) the state machine to use
    within_bars (int)
  Returns: true (bool) if the state of the statemachine changed

method reset(this, condition, min_occurrences)
  will reset the state machine if a certain 'condition' appears 'min_occurrences' times
  Namespace types: StateMachine
  Parameters:
    this (StateMachine): (StateMachine) the state machine to use
    condition (bool): (bool) reset condition
    min_occurrences (int): (int) min times 'condition' must appear for the reset to happen
  Returns: true (bool) if the state of the statemachine changed

StateMachine
  Fields:
    state (series__integer)
    neutral (series__integer)
    enabled (series__bool)
    reset_counter (series__integer)
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.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.