PINE LIBRARY
Zaktualizowano

lib_statemachine_modified

288
Library "lib_statemachine_modified"

Modified to fix bugs and create getState and priorState methods.

method step(this, before, after, condition)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    before (int): (int): Current state before transition
    after (int): (int): State to transition to
    condition (bool): (bool): Condition to trigger the transition
  Returns: (bool): True if the state changed, else False

method step(this, after, condition)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    after (int): (int): State to transition to
    condition (bool): (bool): Condition to trigger the transition
  Returns: (bool): True if the state changed, else False

method currentState(this)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)

method previousState(this)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)

method changed(this, within_bars)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    within_bars (int): (int): Number of bars to look back for a state change
  Returns: (bool): True if a state change occurred within the timeframe, else False

method reset(this, condition, min_occurrences)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    condition (bool): (bool): Condition to trigger the reset
    min_occurrences (int): (int): Minimum number of times the condition must be true to reset
  Returns: (bool): True if the state was reset, else False

StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    prior_state (series int)
    last_change_bar (series int)
Informacje o Wersji
v2

Added:
method didWeJustChangeThisBar(this)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)

method didWeChangeFromTo(this, fromState, toState, within_bars)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    fromState (int)
    toState (int)
    within_bars (int)

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    prior_state (series int)
    last_change_bar (series int)
    last_distinct_prior_state (series int)
Informacje o Wersji
v3

Added:
method getLatestState(this)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    prior_state (series int)
    last_change_bar (series int)
    last_distinct_prior_state (series int)
    stateHistory (array<float>)
Informacje o Wersji
v4

Added:
method changedPriorToCurrentBar(this, within_bars)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    within_bars (int): (int): Number of bars to look back for a state change
  Returns: (bool): True if a state change occurred within the timeframe, else False

Removed:
method changed(this, within_bars)
Informacje o Wersji
v5

Added:
method getLatestIndexOfState(this)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)

StateRecord
  Fields:
    state (series int)
    bar_index (series int)

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    prior_state (series int)
    last_change_bar (series int)
    last_distinct_prior_state (series int)
    stateHistory (array<StateRecord>)
Informacje o Wersji
Library: lib_statemachine_modified (v6)
Types
StateRecord

Fields:
state (int): The state value recorded at a given moment.
bar_index (int): The bar index when that state was recorded.
StateMachine

Fields:
state (int): The current state of the machine (default 0).
neutral (int): The designated neutral (default) state.
enabled (bool): Flag to enable/disable state transitions.
reset_counter (int): Counter tracking how many times the reset condition has been met.
prior_state (int): The state immediately preceding the current state.
last_change_bar (int): The bar index at which the last state change occurred (or na if none).
last_distinct_prior_state (int): The last distinct state before the current transition.
stateHistory (StateRecord[]): An array storing a history of state transitions.
Methods
step(this, before, after, condition)

Namespace: StateMachine
Parameters:
this (StateMachine): The state machine instance.
before (int): The expected current state before the transition.
after (int): The target state to transition to.
condition (bool): Condition that triggers the transition.
Returns: (bool) — true if the state transition occurs; otherwise, false.
Notes:
If after differs from the current state, a new StateRecord is appended to stateHistory.
Updates prior_state, last_change_bar, and resets the reset_counter.
Overloaded step(this, after, condition)

Uses the current state as the expected before value.
Parameters:
this (StateMachine)
after (int): The target state.
condition (bool): Trigger condition.
Returns: (bool) — true if the state changed; otherwise, false.
currentState(this)

Parameters: this (StateMachine)
Returns: (int) — The current state.
previousState(this)

Parameters: this (StateMachine)
Returns: (int) — The state immediately prior to the current state change.
changedPriorToCurrentBar(this, within_bars)

Parameters:
this (StateMachine)
within_bars (int): Number of bars to look back for a state change (excluding the current bar).
Returns: (bool) — true if a state change occurred within the specified timeframe; otherwise, false.
didWeJustChangeThisBar(this)

