
बहुस्तरीय सांख्यिकीय रिवर्स ट्रेडिंग रणनीति एक उन्नत मात्रात्मक ट्रेडिंग प्रणाली है जो तीन-स्तरीय रैखिक रिवर्स फ्रेमवर्क का उपयोग करती है, जिसमें सांख्यिकीय सत्यापन और एकीकृत भार आवंटन तंत्र शामिल हैं। यह रणनीति एक साथ अल्पकालिक, मध्यम और दीर्घकालिक मूल्य आंदोलनों का विश्लेषण करती है, सख्त सांख्यिकीय महत्व परीक्षण के माध्यम से उच्च विश्वास के दिशात्मक संकेत उत्पन्न करती है, और सख्त जोखिम नियंत्रण उपायों को लागू करती है। इस रणनीति का मुख्य कार्य कई समय फ़्रेमों के रैखिक रिवर्स विश्लेषण के परिणामों को भारित करना है।
इस रणनीति का मूल सिद्धांत बहु-स्तरीय सांख्यिकीय रैखिक रिग्रेशन विश्लेषण पर आधारित है, जिसमें मुख्य रूप से निम्नलिखित प्रमुख घटक शामिल हैंः
बहु परत वापसी इंजनरणनीतिः तीन अनुकूलन योग्य समय फ़्रेमों पर एक साथ रैखिक रिग्रेशन विश्लेषण करता है (अल्पकालिक/मध्यमकालिक/दीर्घकालिक), डिफ़ॉल्ट 20/50/100 चक्रों के साथ। प्रत्येक समय फ़्रेम के लिए स्टैटिस्टिक्स जैसे स्केलेबिलिटी, आर स्क्वायर और संबंधित गुणांक की गणना करके भविष्य के मूल्य आंदोलन की भविष्यवाणी करता है। रिग्रेशन विश्लेषण के परिणामों को केवल तब ही सांख्यिकीय रूप से महत्वपूर्ण माना जाता है जब आर स्क्वायर, संबंधित गुणांक और स्केलेबिलिटी के निरपेक्ष मान अनुमानित थ्रेशोल्ड से अधिक हों।
सिग्नल सत्यापन प्रणाली: रणनीति ने एक पूर्व-सत्यापन तंत्र का डिजाइन किया है, जो ऐतिहासिक पूर्वानुमान मूल्यों की तुलना वास्तविक मूल्य आंदोलनों के साथ करके पूर्वानुमान सटीकता का आकलन करता है। एक भारित एकीकरण विधि का उपयोग करके तीन समय-सीमा के संकेतों को एकीकृत करें, अल्पकालिक, मध्यम और दीर्घकालिक संकेतों को अलग-अलग भार दें (डिफ़ॉल्ट रूप से 0.4⁄0.35⁄0.25) । समग्र विश्वास स्कोर में सांख्यिकीय ताकत, अंतर-स्तरीय संगतता और सत्यापन सटीकता शामिल हैं।
जोखिम प्रबंधन तंत्ररणनीतिः स्थिति आकार को गतिशील रूप से सिग्नल विश्वास के आधार पर समायोजित करता है (डिफ़ॉल्ट रूप से खाता निधि का 50%), अधिकतम दैनिक हानि सीमा सेट करता है (डिफ़ॉल्ट रूप से 12%), और जब यह सीमा तक पहुंच जाती है तो स्वचालित रूप से व्यापार बंद कर देता है। विदेशी मुद्रा व्यापार की विशेषताओं को ध्यान में रखते हुए, रणनीति में पॉइंट स्लिप और प्रतिशत-आधारित कमीशन सेटिंग्स शामिल हैं।
सिग्नल जनरेशन लॉजिक के लिए एकीकरण स्कोर का निरपेक्ष मूल्य 0.5 से अधिक होना चाहिए, समग्र विश्वास पूर्वनिर्धारित थ्रेशोल्ड से अधिक होना चाहिए (डिफ़ॉल्ट 0.75), अल्पकालिक और मध्यावधि रिटर्न को सांख्यिकीय रूप से महत्वपूर्ण होना चाहिए, और दैनिक हानि सीमा को ट्रिगर नहीं किया गया है। जब इसके विपरीत उच्च विश्वास सिग्नल या दैनिक हानि सीमा को ट्रिगर किया जाता है, तो रणनीति को निष्पादित किया जाता है।
कोड के गहन विश्लेषण के माध्यम से, इस रणनीति के निम्नलिखित उल्लेखनीय फायदे हैं:
बहुआयामी बाजार विश्लेषणएक साथ अल्पकालिक, मध्यम और दीर्घकालिक मूल्य आंदोलनों का विश्लेषण करके, रणनीति बाजार की गतिशीलता को पूरी तरह से पकड़ने में सक्षम है, जिससे एक एकल समय सीमा के कारण होने वाले एकतरफा निर्णयों से बचा जा सकता है।
सांख्यिकीय कठोरतारणनीतिः सख्त सांख्यिकीय महत्व परीक्षणों को लागू करना (आर स्क्वायर मान, संबंधित गुणांक, स्केलेबिलिटी थ्रेसहोल्ड), यह सुनिश्चित करना कि केवल उच्च गुणवत्ता वाले रिग्रेशन विश्लेषण के परिणाम सिग्नल जनरेशन के लिए उपयोग किए जाते हैं, जो झूठे सिग्नल की संभावना को काफी कम करता है।
अनुकूलित स्थिति प्रबंधन: रणनीति संकेत विश्वास गतिशीलता के आधार पर स्थिति आकार को समायोजित करती है, उच्च विश्वास के मामले में स्थिति को बढ़ाता है, कम विश्वास के मामले में जोखिम को कम करता है, जोखिम और लाभ के बुद्धिमान संतुलन को प्राप्त करता है।
निर्मित सत्यापन तंत्र: पूर्वानुमान की सटीकता का आकलन करने के लिए ऐतिहासिक रूप से सत्यापित किया गया है, जो सिग्नल की गुणवत्ता के लिए एक अतिरिक्त सुरक्षा परत प्रदान करता है, जो रणनीति की स्थिरता और विश्वसनीयता को बढ़ाता है।
पूर्ण जोखिम नियंत्रण: प्रति दिन अधिकतम हानि की सीमा निर्धारित करें, एक दिन में बड़े पैमाने पर नुकसान को रोकें, खाते की धनराशि की सुरक्षा करें। सीमा तक पहुंचने पर स्वचालित रूप से व्यापार बंद करें और बाजार की स्थिति में सुधार की प्रतीक्षा करें।
निर्णय लेने में मदद के लिए दृश्यरणनीतिः वास्तविक समय रिवर्स लाइन चार्ट प्रदान करता है (तीन अलग-अलग रंगों के साथ), अल्पकालिक पूर्वानुमान मार्कर, बाजार की ओर झुकाव पृष्ठभूमि रंग चिह्न, और एक व्यापक सांख्यिकीय डेटा पैनल (आर-वर्ग सूचक, सत्यापन स्कोर, लाभप्रदता), व्यापार निर्णय लेने के लिए दृश्य समर्थन प्रदान करता है।
हालांकि यह रणनीति अच्छी तरह से डिजाइन की गई है, लेकिन इसके साथ निम्नलिखित संभावित जोखिम भी हैं:
पैरामीटर संवेदनशीलता: रणनीति कई महत्वपूर्ण मापदंडों पर निर्भर करती है ((आर स्क्वायर थ्रेशोल्ड, संबंधित गुणांक न्यूनतम, स्केलेबल थ्रेशोल्ड, आदि) । इन मापदंडों की सेटिंग्स का रणनीति के प्रदर्शन पर महत्वपूर्ण प्रभाव पड़ता है। अनुचित पैरामीटर सेटिंग्स से ओवर-ट्रेडिंग या महत्वपूर्ण सिग्नल को याद किया जा सकता है। समाधानः ऐतिहासिक डेटा के माध्यम से पैरामीटर सेटिंग्स को अनुकूलित करें और समय-समय पर पैरामीटर की प्रभावशीलता का पुनर्मूल्यांकन करें
बाजार की स्थिति में परिवर्तन: उच्च अस्थिरता या आकस्मिक घटनाओं के दौरान, रैखिक वापसी की पूर्वानुमान क्षमता में काफी गिरावट आ सकती है, जिससे रणनीति खराब हो जाती है। समाधानः बाजार की स्थिति की पहचान करने के लिए एक तंत्र जोड़ना, गैर-रैखिक बाजार की स्थिति में स्वचालित रूप से समायोजित या निलंबित करना।
सांख्यिकीय पिछड़ापन: रैखिक रिग्रेशन विश्लेषण मूल रूप से एक पिछड़ा सूचक है, जो बाजार में तेजी से बदलाव के लिए पर्याप्त प्रतिक्रिया नहीं दे सकता है। समाधानः अग्रणी सूचक या गतिशीलता सूचक को एकीकृत करने पर विचार करें और बाजार के मोड़ के बिंदुओं के लिए रणनीति की संवेदनशीलता बढ़ाएं।
अति-अनुरूपता का जोखिम: बहुस्तरीय सांख्यिकीय ढांचे को ऐतिहासिक आंकड़ों के साथ अति-अनुरूपित किया जा सकता है, जिससे भविष्य के बाजार की स्थिति में खराब प्रदर्शन हो सकता है। समाधानः रणनीति की स्थिरता और अनुकूलनशीलता सुनिश्चित करने के लिए आगे की परीक्षण और क्रॉस-वैलिडेशन लागू करें।
कम्प्यूटेशनल जटिलता: रणनीति के बहुस्तरीय रिग्रेशनल विश्लेषण और सांख्यिकीय सत्यापन के लिए बहुत अधिक कंप्यूटिंग संसाधनों की आवश्यकता होती है, और उच्च-आवृत्ति वाले लेनदेन के वातावरण में निष्पादन में देरी का सामना करना पड़ सकता है। समाधानः कोड दक्षता का अनुकूलन करें, अधिक कुशल सांख्यिकीय गणना विधियों का उपयोग करने पर विचार करें।
कोड विश्लेषण के आधार पर, इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः
गतिशील समय सीमा अनुकूलन: वर्तमान में रणनीति एक निश्चित लघु / मध्यम / दीर्घकालिक समय सीमा का उपयोग करती है। बाजार की अस्थिरता के आधार पर इन मापदंडों को स्वचालित रूप से समायोजित करने पर विचार किया जा सकता है। उच्च अस्थिरता वाले बाजारों में समय सीमा को छोटा करने के लिए, कम अस्थिरता वाले बाजारों में समय सीमा को बढ़ाएं ताकि रणनीति को विभिन्न बाजार स्थितियों के लिए बेहतर तरीके से अनुकूलित किया जा सके।
पूर्वानुमान मॉडल को मजबूत करना: वर्तमान रणनीति केवल रैखिक प्रतिगमन का उपयोग करती है, अधिक जटिल मॉडल जैसे कि बहुपद प्रतिगमन, एआरआईएमए या मशीन लर्निंग मॉडल (जैसे कि यादृच्छिक वन, समर्थन वेक्टर मशीन आदि) को एकीकृत करने पर विचार किया जा सकता है, जिससे भविष्यवाणी की सटीकता में सुधार हो सकता है।
बाज़ार परिवेश वर्गीकरण: बाजार की स्थिति की पहचान करने के लिए मॉड्यूल को जोड़ना, प्रवृत्ति बाजार और अंतर-अस्थिरता बाजारों को अलग करना, विभिन्न बाजार स्थितियों में विभिन्न व्यापारिक तर्क और पैरामीटर सेटिंग्स को अपनाना, रणनीति की अनुकूलनशीलता में सुधार करना।
सत्यापन तंत्र का अनुकूलनवर्तमान में, पूर्व-सत्यापन मुख्य रूप से अल्पकालिक भविष्यवाणियों पर आधारित है, जो सभी तीन समय-सीमाओं में विस्तारित हो सकते हैं और अधिक जटिल सत्यापन विधियों को लागू कर सकते हैं, जैसे कि रोलिंग विंडो क्रॉस-सत्यापन, जो सत्यापन की विश्वसनीयता को बढ़ाता है।
उच्च जोखिम प्रबंधन: अधिक जटिल जोखिम प्रबंधन तकनीकों की शुरूआत, जैसे कि गतिशील स्टॉप लॉस स्तर, अस्थिरता के लिए समायोजित स्थिति आकार, संबंधित परिसंपत्तियों की जोखिम-समान कीमत, और रणनीति के जोखिम-समायोजित रिटर्न को और बढ़ाएं।
भावनात्मक और मौलिक एकीकरण: बाजार भावना के संकेतकों या मौलिक कारकों को मॉडल में एकीकृत करने पर विचार करें, जैसे कि अस्थिरता सूचकांक, ब्याज दर अंतर या आर्थिक आंकड़ों के प्रकाशन के प्रभाव, अधिक व्यापक व्यापार निर्णय लेने के लिए एक फ्रेमवर्क बनाने के लिए।
बहुस्तरीय सांख्यिकीय रिवर्स ट्रेडिंग रणनीति एक तकनीकी रूप से उन्नत, अच्छी तरह से डिज़ाइन की गई मात्रात्मक ट्रेडिंग प्रणाली है, जो बहुस्तरीय रैखिक रिवर्स विश्लेषण के माध्यम से सख्त सांख्यिकीय सत्यापन और बुद्धिमान जोखिम नियंत्रण के साथ मिलकर ट्रेडिंग निर्णय लेने के लिए एक ठोस गणितीय आधार प्रदान करती है। इस रणनीति का सबसे बड़ा लाभ इसकी व्यापक बाजार विश्लेषण क्षमता और कठोर सांख्यिकीय विधियों में है, जो एक साथ अल्पकालिक, मध्यम और दीर्घकालिक मूल्य रुझानों को ध्यान में रखते हुए और उनके सांख्यिकीय महत्व के परीक्षण के माध्यम से, कम गुणवत्ता वाले संकेतों को प्रभावी ढंग से फ़िल्टर करती है।
रणनीति का एकीकृत भारित तंत्र और अनुकूलन योग्य स्थिति प्रबंधन प्रणाली इसे संकेत गुणवत्ता की गतिशीलता के आधार पर व्यापारिक निर्णयों और जोखिम को समायोजित करने में सक्षम बनाती है, जबकि अंतर्निहित पूर्वव्यापी सत्यापन और दैनिक हानि सीमा अतिरिक्त सुरक्षा प्रदान करती है। एक सुव्यवस्थित दृश्य इंटरफ़ेस और सांख्यिकीय डेटा पैनल भी व्यापारियों को निर्णय समर्थन के लिए एक सहज ज्ञान युक्त उपकरण प्रदान करता है।
हालांकि इस रणनीति में पैरामीटर संवेदनशीलता, बाजार की स्थिति अनुकूलन और सांख्यिकीय पिछड़ेपन जैसे संभावित जोखिम हैं, लेकिन इसकी स्थिरता और लाभप्रदता को नियमित पैरामीटर अनुकूलन, बाजार की स्थिति वर्गीकरण और पूर्वानुमान मॉडल संवर्धन जैसे दिशाओं में अनुकूलन के माध्यम से और बढ़ाया जा सकता है। कुल मिलाकर, यह एक उन्नत रणनीति है जो मात्रात्मक वित्तीय तकनीक को व्यावहारिक व्यापार सुरक्षा के साथ जोड़ती है, विशेष रूप से उन व्यापारियों के लिए उपयुक्त है जो सांख्यिकीय विधियों के बारे में कुछ ज्ञान रखते हैं।
/*backtest
start: 2024-07-31 00:00:00
end: 2025-07-29 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Multi-Layer Statistical Regression Strategy - Optimized", overlay=true)
// === MULTI-LAYER REGRESSION INPUTS ===
// Linear Regression Layers
lr_short_length = input.int(20, "Short-Term LR Length", minval=10, maxval=50, step=2)
lr_medium_length = input.int(50, "Medium-Term LR Length", minval=30, maxval=100, step=5)
lr_long_length = input.int(100, "Long-Term LR Length", minval=50, maxval=200, step=10)
// === 优化后的统计验证参数 (降低严格程度) ===
min_r_squared = input.float(0.45, "Min R-Squared Threshold", minval=0.2, maxval=0.8, step=0.05)
slope_threshold = input.float(0.00005, "Min Slope Significance", minval=0.00001, maxval=0.001, step=0.00001)
correlation_min = input.float(0.5, "Min Correlation", minval=0.3, maxval=0.8, step=0.05)
// Lookback/Look-Forward Analysis
validation_lookback = input.int(30, "Validation Lookback", minval=10, maxval=60, step=5)
prediction_horizon = input.int(10, "Prediction Horizon", minval=5, maxval=20, step=1)
// Ensemble Weights
weight_short = input.float(0.4, "Short-Term Weight", minval=0.1, maxval=0.6, step=0.1)
weight_medium = input.float(0.35, "Medium-Term Weight", minval=0.1, maxval=0.6, step=0.05)
weight_long = input.float(0.25, "Long-Term Weight", minval=0.1, maxval=0.6, step=0.05)
// === 优化后的风险管理参数 ===
position_size_pct = input.float(50.0, "Position Size %", minval=10.0, maxval=100.0, step=5.0)
max_daily_loss = input.float(12.0, "Max Daily Loss %", minval=5.0, maxval=25.0, step=2.5)
confidence_threshold = input.float(0.55, "Signal Confidence Threshold", minval=0.4, maxval=0.8, step=0.05)
// === 新增:信号强度分级 ===
use_graded_signals = input.bool(true, "Use Graded Signal Strength")
strong_signal_threshold = input.float(0.7, "Strong Signal Threshold", minval=0.6, maxval=0.9, step=0.05)
// === STATISTICAL FUNCTIONS ===
// Calculate Linear Regression with full statistics
linear_regression_stats(src, length) =>
var float sum_x = 0
var float sum_y = 0
var float sum_xy = 0
var float sum_x2 = 0
var float sum_y2 = 0
// Reset sums
sum_x := 0
sum_y := 0
sum_xy := 0
sum_x2 := 0
sum_y2 := 0
// Calculate sums for regression
for i = 0 to length - 1
x = i + 1
y = src[i]
if not na(y)
sum_x := sum_x + x
sum_y := sum_y + y
sum_xy := sum_xy + x * y
sum_x2 := sum_x2 + x * x
sum_y2 := sum_y2 + y * y
n = length
// Calculate regression coefficients
denominator = n * sum_x2 - sum_x * sum_x
slope = denominator != 0 ? (n * sum_xy - sum_x * sum_y) / denominator : 0
intercept = (sum_y - slope * sum_x) / n
// Calculate correlation coefficient (R)
correlation = (n * sum_xy - sum_x * sum_y) /
math.sqrt((n * sum_x2 - sum_x * sum_x) * (n * sum_y2 - sum_y * sum_y))
// Calculate R-squared
r_squared = correlation * correlation
// Current regression value
current_lr = intercept + slope * n
// Projected value (look-forward)
projected_lr = intercept + slope * (n + prediction_horizon)
[current_lr, slope, r_squared, correlation, projected_lr]
// === 优化后的统计显著性测试 (更灵活) ===
is_statistically_significant(r_squared, correlation, slope_abs, grade = "normal") =>
if grade == "relaxed"
r_squared >= (min_r_squared * 0.8) and math.abs(correlation) >= (correlation_min * 0.8) and math.abs(slope_abs) >= (slope_threshold * 0.5)
else if grade == "strict"
r_squared >= (min_r_squared * 1.2) and math.abs(correlation) >= (correlation_min * 1.1) and math.abs(slope_abs) >= (slope_threshold * 1.5)
else
r_squared >= min_r_squared and math.abs(correlation) >= correlation_min and math.abs(slope_abs) >= slope_threshold
// === MULTI-LAYER REGRESSION ANALYSIS ===
// Short-term layer
[lr_short, slope_short, r2_short, corr_short, proj_short] = linear_regression_stats(close, lr_short_length)
sig_short = is_statistically_significant(r2_short, corr_short, slope_short, "normal")
sig_short_strong = is_statistically_significant(r2_short, corr_short, slope_short, "strict")
// Medium-term layer
[lr_medium, slope_medium, r2_medium, corr_medium, proj_medium] = linear_regression_stats(close, lr_medium_length)
sig_medium = is_statistically_significant(r2_medium, corr_medium, slope_medium, "relaxed")
sig_medium_strong = is_statistically_significant(r2_medium, corr_medium, slope_medium, "normal")
// Long-term layer
[lr_long, slope_long, r2_long, corr_long, proj_long] = linear_regression_stats(close, lr_long_length)
sig_long = is_statistically_significant(r2_long, corr_long, slope_long, "relaxed")
// === LOOKBACK VALIDATION ===
validate_prediction_accuracy() =>
var array<float> accuracy_scores = array.new<float>()
if bar_index >= validation_lookback
historical_slope = (close - close[prediction_horizon]) / prediction_horizon
predicted_slope = slope_short[prediction_horizon]
error = math.abs(historical_slope - predicted_slope)
accuracy = math.max(0, 1 - error * 10000)
array.push(accuracy_scores, accuracy)
if array.size(accuracy_scores) > validation_lookback
array.shift(accuracy_scores)
array.size(accuracy_scores) > 5 ? array.avg(accuracy_scores) : 0.5
validation_accuracy = validate_prediction_accuracy()
// === 优化后的集成信号生成 ===
// Individual layer signals (directional)
signal_short = sig_short ? (slope_short > 0 ? 1 : -1) : 0
signal_medium = sig_medium ? (slope_medium > 0 ? 1 : -1) : 0
signal_long = sig_long ? (slope_long > 0 ? 1 : -1) : 0
// Weighted ensemble score
ensemble_score = (signal_short * weight_short +
signal_medium * weight_medium +
signal_long * weight_long)
// === 多级信号置信度计算 ===
// 基础一致性评分
agreement_score = math.abs(signal_short + signal_medium + signal_long) / 3.0
// 统计置信度 (使用加权平均)
stat_confidence = (r2_short * weight_short +
r2_medium * weight_medium +
r2_long * weight_long)
// 验证置信度
validation_confidence = validation_accuracy
// 整体置信度 (调整权重比例)
overall_confidence = (agreement_score * 0.3 +
stat_confidence * 0.5 +
validation_confidence * 0.2)
// 信号强度分级
signal_strength = math.abs(ensemble_score)
is_strong_signal = overall_confidence > strong_signal_threshold and (sig_short_strong or sig_medium_strong)
// === POSITION MANAGEMENT ===
trend_direction = ensemble_score > 0 ? 1 : ensemble_score < 0 ? -1 : 0
// 基于信号强度的仓位调整
confidence_multiplier = if use_graded_signals
if is_strong_signal
1.0 + (overall_confidence - strong_signal_threshold) * 0.5
else
0.7 + (overall_confidence / strong_signal_threshold) * 0.3
else
overall_confidence > confidence_threshold ? 1.0 : overall_confidence / confidence_threshold
base_position_value = strategy.equity * (position_size_pct / 100)
adjusted_position_value = base_position_value * confidence_multiplier
position_units = adjusted_position_value / close
// Daily loss tracking
var float daily_start_equity = strategy.equity
if ta.change(time("1D"))
daily_start_equity := strategy.equity
current_daily_loss = daily_start_equity > 0 ? (daily_start_equity - strategy.equity) / daily_start_equity * 100 : 0
halt_trading = current_daily_loss > max_daily_loss
// === 优化后的入场/退出逻辑 ===
// 更灵活的入场条件
long_condition_basic = ensemble_score > 0.2 and overall_confidence > confidence_threshold and sig_short
long_condition_strong = ensemble_score > 0.4 and overall_confidence > strong_signal_threshold and sig_short and sig_medium
short_condition_basic = ensemble_score < -0.2 and overall_confidence > confidence_threshold and sig_short
short_condition_strong = ensemble_score < -0.4 and overall_confidence > strong_signal_threshold and sig_short and sig_medium
// 入场信号生成
long_signal = use_graded_signals ? (long_condition_strong or long_condition_basic) : long_condition_strong
short_signal = use_graded_signals ? (short_condition_strong or short_condition_basic) : short_condition_strong
// 策略执行
if long_signal and not halt_trading and strategy.position_size <= 0
signal_type = long_condition_strong ? "Strong Long" : "Basic Long"
strategy.entry("Long", strategy.long, qty=position_units,
comment=signal_type + ": " + str.tostring(overall_confidence, "#.##"))
if short_signal and not halt_trading and strategy.position_size >= 0
signal_type = short_condition_strong ? "Strong Short" : "Basic Short"
strategy.entry("Short", strategy.short, qty=position_units,
comment=signal_type + ": " + str.tostring(overall_confidence, "#.##"))
// 降低初始化门槛
if strategy.position_size == 0 and not halt_trading and barstate.isconfirmed
if ensemble_score > 0.15 and overall_confidence > (confidence_threshold * 0.8)
strategy.entry("InitLong", strategy.long, qty=position_units * 0.8, comment="Init Long")
else if ensemble_score < -0.15 and overall_confidence > (confidence_threshold * 0.8)
strategy.entry("InitShort", strategy.short, qty=position_units * 0.8, comment="Init Short")
// Emergency exit
if halt_trading and strategy.position_size != 0
strategy.close_all(comment="Daily Loss Limit")
// === 增强的可视化 ===
// Plot regression lines with transparency based on significance
plot(lr_short, "Short-Term LR", color=sig_short_strong ? color.blue : color.new(color.blue, 50), linewidth=2)
plot(lr_medium, "Medium-Term LR", color=sig_medium_strong ? color.orange : color.new(color.orange, 50), linewidth=2)
plot(lr_long, "Long-Term LR", color=color.new(color.purple, 30), linewidth=1)
// Background with graded confidence
bg_color = if overall_confidence > strong_signal_threshold
ensemble_score > 0 ? color.new(color.green, 85) : color.new(color.red, 85)
else if overall_confidence > confidence_threshold
ensemble_score > 0 ? color.new(color.green, 92) : color.new(color.red, 92)
else
color.new(color.gray, 97)
bgcolor(bg_color)
// Enhanced signal markers
plotshape(long_condition_strong, "Strong Long", shape.triangleup, location.belowbar,
color=color.green, size=size.large)
plotshape(long_condition_basic and not long_condition_strong, "Basic Long", shape.triangleup, location.belowbar,
color=color.new(color.green, 40), size=size.small)
plotshape(short_condition_strong, "Strong Short", shape.triangledown, location.abovebar,
color=color.red, size=size.large)
plotshape(short_condition_basic and not short_condition_strong, "Basic Short", shape.triangledown, location.abovebar,
color=color.new(color.red, 40), size=size.small)