PINE LIBRARY
Güncellendi lib_statemachine_modified

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)
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)
Sürüm Notları
v2Added:
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)
Sürüm Notları
v3Added:
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>)
Sürüm Notları
v4Added:
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)
Sürüm Notları
v5Added:
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>)
Sürüm Notları
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.
Sürüm Notları
v7Updated:
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)
Sürüm Notları
v8Added:
method previousBarState(this)
Namespace types: StateMachine
Parameters:
this (StateMachine)
Sürüm Notları
v9Added:
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>)
Sürüm Notları
v10Fix issue with print_transitions
Sürüm Notları
v11Sürüm Notları
v12Added:
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>)
Sürüm Notları
v13Added:
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.
Sürüm Notları
v14Added:
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.
Sürüm Notları
v15- fix bug method statesArrayToText(StateMachine this, int[] states) check for empty array
Sürüm Notları
v16Added:
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>)
Sürüm Notları
v17Added:
method printOverlappingTransitions(this)
Namespace types: StateMachine
Parameters:
this (StateMachine)
Sürüm Notları
v18Added:
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.
Sürüm Notları
v19fix bugs
Sürüm Notları
v20 Fixing the bug in previousState
Sürüm Notları
v21Sürüm Notları
v22Updated:
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>)
Sürüm Notları
v23Updated:
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>)
Sürüm Notları
v24Sürüm Notları
v25 update wasConditionMetOnBarSürüm Notları
v26Updated:
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>)
Sürüm Notları
v27Updated:
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)
Sürüm Notları
v28Updated:
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)
Sürüm Notları
v29Added:
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
Sürüm Notları
v30 fix bugSürüm Notları
v31Sürüm Notları
v32Updated:
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)
Sürüm Notları
v33Sürüm Notları
v34Pine kitaplığı
Gerçek TradingView ruhuyla, yazar bu Pine kodunu açık kaynaklı bir kütüphane olarak yayınladı, böylece topluluğumuzdaki diğer Pine programcıları onu yeniden kullanabilir. Yazara saygı! Bu kütüphaneyi özel olarak veya diğer açık kaynaklı yayınlarda kullanabilirsiniz, ancak bu kodun bir yayında yeniden kullanımı Site Kuralları tarafından yönetilmektedir.
Feragatname
Bilgiler ve yayınlar, TradingView tarafından sağlanan veya onaylanan finansal, yatırım, işlem veya diğer türden tavsiye veya tavsiyeler anlamına gelmez ve teşkil etmez. Kullanım Şartları'nda daha fazlasını okuyun.
Pine kitaplığı
Gerçek TradingView ruhuyla, yazar bu Pine kodunu açık kaynaklı bir kütüphane olarak yayınladı, böylece topluluğumuzdaki diğer Pine programcıları onu yeniden kullanabilir. Yazara saygı! Bu kütüphaneyi özel olarak veya diğer açık kaynaklı yayınlarda kullanabilirsiniz, ancak bu kodun bir yayında yeniden kullanımı Site Kuralları tarafından yönetilmektedir.
Feragatname
Bilgiler ve yayınlar, TradingView tarafından sağlanan veya onaylanan finansal, yatırım, işlem veya diğer türden tavsiye veya tavsiyeler anlamına gelmez ve teşkil etmez. Kullanım Şartları'nda daha fazlasını okuyun.