Parameters: this (StateMachine)
Returns: (bool) — true if the state changed exactly on the current bar; otherwise, false.
didWeChangeFromTo(this, fromState, toState, within_bars)

Parameters:
this (StateMachine)
fromState (int): The state expected before the transition.
toState (int): The state expected after the transition.
within_bars (int): The timeframe (in bars) within which the transition should have occurred.
Returns: (bool) — true if the specific transition occurred recently; otherwise, false.
reset(this, condition, min_occurrences)

Parameters:
this (StateMachine)
condition (bool): The condition that may trigger a reset.
min_occurrences (int): The number of times the condition must be met before the reset occurs.
Returns: (bool) — true if the state machine was reset to the neutral state; otherwise, false.
getLatestState(this)

Parameters: this (StateMachine)
Returns: (int) — The latest recorded state from stateHistory (or na if none exists).
getLatestIndexOfState(this)

Parameters: this (StateMachine)
Returns: (int) — The bar index of the latest state record (or na if stateHistory is empty).
barsSinceState(this, searchState)

Parameters:
this (StateMachine)
searchState (int): The state to search for in the history.
Returns: (int) — The number of bars since the specified state was last active; returns na if that state has never been active.
Notes:
Iterates through stateHistory (accessed in reverse order) to find the most recent occurrence of searchState and computes the difference between the current bar index and the recorded bar index.
Informacje o Wersji
v7

Updated:
method barsSinceState(this, searchState, isLast)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    searchState (int): (int): The state to search for.
    isLast (bool): (bool): (Optional, default = true)
      If true, returns the number of bars elapsed since the most recent record where the state is active
        (i.e. where record.state == searchState);
      if false, returns the number of bars elapsed since the record where the state was first triggered
        (i.e. where record.before == searchState).
  Returns: (int): Number of bars since the state was active, or na if never active.

StateRecord
  Fields:
    before (series int)
    state (series int)
    barIndex (series int)
Informacje o Wersji
v8

Added:
method previousBarState(this)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
Informacje o Wersji
v9

Added:
method print_transitions(this, n)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    n (int): (int): The number of most recent transitions to include in the log.
  Returns: (string): A log of the last N state transitions.

method wasConditionMetOnBar(this)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    prior_bar_state (series int)
    last_change_bar (series int)
    last_condition_bar (series int)
    previous_distinct_state (series int)
    transitions_this_bar (series int)
    stateHistory (array<StateRecord>)
Informacje o Wersji
v10
Fix issue with print_transitions
Informacje o Wersji
v11
Informacje o Wersji
v12

Added:
method setStateNames(this, mapping)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    mapping (array<string>)

method getStateName(this, s)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    s (int)

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    prior_bar_state (series int)
    last_change_bar (series int)
    last_condition_bar (series int)
    previous_distinct_state (series int)
    transitions_this_bar (series int)
    stateHistory (array<StateRecord>)
    stateNames (array<string>)
Informacje o Wersji
v13

Added:
method print_transitions_array(this, n)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    n (int): (int): The number of most recent transitions to include in the array (default is 2).
  Returns: (int[]): An array of state integers from the last n transitions.
Informacje o Wersji
v14

Added:
method statesArrayToText(this, states)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    states (array<int>): (int[]): An array of state integers.
  Returns: (string): A string with each state name on a separate line.

method print_transitions_names(this, n)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    n (int): (int): The number of most recent transitions to include (default is 2).
  Returns: (string): A formatted string where each state's name is on a new line.
Informacje o Wersji
v15
- fix bug method statesArrayToText(StateMachine this, int[] states) check for empty array
Informacje o Wersji
v16

Added:
method getOverlappingTransitions(this)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)

StateOverlap
  Fields:
    state1 (series int)
    state2 (series int)
    barIndex (series int)

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    prior_bar_state (series int)
    last_change_bar (series int)
    last_condition_bar (series int)
    previous_distinct_state (series int)
    transitions_this_bar (series int)
    stateHistory (array<StateRecord>)
    stateNames (array<string>)
    overlapList (array<StateOverlap>)
Informacje o Wersji
v17

