PINE LIBRARY
Mis à jour kNNLib with turboQuant encoding

Library "kNNLib"
f_quantize_3bit(value, bounds)
Quantize a single feature to 3-bit index (0-7) using percentile boundaries
Parameters:
value (float): Feature value to quantize
bounds (array<float>): Array of 9 percentile boundaries [P0, P12.5, P25, P37.5, P50, P62.5, P75, P87.5, P100]
Returns: Integer index 0-7
f_compute_percentile_bounds(feature_array, history_len)
Compute percentile boundaries for a feature over a rolling window
Parameters:
feature_array (array<float>): Array of feature values (size = history_len)
history_len (int): Number of bars to use for percentile calculation
Returns: Array of 9 boundaries [P0, P12.5, P25, P37.5, P50, P62.5, P75, P87.5, P100]
f_turboquant_encode(f1, f2, f3, f4, f5, f6)
Encode 6 features into 18-bit TurboQuant state ID
Parameters:
f1 (int): Feature 1 (VectorOsc) quantized index 0-7
f2 (int): Feature 2 (BasketCorr) quantized index 0-7
f3 (int): Feature 3 (InnovZ) quantized index 0-7
f4 (int): Feature 4 (TE_Osc) quantized index 0-7
f5 (int): Feature 5 (OrthoZcvb) quantized index 0-7
f6 (int): Feature 6 (PhiDiv) quantized index 0-7
Returns: 18-bit state ID (0 to 262143)
f_normalize_basket_corr(rho, rho_history, norm_len)
Normalize BasketCorr using Fisher transform then z-score
Parameters:
rho (float): Raw correlation value [-1, +1]
rho_history (array<float>): Array of historical rho values
norm_len (int): Normalization window length
Returns: Normalized correlation
f_normalize_te_osc(te_osc, te_history, norm_len)
Normalize TE_Osc using rolling z-score
Parameters:
te_osc (float): Raw TE oscillator value
te_history (array<float>): Array of historical TE values
norm_len (int): Normalization window length
Returns: Normalized TE
f_normalize_phi_div(phi_div, phi_history, norm_len)
Normalize PhiDiv using rolling z-score
Parameters:
phi_div (float): Raw PhiDiv value
phi_history (array<float>): Array of historical PhiDiv values
norm_len (int): Normalization window length
Returns: Normalized PhiDiv
f_euclidean_distance(f1_current, f2_current, f3_current, f4_current, f5_current, f6_current, f1_hist, f2_hist, f3_hist, f4_hist, f5_hist, f6_hist)
Calculate Euclidean distance between two 6D feature vectors
Parameters:
f1_current (float): Current bar feature 1
f2_current (float): Current bar feature 2
f3_current (float): Current bar feature 3
f4_current (float): Current bar feature 4
f5_current (float): Current bar feature 5
f6_current (float): Current bar feature 6
f1_hist (float): Historical bar feature 1
f2_hist (float): Historical bar feature 2
f3_hist (float): Historical bar feature 3
f4_hist (float): Historical bar feature 4
f5_hist (float): Historical bar feature 5
f6_hist (float): Historical bar feature 6
Returns: Euclidean distance
f_find_k_nearest(f1_current, f2_current, f3_current, f4_current, f5_current, f6_current, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, k, max_history)
Find K nearest neighbors using linear scan
Parameters:
f1_current (float): Current bar feature 1
f2_current (float): Current bar feature 2
f3_current (float): Current bar feature 3
f4_current (float): Current bar feature 4
f5_current (float): Current bar feature 5
f6_current (float): Current bar feature 6
f1_history (array<float>): Array of historical feature 1 values
f2_history (array<float>): Array of historical feature 2 values
f3_history (array<float>): Array of historical feature 3 values
f4_history (array<float>): Array of historical feature 4 values
f5_history (array<float>): Array of historical feature 5 values
f6_history (array<float>): Array of historical feature 6 values
k (int): Number of neighbors to find
max_history (int): Maximum bars to search
Returns: Array of K nearest neighbor indices
f_calculate_confidence(f1_current, f2_current, f3_current, f4_current, f5_current, f6_current, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, k_nearest_indices)
Calculate epistemic confidence score from K-nearest distances
Parameters:
f1_current (float): Current bar feature 1
f2_current (float): Current bar feature 2
f3_current (float): Current bar feature 3
f4_current (float): Current bar feature 4
f5_current (float): Current bar feature 5
f6_current (float): Current bar feature 6
f1_history (array<float>): Array of historical feature 1 values
f2_history (array<float>): Array of historical feature 2 values
f3_history (array<float>): Array of historical feature 3 values
f4_history (array<float>): Array of historical feature 4 values
f5_history (array<float>): Array of historical feature 5 values
f6_history (array<float>): Array of historical feature 6 values
k_nearest_indices (array<int>): Array of K nearest neighbor indices
Returns: Confidence score [0, 1]
f_quantize_3bit(value, bounds)
Quantize a single feature to 3-bit index (0-7) using percentile boundaries
Parameters:
value (float): Feature value to quantize
bounds (array<float>): Array of 9 percentile boundaries [P0, P12.5, P25, P37.5, P50, P62.5, P75, P87.5, P100]
Returns: Integer index 0-7
f_compute_percentile_bounds(feature_array, history_len)
Compute percentile boundaries for a feature over a rolling window
Parameters:
feature_array (array<float>): Array of feature values (size = history_len)
history_len (int): Number of bars to use for percentile calculation
Returns: Array of 9 boundaries [P0, P12.5, P25, P37.5, P50, P62.5, P75, P87.5, P100]
f_turboquant_encode(f1, f2, f3, f4, f5, f6)
Encode 6 features into 18-bit TurboQuant state ID
Parameters:
f1 (int): Feature 1 (VectorOsc) quantized index 0-7
f2 (int): Feature 2 (BasketCorr) quantized index 0-7
f3 (int): Feature 3 (InnovZ) quantized index 0-7
f4 (int): Feature 4 (TE_Osc) quantized index 0-7
f5 (int): Feature 5 (OrthoZcvb) quantized index 0-7
f6 (int): Feature 6 (PhiDiv) quantized index 0-7
Returns: 18-bit state ID (0 to 262143)
f_normalize_basket_corr(rho, rho_history, norm_len)
Normalize BasketCorr using Fisher transform then z-score
Parameters:
rho (float): Raw correlation value [-1, +1]
rho_history (array<float>): Array of historical rho values
norm_len (int): Normalization window length
Returns: Normalized correlation
f_normalize_te_osc(te_osc, te_history, norm_len)
Normalize TE_Osc using rolling z-score
Parameters:
te_osc (float): Raw TE oscillator value
te_history (array<float>): Array of historical TE values
norm_len (int): Normalization window length
Returns: Normalized TE
f_normalize_phi_div(phi_div, phi_history, norm_len)
Normalize PhiDiv using rolling z-score
Parameters:
phi_div (float): Raw PhiDiv value
phi_history (array<float>): Array of historical PhiDiv values
norm_len (int): Normalization window length
Returns: Normalized PhiDiv
f_euclidean_distance(f1_current, f2_current, f3_current, f4_current, f5_current, f6_current, f1_hist, f2_hist, f3_hist, f4_hist, f5_hist, f6_hist)
Calculate Euclidean distance between two 6D feature vectors
Parameters:
f1_current (float): Current bar feature 1
f2_current (float): Current bar feature 2
f3_current (float): Current bar feature 3
f4_current (float): Current bar feature 4
f5_current (float): Current bar feature 5
f6_current (float): Current bar feature 6
f1_hist (float): Historical bar feature 1
f2_hist (float): Historical bar feature 2
f3_hist (float): Historical bar feature 3
f4_hist (float): Historical bar feature 4
f5_hist (float): Historical bar feature 5
f6_hist (float): Historical bar feature 6
Returns: Euclidean distance
f_find_k_nearest(f1_current, f2_current, f3_current, f4_current, f5_current, f6_current, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, k, max_history)
Find K nearest neighbors using linear scan
Parameters:
f1_current (float): Current bar feature 1
f2_current (float): Current bar feature 2
f3_current (float): Current bar feature 3
f4_current (float): Current bar feature 4
f5_current (float): Current bar feature 5
f6_current (float): Current bar feature 6
f1_history (array<float>): Array of historical feature 1 values
f2_history (array<float>): Array of historical feature 2 values
f3_history (array<float>): Array of historical feature 3 values
f4_history (array<float>): Array of historical feature 4 values
f5_history (array<float>): Array of historical feature 5 values
f6_history (array<float>): Array of historical feature 6 values
k (int): Number of neighbors to find
max_history (int): Maximum bars to search
Returns: Array of K nearest neighbor indices
f_calculate_confidence(f1_current, f2_current, f3_current, f4_current, f5_current, f6_current, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, k_nearest_indices)
Calculate epistemic confidence score from K-nearest distances
Parameters:
f1_current (float): Current bar feature 1
f2_current (float): Current bar feature 2
f3_current (float): Current bar feature 3
f4_current (float): Current bar feature 4
f5_current (float): Current bar feature 5
f6_current (float): Current bar feature 6
f1_history (array<float>): Array of historical feature 1 values
f2_history (array<float>): Array of historical feature 2 values
f3_history (array<float>): Array of historical feature 3 values
f4_history (array<float>): Array of historical feature 4 values
f5_history (array<float>): Array of historical feature 5 values
f6_history (array<float>): Array of historical feature 6 values
k_nearest_indices (array<int>): Array of K nearest neighbor indices
Returns: Confidence score [0, 1]
Notes de version
v2Notes de version
v3Added:
f_turboquant(val)
Quantize a single feature to 3-bit index + 1-bit residual (4 bits total)
Parameters:
val (float): Feature value (should be clamped to [-3, +3] range)
Returns: [int, int] Tuple of (3-bit index, 1-bit residual)
f_pack_vector(i0, r0, i1, r1, i2, r2, i3, r3, i4, r4, i5, r5)
Pack 6 features into single 24-bit integer
Parameters:
i0 (int)
r0 (int)
i1 (int)
r1 (int)
i2 (int)
r2 (int)
i3 (int)
r3 (int)
i4 (int)
r4 (int)
i5 (int)
r5 (int)
Returns: int Packed 24-bit vector
f_unpack_centroid(packed, feat_idx)
Unpack and reconstruct centroid value with half-step refinement
Parameters:
packed (int): 24-bit packed vector
feat_idx (int): Feature index (0-5)
Returns: float Reconstructed feature value
f_hamming_screen(packed_cur, packed_hist)
Hamming screen: count features with >1 level difference
Parameters:
packed_cur (int): Current packed vector
packed_hist (int): Historical packed vector
Returns: int Number of features with significant difference
Updated:
f_normalize_te_osc(te_osc, te_history, norm_len)
Normalize TE_Osc using rolling z-score
Parameters:
te_osc (float): Raw TE oscillator value
te_history (array<float>): Array of historical TE values
norm_len (int): Normalization window length
Returns: Normalized TE oscillator
f_normalize_phi_div(phi_div, phi_history, norm_len)
Normalize PhiDiv using rolling z-score
Parameters:
phi_div (float): Raw PhiDiv value (PhiLatch - PhiTotal_orth)
phi_history (array<float>): Array of historical PhiDiv values
norm_len (int): Normalization window length
Returns: Normalized PhiDiv
f_euclidean_distance(f1_cur, f2_cur, f3_cur, f4_cur, f5_cur, f6_cur, f1_hist, f2_hist, f3_hist, f4_hist, f5_hist, f6_hist)
Calculate Euclidean distance between current state and historical state
Parameters:
f1_cur (float)
f2_cur (float)
f3_cur (float)
f4_cur (float)
f5_cur (float)
f6_cur (float)
f1_hist (float)
f2_hist (float)
f3_hist (float)
f4_hist (float)
f5_hist (float)
f6_hist (float)
Returns: float Euclidean distance
f_find_k_nearest(f1_cur, f2_cur, f3_cur, f4_cur, f5_cur, f6_cur, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, k, max_history)
Find K nearest neighbors using Hamming screening + Euclidean distance
Parameters:
f1_cur (float)
f2_cur (float)
f3_cur (float)
f4_cur (float)
f5_cur (float)
f6_cur (float)
f1_history (array<float>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
k (int): Number of neighbors to retrieve
max_history (int): Maximum history length to search
Returns: array<int> Array of K nearest neighbor indices
f_calculate_confidence(f1_cur, f2_cur, f3_cur, f4_cur, f5_cur, f6_cur, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, k_nearest)
Calculate epistemic confidence from K-nearest distance distribution
Parameters:
f1_cur (float)
f2_cur (float)
f3_cur (float)
f4_cur (float)
f5_cur (float)
f6_cur (float)
f1_history (array<float>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
k_nearest (array<int>): Array of K nearest neighbor indices
Returns: float Confidence score [0, 1]
Removed:
f_quantize_3bit(value, bounds)
Quantize a single feature to 3-bit index (0-7) using percentile boundaries
f_compute_percentile_bounds(feature_array, history_len)
Compute percentile boundaries for a feature over a rolling window
f_turboquant_encode(f1, f2, f3, f4, f5, f6)
Encode 6 features into 18-bit TurboQuant state ID
Notes de version
v4Added:
f_pack_vector_7(i0, r0, i1, r1, i2, r2, i3, r3, i4, r4, i5, r5, i6, r6)
Pack 7 features into single 28-bit integer
Parameters:
i0 (int)
r0 (int)
i1 (int)
r1 (int)
i2 (int)
r2 (int)
i3 (int)
r3 (int)
i4 (int)
r4 (int)
i5 (int)
r5 (int)
i6 (int)
r6 (int)
Returns: int Packed 28-bit vector
f_hamming_screen_7(packed_cur, packed_hist)
Hamming screen for 7-feature packed vectors
Parameters:
packed_cur (int): Current packed vector
packed_hist (int): Historical packed vector
Returns: int Number of features with significant difference
f_normalize_burst(burst_raw, burst_history, norm_len)
Normalize a non-negative burst score using log1p + robust IQR z-score
Parameters:
burst_raw (float): Raw burst score
burst_history (array<float>): History array of raw burst scores
norm_len (int): Normalization window length
Returns: Normalized burst score
Notes de version
v5Added:
f_find_k_nearest_7(f1_cur, f2_cur, f3_cur, f4_cur, f5_cur, f6_cur, f7_cur, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, f7_history, k, max_history)
Find K nearest neighbors using Hamming screening + Euclidean distance for 7 features
Parameters:
f1_cur (float)
f2_cur (float)
f3_cur (float)
f4_cur (float)
f5_cur (float)
f6_cur (float)
f7_cur (float)
f1_history (array<float>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
f7_history (array<float>)
k (int): Number of neighbors to retrieve
max_history (int): Maximum history length to search
Returns: array<int> Array of K nearest neighbor indices
f_calculate_confidence_7(f1_cur, f2_cur, f3_cur, f4_cur, f5_cur, f6_cur, f7_cur, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, f7_history, k_nearest)
Calculate confidence from 7-feature K-nearest distance distribution
Parameters:
f1_cur (float)
f2_cur (float)
f3_cur (float)
f4_cur (float)
f5_cur (float)
f6_cur (float)
f7_cur (float)
f1_history (array<float>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
f7_history (array<float>)
k_nearest (array<int>): Array of K nearest neighbor indices
Returns: float Confidence score [0, 1]
Notes de version
v6Added:
f_merge_tier(pool_dist, pool_id, target_ids, target_dist, target_weights, knn_k, decluster_gap)
Merge one tier into the final kNN set using sorted indices and decluster gating
Parameters:
pool_dist (array<float>): Candidate distances for the tier
pool_id (array<int>): Candidate history indices for the tier
target_ids (array<int>): Final output neighbor ids
target_dist (array<float>): Final output distances
target_weights (array<float>): Final output weights
knn_k (int): Target neighbor count
decluster_gap (int): Minimum spacing between accepted neighbor ids
f_hierarchical_tournament_live(s_packed, s_f1, s_f2, s_f3, s_f4, s_f5, s_f6, s_f7, s_family, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, f7_history, arr_packed_vec, arr_setup_id, arr_setup_family, current_setup_code, oracle_horizon, knn_k, hamming_thresh, decluster_gap, pool_max)
Hierarchical 4-tier tournament selection for live execution
Parameters:
s_packed (int)
s_f1 (float)
s_f2 (float)
s_f3 (float)
s_f4 (float)
s_f5 (float)
s_f6 (float)
s_f7 (float)
s_family (int)
f1_history (array<float>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
f7_history (array<float>)
arr_packed_vec (array<int>)
arr_setup_id (array<int>)
arr_setup_family (array<int>)
current_setup_code (int)
oracle_horizon (int)
knn_k (int)
hamming_thresh (int)
decluster_gap (int)
pool_max (int)
Returns: [ids, distances, weights, dbg_iter, dbg_hskip, dbg_nskip, dbg_cands]
f_hierarchical_tournament_backtest(s_packed, s_f1, s_f2, s_f3, s_f4, s_f5, s_f6, s_f7, s_family, s_setup_code, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, f7_history, arr_packed_vec, arr_setup_id, arr_setup_family, knn_limit, knn_k, hamming_thresh, decluster_gap, pool_max)
Hierarchical 3-tier tournament selection for backtest execution
Parameters:
s_packed (int)
s_f1 (float)
s_f2 (float)
s_f3 (float)
s_f4 (float)
s_f5 (float)
s_f6 (float)
s_f7 (float)
s_family (int)
s_setup_code (int)
f1_history (array<float>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
f7_history (array<float>)
arr_packed_vec (array<int>)
arr_setup_id (array<int>)
arr_setup_family (array<int>)
knn_limit (int)
knn_k (int)
hamming_thresh (int)
decluster_gap (int)
pool_max (int)
Notes de version
v7Updated:
f_normalize_phi_div(phi_div, history, len)
Normalize PhiDiv using rolling z-score
Parameters:
phi_div (float): Raw PhiDiv value (PhiLatch - PhiTotal_orth)
history (array<float>)
len (int)
Returns: Normalized PhiDiv
Notes de version
v8Updated:
f_hierarchical_tournament_live(s_packed, s_f1, s_f2, s_f3, s_f4, s_f5, s_f6, s_f7, s_family, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, f7_history, arr_packed_vec, arr_setup_id, arr_setup_family, current_setup_code, oracle_horizon, mc_horizon, knn_k, hamming_thresh, decluster_gap, pool_max)
Hierarchical 4-tier tournament selection for live execution
Parameters:
s_packed (int)
s_f1 (float)
s_f2 (float)
s_f3 (float)
s_f4 (float)
s_f5 (float)
s_f6 (float)
s_f7 (float)
s_family (int)
f1_history (array<float>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
f7_history (array<float>)
arr_packed_vec (array<int>)
arr_setup_id (array<int>)
arr_setup_family (array<int>)
current_setup_code (int)
oracle_horizon (int)
mc_horizon (int)
knn_k (int)
hamming_thresh (int)
decluster_gap (int)
pool_max (int)
Returns: [ids, distances, weights, dbg_iter, dbg_hskip, dbg_nskip, dbg_cands]
Notes de version
v9Notes de version
v10Notes de version
v11Notes de version
v12Notes de version
v13Added:
f_knn_scan(cur_features, h0, h1, h2, h3, h4, h5, h6, arr_packed, packed_cur, nf, scan_from, scan_to, scan_step, hamming_thresh, max_candidates)
Parameters:
cur_features (array<float>)
h0 (array<float>)
h1 (array<float>)
h2 (array<float>)
h3 (array<float>)
h4 (array<float>)
h5 (array<float>)
h6 (array<float>)
arr_packed (array<int>)
packed_cur (int)
nf (int)
scan_from (int)
scan_to (int)
scan_step (int)
hamming_thresh (int)
max_candidates (int)
f_knn_select(t1_ids, t1_dist, t2_ids, t2_dist, t3_ids, t3_dist, t4_ids, t4_dist, k, gap)
Parameters:
t1_ids (array<int>)
t1_dist (array<float>)
t2_ids (array<int>)
t2_dist (array<float>)
t3_ids (array<int>)
t3_dist (array<float>)
t4_ids (array<int>)
t4_dist (array<float>)
k (int)
gap (int)
Notes de version
v14Added:
f_sign_aware_filter(s_f2, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, f7_history, arr_setup_id, arr_setup_family, arr_packed_vec, limit)
Sign-aware neighbor filtering to prevent canceling paths from mixed correlation phases
Parameters:
s_f2 (float): Current F2 value
f1_history (array<int>): Feature 1 history (quantized int)
f2_history (array<float>): Feature 2 history (float correlation)
f3_history (array<float>): Feature 3 history (float)
f4_history (array<float>): Feature 4 history (float)
f5_history (array<float>): Feature 5 history (float)
f6_history (array<float>): Feature 6 history (float)
f7_history (array<float>): Feature 7 history (float)
arr_setup_id (array<int>): Setup ID history
arr_setup_family (array<int>): Setup family history
arr_packed_vec (array<int>): Packed vector history
limit (int): Maximum number of history items to consider
Returns: Filtered arrays with same F2 sign as current setup
f_hierarchical_tournament_backtest_signaware(s_packed, s_f1, s_f2, s_f3, s_f4, s_f5, s_f6, s_f7, s_family, s_setup_code, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, f7_history, arr_setup_id, arr_setup_family, arr_packed_vec, knn_limit, knn_k, hamming_thresh, decluster_gap, pool_max)
Sign-aware hierarchical tournament for backtest with quantized F1
Parameters:
s_packed (int)
s_f1 (float)
s_f2 (float)
s_f3 (float)
s_f4 (float)
s_f5 (float)
s_f6 (float)
s_f7 (float)
s_family (int)
s_setup_code (int)
f1_history (array<int>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
f7_history (array<float>)
arr_setup_id (array<int>)
arr_setup_family (array<int>)
arr_packed_vec (array<int>)
knn_limit (int)
knn_k (int)
hamming_thresh (int)
decluster_gap (int)
pool_max (int)
Returns: [ids, weights] for backtest MC validation
f_median_distance(k_nearest, f1_cur, f2_cur, f3_cur, f4_cur, f5_cur, f6_cur, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history)
Calculate median distance from k-nearest neighbors (robust confidence metric)
Parameters:
k_nearest (array<int>): Array of K nearest neighbor indices
f1_cur (float)
f2_cur (float)
f3_cur (float)
f4_cur (float)
f5_cur (float)
f6_cur (float)
f1_history (array<float>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
Returns: float Median distance (more robust to outliers than mean)
Notes de version
v15Notes de version
v16Notes de version
v17Updated:
f_hierarchical_tournament_live(s_packed, s_f1, s_f2, s_f3, s_f4, s_f5, s_f6, s_f7, category_a, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, f7_history, arr_packed_vec, arr_category_b_history, arr_category_a_history, target_category_b, oracle_horizon, mc_horizon, knn_k, hamming_thresh, decluster_gap, pool_max)
Hierarchical 4-tier tournament selection for live execution (domain-agnostic)
Parameters:
s_packed (int)
s_f1 (float)
s_f2 (float)
s_f3 (float)
s_f4 (float)
s_f5 (float)
s_f6 (float)
s_f7 (float)
category_a (int): Target category A (e.g., family/regime). Use -1 to disable filtering.
f1_history (array<float>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
f7_history (array<float>)
arr_packed_vec (array<int>)
arr_category_b_history (array<int>)
arr_category_a_history (array<int>)
target_category_b (int)
oracle_horizon (int)
mc_horizon (int)
knn_k (int)
hamming_thresh (int)
decluster_gap (int)
pool_max (int)
Returns: [ids, distances, weights, dbg_iter, dbg_hskip, dbg_nskip, dbg_cands]
f_hierarchical_tournament_backtest(s_packed, s_f1, s_f2, s_f3, s_f4, s_f5, s_f6, s_f7, category_a, category_b, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, f7_history, arr_packed_vec, arr_category_b_history, arr_category_a_history, knn_limit, knn_k, hamming_thresh, decluster_gap, pool_max)
Hierarchical 3-tier tournament selection for backtest execution (domain-agnostic)
Parameters:
s_packed (int)
s_f1 (float)
s_f2 (float)
s_f3 (float)
s_f4 (float)
s_f5 (float)
s_f6 (float)
s_f7 (float)
category_a (int): Target category A. Use -1 to disable filtering.
category_b (int): Target category B. Use 0 to disable filtering.
f1_history (array<float>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
f7_history (array<float>)
arr_packed_vec (array<int>)
arr_category_b_history (array<int>)
arr_category_a_history (array<int>)
knn_limit (int)
knn_k (int)
hamming_thresh (int)
decluster_gap (int)
pool_max (int)
f_hierarchical_tournament_backtest_signaware(s_packed, s_f1, s_f2, s_f3, s_f4, s_f5, s_f6, s_f7, category_a, category_b, f1_history, f2_history, f3_history, f4_history, f5_history, f6_history, f7_history, arr_category_b_history, arr_category_a_history, arr_packed_vec, knn_limit, knn_k, hamming_thresh, decluster_gap, pool_max)
Sign-aware hierarchical tournament for backtest with quantized F1 (domain-agnostic)
Parameters:
s_packed (int)
s_f1 (float)
s_f2 (float)
s_f3 (float)
s_f4 (float)
s_f5 (float)
s_f6 (float)
s_f7 (float)
category_a (int): Target category A. Use -1 to disable filtering.
category_b (int): Target category B. Use 0 to disable filtering.
f1_history (array<int>)
f2_history (array<float>)
f3_history (array<float>)
f4_history (array<float>)
f5_history (array<float>)
f6_history (array<float>)
f7_history (array<float>)
arr_category_b_history (array<int>)
arr_category_a_history (array<int>)
arr_packed_vec (array<int>)
knn_limit (int)
knn_k (int)
hamming_thresh (int)
decluster_gap (int)
pool_max (int)
Returns: [ids, weights] for backtest MC validation
Notes de version
v18Notes de version
v19Notes de version
v20Notes de version
v21Added:
fweightedmedian(values, weights)
Parameters:
values (array<float>)
weights (array<float>)
fweightedpercentile(values, weights, p)
Parameters:
values (array<float>)
weights (array<float>)
p (float)
fhorizonconfidence(horizons, weights)
Parameters:
horizons (array<int>)
weights (array<float>)
famplitudeconfidence(amplitudes, weights)
Parameters:
amplitudes (array<float>)
weights (array<float>)
fprojectionconfidence(horizons, amplitudes, weights, net_te, te_threshold, alpha_k, alpha_a, alpha_te)
Parameters:
horizons (array<int>)
amplitudes (array<float>)
weights (array<float>)
net_te (float)
te_threshold (float)
alpha_k (float)
alpha_a (float)
alpha_te (float)
fcausaleuclidean7(c1, c2, c3, c4, c5, c6, c7, h1, h2, h3, h4, h5, h6, h7, te_weights)
Parameters:
c1 (float)
c2 (float)
c3 (float)
c4 (float)
c5 (float)
c6 (float)
c7 (float)
h1 (float)
h2 (float)
h3 (float)
h4 (float)
h5 (float)
h6 (float)
h7 (float)
te_weights (array<float>)
Notes de version
v22Added:
fprojectionconfidence2(horizons, amplitudes, weights, nette, te_threshold, alpha_k, alpha_a, alpha_te, conf_mode)
Parameters:
horizons (array<int>)
amplitudes (array<float>)
weights (array<float>)
nette (float)
te_threshold (float)
alpha_k (float)
alpha_a (float)
alpha_te (float)
conf_mode (int)
Notes de version
v23Notes de version
v24Notes de version
v25Notes de version
v26Notes de version
v27Notes de version
v28Added:
f_config_default(k)
Parameters:
k (int)
f_query_new(feats, meta_a, meta_b, dir)
Parameters:
feats (array<float>)
meta_a (int)
meta_b (int)
dir (series TradeDirection enum from cybermediaboy/LearningLib/1)
f_mahalanobis_packed(a, b, sigma_inv_tri)
Mahalanobis distance using lower-triangular packed inverse cov.
Packing convention: sigma_inv_tri[idx] for (i,j) with i>=j is at
idx = i*(i+1)/2 + j. Diagonal at i*(i+1)/2 + i.
Caller-managed packing; sigma_inv_tri size = n*(n+1)/2.
Parameters:
a (array<float>)
b (array<float>)
sigma_inv_tri (array<float>)
f_dist_dispatch(kind, a, b, sigma_inv_tri)
Distance dispatch, including Mahalanobis when query carries
sigma_inv_tri.
Parameters:
kind (series DistanceKind enum from cybermediaboy/LearningLib/1)
a (array<float>)
b (array<float>)
sigma_inv_tri (array<float>)
f_knn_search(tb, q, cfg)
Hierarchical kNN search with tournament filtering and fallback.
Algorithm:
1. Try requested filter mode.
2. If filtered population < cfg.min_samples, fall back:
META_AB → META_A_ONLY → NONE
META_A_THEN_B / META_A_ONLY → NONE
META_B_ONLY → NONE
3. Compute distances, retain top-k via bounded insertion.
4. Populate weights = 1 / max(d, min_distance).
5. Aggregate per cfg.aggregate.
6. Compute confidence.
Returns KnnResult with effective filter and population counts.
Parameters:
tb (TrainingBuffer type from cybermediaboy/LearningLib/1)
q (KnnQuery)
cfg (KnnConfig)
f_aggregate_str(m)
Parameters:
m (series AggregateMode)
f_filter_str(f)
Parameters:
f (series FilterMode)
f_dirfilter_str(d)
Parameters:
d (series DirectionFilter)
KnnConfig
KnnConfig — search hyperparameters
Fields:
k (series int): number of neighbors
metric (series DistanceKind enum from cybermediaboy/LearningLib/1): distance metric
aggregate (series AggregateMode): how to combine top-k labels
filter (series FilterMode): tournament filter mode
dir_filter (series DirectionFilter): direction filter
min_samples (series int): minimum filtered population to use filter (else fallback)
min_distance (series float): floor for 1/d weighting (avoid singular)
require_distinct_t (series bool): require sample.timestamp != query.timestamp (anti-leak)
KnnQuery
KnnQuery — query specification
Fields:
features (array<float>): query feature vector
meta_a (series int): category-A label (e.g. setup family)
meta_b (series int): category-B label (e.g. setup code)
direction (series TradeDirection enum from cybermediaboy/LearningLib/1): query direction context (used by SAME_AS_QUERY filter)
timestamp (series int): query bar (used by require_distinct_t)
sigma_inv_tri (array<float>): inverse covariance (lower-triangular packed) for Mahalanobis;
KnnNeighbor
KnnNeighbor — single neighbor with distance and sample backref
Fields:
sample (TBSample type from cybermediaboy/LearningLib/1)
distance (series float)
weight (series float)
KnnResult
KnnResult — aggregated output
Fields:
neighbors (array<KnnNeighbor>): top-k sorted ascending by distance
prediction (series float): aggregated label (na if no neighbors)
confidence (series float): in [0,1] — fraction of neighbors agreeing on dominant class,
used_filter (series FilterMode): which filter was effectively applied (after fallback)
n_candidates (series int): number of samples scanned
n_filtered (series int): number passing filter
Removed:
f_turboquant(val)
Quantize a single feature to 3-bit index + 1-bit residual (4 bits total)
f_pack_vector(i0, r0, i1, r1, i2, r2, i3, r3, i4, r4, i5, r5)
Pack 6 features into single 24-bit integer
f_pack_vector_7(i0, r0, i1, r1, i2, r2, i3, r3, i4, r4, i5, r5, i6, r6)
Pack 7 features into single 28-bit integer
f_unpack_centroid(packed, feat_idx)
Unpack and reconstruct centroid value with half-step refinement
Notes de version
v29Updated:
f_query_new(feats, meta_a, meta_b, dir)
Parameters:
feats (array<float>)
meta_a (int)
meta_b (int)
dir (series TradeDirection enum from cybermediaboy/LearningLib/3)
f_dist_dispatch(kind, a, b, sigma_inv_tri)
Distance dispatch, including Mahalanobis when query carries
sigma_inv_tri.
Parameters:
kind (series DistanceKind enum from cybermediaboy/LearningLib/3)
a (array<float>)
b (array<float>)
sigma_inv_tri (array<float>)
f_knn_search(tb, q, cfg)
Hierarchical kNN search with tournament filtering and fallback.
Algorithm:
1. Try requested filter mode.
2. If filtered population < cfg.min_samples, fall back:
META_AB → META_A_ONLY → NONE
META_A_THEN_B / META_A_ONLY → NONE
META_B_ONLY → NONE
3. Compute distances, retain top-k via bounded insertion.
4. Populate weights = 1 / max(d, min_distance).
5. Aggregate per cfg.aggregate.
6. Compute confidence.
Returns KnnResult with effective filter and population counts.
Parameters:
tb (TrainingBuffer type from cybermediaboy/LearningLib/3)
q (KnnQuery)
cfg (KnnConfig)
KnnConfig
KnnConfig — search hyperparameters
Fields:
k (series int): number of neighbors
metric (series DistanceKind enum from cybermediaboy/LearningLib/3): distance metric
aggregate (series AggregateMode): how to combine top-k labels
filter (series FilterMode): tournament filter mode
dir_filter (series DirectionFilter): direction filter
min_samples (series int): minimum filtered population to use filter (else fallback)
min_distance (series float): floor for 1/d weighting (avoid singular)
require_distinct_t (series bool): require sample.timestamp != query.timestamp (anti-leak)
KnnQuery
KnnQuery — query specification
Fields:
features (array<float>): query feature vector
meta_a (series int): category-A label (e.g. setup family)
meta_b (series int): category-B label (e.g. setup code)
direction (series TradeDirection enum from cybermediaboy/LearningLib/3): query direction context (used by SAME_AS_QUERY filter)
timestamp (series int): query bar (used by require_distinct_t)
sigma_inv_tri (array<float>): inverse covariance (lower-triangular packed) for Mahalanobis;
KnnNeighbor
KnnNeighbor — single neighbor with distance and sample backref
Fields:
sample (TBSample type from cybermediaboy/LearningLib/3)
distance (series float)
weight (series float)
Notes de version
v30Notes de version
v31Added:
f_mahalanobis_shrinkage(x, X_buffer, alpha, weiszfeld_iters)
Shrinkage Mahalanobis distance with L1-median anchor (Cabana et al. 2019)
Parameters:
x (array<float>): Current observation vector (length d, typically 3)
X_buffer (matrix<float>): Matrix of past observations (N rows × d columns)
alpha (simple float): Shrinkage weight toward identity [0,1], default 0.1
weiszfeld_iters (simple int): Weiszfeld iterations for L1-median [1,10], default 5
Returns: Robust Mahalanobis distance, or na if invalid inputs
Bibliothèque Pine
Dans l'esprit TradingView, l'auteur a publié ce code Pine sous forme de bibliothèque open source afin que d'autres programmeurs Pine de notre communauté puissent le réutiliser. Bravo à l'auteur! Vous pouvez utiliser cette bibliothèque à titre privé ou dans d'autres publications open source, mais la réutilisation de ce code dans des publications est régie par nos Règles.
Clause de non-responsabilité
Les informations et publications ne sont pas destinées à être, et ne constituent pas, des conseils ou recommandations financiers, d'investissement, de trading ou autres fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.
Bibliothèque Pine
Dans l'esprit TradingView, l'auteur a publié ce code Pine sous forme de bibliothèque open source afin que d'autres programmeurs Pine de notre communauté puissent le réutiliser. Bravo à l'auteur! Vous pouvez utiliser cette bibliothèque à titre privé ou dans d'autres publications open source, mais la réutilisation de ce code dans des publications est régie par nos Règles.
Clause de non-responsabilité
Les informations et publications ne sont pas destinées à être, et ne constituent pas, des conseils ou recommandations financiers, d'investissement, de trading ou autres fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.