Added:
method printOverlappingTransitions(this)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
Informacje o Wersji
v18

Added:
method showStateHistory(this, s)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    s (int): (int): The state to search for in the state history.
  Returns: (string): A summary message indicating how many labels were created.
Informacje o Wersji
v19
fix bugs
Informacje o Wersji
v20
Fixing the bug in previousState
Informacje o Wersji
v21
Informacje o Wersji
v22

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    last_change_bar (series int)
    last_condition_bar (series int)
    prev_state (series int)
    previous_distinct_state (series int)
    transitions_this_bar (series int)
    stateHistory (array<StateRecord>)
    stateNames (array<string>)
    overlapList (array<StateOverlap>)
Informacje o Wersji
v23

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    last_change_bar (series int)
    last_condition_bar (series int)
    prior_bar_state (series int)
    previous_distinct_state (series int)
    transitions_this_bar (series int)
    stateHistory (array<StateRecord>)
    stateNames (array<string>)
    overlapList (array<StateOverlap>)
Informacje o Wersji
v24
Informacje o Wersji
v25 update wasConditionMetOnBar
Informacje o Wersji
v26

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    last_processed_bar (series int)
    last_change_bar (series int)
    last_condition_bar (series int)
    prior_bar_state (series int)
    previous_distinct_state (series int)
    transitions_this_bar (series int)
    stateHistory (array<StateRecord>)
    stateNames (array<string>)
    overlapList (array<StateOverlap>)
Informacje o Wersji
v27

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    last_processed_bar (series int)
    last_change_bar (series int)
    last_condition_bar (series int)
    prior_bar_state (series int)
    previous_distinct_state (series int)
    transitions_this_bar (series int)
    stateHistory (array<StateRecord>)
    stateNames (array<string>)
    overlapList (array<StateOverlap>)
    just_changed_flag (series bool)
Informacje o Wersji
v28

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    last_processed_bar (series int)
    last_change_bar (series int)
    last_condition_bar (series int)
    prior_bar_state (series int)
    previous_distinct_state (series int)
    transitions_this_bar (series int)
    stateHistory (array<StateRecord>)
    stateNames (array<string>)
    overlapList (array<StateOverlap>)
    just_changed_flag (series bool)
    lastTrueConditionState (series int)
Informacje o Wersji
v29

Added:
method visualizeStateTransition(this, labelPrefix)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    labelPrefix (string)

method debugStateTransition(this, expectedFromState, expectedToState)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    expectedFromState (int)
    expectedToState (int)

Updated:
method didWeChangeFromTo(this, fromState, toState, within_bars)
  Namespace types: StateMachine
  Parameters:
    this (StateMachine)
    fromState (int): (int): The state expected before the transition
    toState (int): (int): The state expected after the transition
    within_bars (int): (int): Number of bars within which the transition must have occurred
  Returns: (bool): True if the specific transition occurred recently, else False
Enhanced version of didWeChangeFromTo with more robust checking
Informacje o Wersji
v30 fix bug
Informacje o Wersji
v31
Informacje o Wersji
v32

Updated:
StateMachine
  Fields:
    state (series int)
    neutral (series int)
    enabled (series bool)
    reset_counter (series int)
    last_processed_bar (series int)
    last_change_bar (series int)
    last_condition_bar (series int)
    prior_bar_state (series int)
    previous_distinct_state (series int)
    transitions_this_bar (series int)
    stateHistory (array<StateRecord>)
    stateNames (array<string>)
    overlapList (array<StateOverlap>)
    just_changed_flag (series bool)
    lastTrueConditionState (series int)
    offset (series int)
Informacje o Wersji
v33
Informacje o Wersji
v34

Wyłączenie odpowiedzialności

Informacje i publikacje przygotowane przez TradingView lub jego użytkowników, prezentowane na tej stronie, nie stanowią rekomendacji ani porad handlowych, inwestycyjnych i finansowych i nie powinny być w ten sposób traktowane ani wykorzystywane. Więcej informacji na ten temat znajdziesz w naszym Regulaminie.