বহু-স্তরের পরিসংখ্যানগত রিগ্রেশন ট্রেডিং কৌশল

趋势指标 线性回归 统计验证 集成学习 风险管理 信号置信度 权重优化 多时间框架 验证检验
সৃষ্টির তারিখ: 2025-07-31 11:08:19 অবশেষে সংশোধন করুন: 2025-08-21 14:12:56
অনুলিপি: 0 ক্লিকের সংখ্যা: 231
2
ফোকাস
319
অনুসারী

বহু-স্তরের পরিসংখ্যানগত রিগ্রেশন ট্রেডিং কৌশল বহু-স্তরের পরিসংখ্যানগত রিগ্রেশন ট্রেডিং কৌশল

ওভারভিউ

মাল্টি-লেভেল স্ট্যাটিস্টিক রিগ্রেশন ট্রেডিং কৌশল একটি উন্নত পরিমাণগত ট্রেডিং সিস্টেম যা একটি তিন-স্তরের লিনিয়ার রিগ্রেশন ফ্রেমওয়ার্ক ব্যবহার করে, যা পরিসংখ্যানগত যাচাইকরণ এবং একটি সমন্বিত ওজন বন্টন ব্যবস্থার সাথে মিলিত হয়। এই কৌশলটি একই সাথে স্বল্প, মাঝারি এবং দীর্ঘমেয়াদী দামের গতিবিধি বিশ্লেষণ করে, কঠোর পরিসংখ্যানগত তাত্পর্য পরীক্ষা করে উচ্চ আস্থাভাজন দিকনির্দেশক সংকেত তৈরি করে এবং কঠোর ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা প্রয়োগ করে। কৌশলটির মূলটি হ’ল একাধিক সময় ফ্রেমের লিনিয়ার রিগ্রেশন বিশ্লেষণের ফলাফলকে ভারসাম্যযুক্ত করা, সংকেতের গুণমান নিশ্চিত করার জন্য historicalতিহাসিক পুনর্বিবেচনা যাচাইকরণের মাধ্যমে এবং আস্থাভাজনতার গতিশীলতার উপর ভিত্তি করে পজিশনের আকার পরিবর্তন করা।

কৌশল নীতি

এই কৌশলটির কেন্দ্রীয় নীতিটি বহু স্তরের পরিসংখ্যানগত লিনিয়ার রিগ্রেশন বিশ্লেষণের উপর ভিত্তি করে, প্রধানত নিম্নলিখিত কয়েকটি মূল উপাদান রয়েছেঃ

  1. মাল্টিলেয়ার রিগ্রেশন ইঞ্জিন: কৌশলটি তিনটি কাস্টমাইজযোগ্য সময় ফ্রেমে ((স্বল্প / মাঝারি / দীর্ঘমেয়াদী) সমান্তরালভাবে একটি লিনিয়ার রিগ্রেশন বিশ্লেষণ পরিচালনা করে, ডিফল্টরূপে 20/50/100 চক্র। ভবিষ্যতের দামের গতিপথের পূর্বাভাস দেওয়ার জন্য প্রতিটি সময় ফ্রেমের জন্য স্ট্যাটিস্টিকাল সূচকগুলি যেমন স্কিলেন্স, আর-স্কোয়ারের মান এবং সম্পর্কিত ফ্যাক্টরগুলি গণনা করে। রিগ্রেশন বিশ্লেষণের ফলাফলগুলি কেবল তখনই পরিসংখ্যানগতভাবে উল্লেখযোগ্য হিসাবে বিবেচিত হয় যখন আর-স্কোয়ারের মান, সম্পর্কিত ফ্যাক্টর এবং স্কিলেন্সের পরম মানগুলি প্রত্যাশিত থ্রেশহোল্ডের চেয়ে বেশি থাকে।

  2. সিগন্যাল যাচাইকরণ সিস্টেম: কৌশলটি পূর্বাভাসের নির্ভুলতা মূল্যায়নের জন্য একটি পশ্চাদপদ যাচাইকরণ ব্যবস্থা ডিজাইন করেছে, যা ঐতিহাসিক পূর্বাভাসের মান এবং প্রকৃত মূল্যের গতির সাথে তুলনা করে। একটি ভারসাম্যযুক্ত সমন্বয় পদ্ধতি ব্যবহার করে তিনটি সময়সীমার সংকেতকে একত্রিত করা হয়েছে, স্বল্প, মাঝারি এবং দীর্ঘমেয়াদী সংকেতকে বিভিন্ন ওজন দেওয়া হয়েছে (ডিফল্ট 0.40.350.25) । সমন্বিত বিশ্বাসের স্কোরটি পরিসংখ্যানগত শক্তি, স্তরব্যাপী সামঞ্জস্য এবং যাচাইকরণের নির্ভুলতার সমন্বয়ে রয়েছে।

  3. ঝুঁকি ব্যবস্থাপনাকৌশলঃ সিগন্যাল বিশ্বাসের উপর ভিত্তি করে পজিশনের আকার পরিবর্তন করে (ডিফল্ট অ্যাকাউন্ট তহবিলের 50%), প্রতিদিনের সর্বোচ্চ ক্ষতির সীমা নির্ধারণ করে (ডিফল্ট 12%) এবং এই সীমাটি পৌঁছানোর পরে স্বয়ংক্রিয়ভাবে লেনদেন বন্ধ করে দেয়। ফরেক্স ট্রেডিংয়ের বৈশিষ্ট্যগুলি বিবেচনা করে, কৌশলটিতে পয়েন্ট স্লাইড এবং শতাংশ ভিত্তিক কমিশন সেটও অন্তর্ভুক্ত রয়েছে।

সিগন্যাল জেনারেশন লজিকের জন্য প্রয়োজন যে সমন্বিত স্কোরের পরম মান 0.5 এর চেয়ে বড় এবং সামগ্রিক আস্থাটি ডিফল্ট থ্রেশহোল্ডের চেয়ে বেশি ((0.75)), স্বল্পমেয়াদী এবং মধ্যমেয়াদী রিটার্নগুলি অবশ্যই পরিসংখ্যানগতভাবে উল্লেখযোগ্য হতে হবে এবং দৈনিক ক্ষতির সীমাটি ট্রিগার করা হয়নি। বিপরীত উচ্চ আস্থা সংকেত বা দৈনিক ক্ষতির সীমা ট্রিগার করার সময় কৌশলটি প্লেইন অপারেশনটি সম্পাদন করে।

কৌশলগত সুবিধা

কোডের গভীর বিশ্লেষণের মাধ্যমে, এই কৌশলটির নিম্নলিখিত উল্লেখযোগ্য সুবিধাগুলি রয়েছেঃ

  1. মাল্টি-ডাইমেনশনাল মার্কেট অ্যানালিসিস: একই সময়ে স্বল্প, মধ্যম এবং দীর্ঘমেয়াদী মূল্যের গতিবিধি বিশ্লেষণ করে, কৌশলটি বাজারের গতিশীলতার একটি বিস্তৃত ধারণা অর্জন করতে পারে, একক সময় ফ্রেমের দ্বারা উত্থাপিত হতে পারে এমন একতরফা বিচারকে এড়াতে পারে।

  2. পরিসংখ্যানগত কঠোরতাকৌশলঃ কঠোর পরিসংখ্যানগত তাত্পর্য পরীক্ষা (R-squared, সংশ্লিষ্ট সহগ, slope threshold) বাস্তবায়ন করুন, যাতে নিশ্চিত হয় যে কেবলমাত্র উচ্চমানের রিগ্রেশন বিশ্লেষণের ফলাফলগুলি সংকেত তৈরির জন্য ব্যবহৃত হয়, যা মিথ্যা সংকেতের সম্ভাবনা উল্লেখযোগ্যভাবে হ্রাস করে।

  3. পজিশন ম্যানেজমেন্টকৌশলঃ সিগন্যাল বিশ্বাসের গতিশীলতার উপর ভিত্তি করে পজিশনের আকার সামঞ্জস্য করা, উচ্চ বিশ্বাসের ক্ষেত্রে পজিশন বৃদ্ধি করা, নিম্ন বিশ্বাসের ক্ষেত্রে ঝুঁকির খোলার হ্রাস করা, ঝুঁকি এবং উপার্জনের একটি বুদ্ধিমান ভারসাম্য অর্জন করা।

  4. অন্তর্নির্মিত যাচাইকরণ: পূর্বাভাসের নির্ভুলতা মূল্যায়ন করার জন্য ঐতিহাসিক পুনর্বিবেচনার মাধ্যমে সংকেতের গুণমানের জন্য অতিরিক্ত সুরক্ষা স্তর সরবরাহ করা হয়, যা কৌশলটির স্থায়িত্ব এবং নির্ভরযোগ্যতা কার্যকরভাবে বৃদ্ধি করে।

  5. সম্পূর্ণ ঝুঁকি নিয়ন্ত্রণ: প্রতিদিনের সর্বোচ্চ ক্ষতির সীমা নির্ধারণ করুন, এক দিনের মধ্যে বড় ধরনের ক্ষতি রোধ করুন, অ্যাকাউন্টের তহবিল সুরক্ষিত রাখুন। যখন সীমাটি পৌঁছে যায় তখন স্বয়ংক্রিয়ভাবে লেনদেন বন্ধ করুন এবং বাজারের অবস্থার উন্নতির জন্য অপেক্ষা করুন।

  6. ভিজ্যুয়ালাইজড সিদ্ধান্ত সমর্থনকৌশলঃ রিয়েল-টাইম রিটার্ন লাইন চার্ট (তিনটি ভিন্ন রঙের স্তর), স্বল্পমেয়াদী পূর্বাভাস চিহ্ন, বাজার প্রবণতা ব্যাকগ্রাউন্ড রঙের চিহ্ন, এবং একটি বিস্তৃত পরিসংখ্যান প্যানেল (আর-স্কোয়ার সূচক, যাচাইকরণ স্কোর, লাভজনকতা) যা ট্রেডিং সিদ্ধান্ত নেওয়ার জন্য একটি চাক্ষুষ সহায়তা সরবরাহ করে।

কৌশলগত ঝুঁকি

এই কৌশলটি ভালভাবে পরিকল্পিত হলেও, এর মধ্যে কিছু সম্ভাব্য ঝুঁকি রয়েছেঃ

  1. পরামিতি সংবেদনশীলতা: কৌশলটি একাধিক মূল প্যারামিটারের উপর নির্ভর করে ((আর-স্কোয়ারের থ্রেশহোল্ড, সম্পর্কিত কোঅর্ডিনেটর ন্যূনতম মান, প্রান্তিক থ্রেশহোল্ড ইত্যাদি) । এই প্যারামিটারগুলির সেটিংটি কৌশলটির কার্যকারিতার উপর উল্লেখযোগ্য প্রভাব ফেলে। অনুপযুক্ত প্যারামিটার সেটিংটি অত্যধিক বাণিজ্য বা গুরুত্বপূর্ণ সংকেত মিস করতে পারে। সমাধানঃ ঐতিহাসিক ডেটা ব্যাকআপের মাধ্যমে প্যারামিটার সেটিংটি অনুকূলিত করুন এবং নিয়মিতভাবে প্যারামিটার কার্যকারিতা পুনরায় মূল্যায়ন করুন।

  2. বাজারের পরিবর্তিত অবস্থা: উচ্চ অস্থিরতা বা হঠাৎ ঘটনা চলাকালীন সময়ে, লিনিয়ার রিগ্রেশনের ভবিষ্যদ্বাণী করার ক্ষমতা উল্লেখযোগ্যভাবে হ্রাস পেতে পারে, যার ফলে কৌশলটি দুর্বল হয়। সমাধানঃ বাজার অবস্থা সনাক্তকরণ যন্ত্রপাতি যুক্ত করা, অ-রৈখিক বাজার পরিবেশে স্বয়ংক্রিয়ভাবে সামঞ্জস্য করা বা লেনদেন স্থগিত করা।

  3. পরিসংখ্যানগত পিছিয়ে পড়া: লিনিয়ার রিগ্রেশন অ্যানালিসিস মূলত একটি পিছিয়ে পড়া সূচক যা বাজারের তীব্র পরিবর্তনের ক্ষেত্রে দ্রুত প্রতিক্রিয়া জানাতে পারে না। সমাধানঃ নেতৃস্থানীয় সূচক বা গতিশীলতার সূচকগুলিকে একীভূত করার কথা বিবেচনা করুন, বাজারের পালা পয়েন্টের জন্য কৌশলটির সংবেদনশীলতা বাড়ান।

  4. অতিরিক্ত ফিট হওয়ার ঝুঁকি: মাল্টি-লেভেল স্ট্যাটিস্টিকাল ফ্রেমওয়ার্কগুলি অতীতের ডেটার সাথে অতিরিক্ত ফিট হতে পারে, যা ভবিষ্যতের বাজারের পরিবেশে দুর্বল পারফরম্যান্সের দিকে পরিচালিত করে। সমাধানঃ কৌশলগুলির স্থিতিশীলতা এবং অভিযোজনযোগ্যতা নিশ্চিত করার জন্য ফরোয়ার্ড টেস্টিং এবং ক্রস-ভ্যালিডেশন প্রয়োগ করুন।

  5. গণনাগত জটিলতাসমাধানঃ কোডের দক্ষতা অনুকূলিতকরণ, আরও দক্ষ পরিসংখ্যানগত গণনা পদ্ধতির ব্যবহার বিবেচনা করা।

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

কোড বিশ্লেষণের উপর ভিত্তি করে, এই কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ

  1. ডায়নামিক টাইম ফ্রেমওয়ার্ক অভিযোজন: বর্তমান কৌশলটি একটি নির্দিষ্ট স্বল্প / মাঝারি / দীর্ঘমেয়াদী সময়সীমার দৈর্ঘ্য ব্যবহার করে, বাজারের অস্থিরতার সাথে এই পরামিতিগুলি স্বয়ংক্রিয়ভাবে সামঞ্জস্য করার কথা বিবেচনা করা যেতে পারে। উচ্চ অস্থিরতার বাজারে সময়সীমা সংক্ষিপ্ত করুন, নিম্ন অস্থিরতার বাজারে সময়সীমা বাড়ান, যাতে কৌশলটি বিভিন্ন বাজারের অবস্থার সাথে আরও ভালভাবে খাপ খায়।

  2. পূর্বাভাস মডেল উন্নত করুন: বর্তমান কৌশল শুধুমাত্র লিনিয়ার রিগ্রেশন ব্যবহার করে, তবে আরও জটিল মডেল যেমন মাল্টিপলিওমারি রিগ্রেশন, এআরআইএমএ বা মেশিন লার্নিং মডেল (যেমন র্যান্ডম ফরেস্ট, সাপোর্ট ভেক্টর মেশিন ইত্যাদি) অন্তর্ভুক্ত করার কথা বিবেচনা করা যেতে পারে, যা ভবিষ্যদ্বাণীর নির্ভুলতা বাড়িয়ে তুলতে পারে।

  3. বাজার পরিবেশের শ্রেণীবিভাগ: বাজার পরিবেশে সনাক্তকরণ মডিউল যুক্ত করা, ট্রেন্ডিং বাজার এবং ব্যাচেলর ঝড়ের বাজারকে আলাদা করা, বিভিন্ন বাজার পরিবেশে বিভিন্ন ট্রেডিং লজিক এবং প্যারামিটার সেট আপ করা, কৌশলগুলির অভিযোজনযোগ্যতা বাড়ানো।

  4. যাচাইকরণ ব্যবস্থাকে উন্নত করাবর্তমানে, প্রাক-প্রমাণীকরণ মূলত স্বল্প-মেয়াদী পূর্বাভাসের উপর ভিত্তি করে করা হয়, যা তিনটি সময় ফ্রেম জুড়ে প্রসারিত হতে পারে এবং আরও জটিল যাচাইকরণ পদ্ধতি যেমন রোলিং উইন্ডো ক্রস যাচাইকরণ বাস্তবায়ন করে যা যাচাইকরণের নির্ভরযোগ্যতা বাড়ায়।

  5. উচ্চ পর্যায়ের ঝুঁকি ব্যবস্থাপনা: আরো জটিল ঝুঁকি ব্যবস্থাপনা প্রযুক্তির প্রবর্তন, যেমন গতিশীল স্টপ লস লেভেল, অস্থিরতা-সংশোধিত পজিশনের আকার, সংশ্লিষ্ট সম্পদের ঝুঁকিপূর্ণ মূল্য, এবং আরও উন্নত কৌশলগত ঝুঁকি-সংশোধিত আয়।

  6. আবেগ এবং মৌলিক একীকরণ: বাজারের আবেগ সূচক বা মৌলিক কারণগুলিকে মডেলের মধ্যে অন্তর্ভুক্ত করার বিষয়ে বিবেচনা করুন, যেমন উর্ধ্বগতি সূচক, সুদের পার্থক্য বা অর্থনৈতিক তথ্য প্রকাশের প্রভাব, আরও বিস্তৃত লেনদেনের সিদ্ধান্ত গ্রহণের কাঠামো তৈরি করুন।

সারসংক্ষেপ

মাল্টি-লেভেল স্ট্যাটিস্টিক রিগ্রেশন ট্রেডিং কৌশল একটি প্রযুক্তিগতভাবে উন্নত, সুবিবেচনার সাথে পরিকল্পিত পরিমাণগত ট্রেডিং সিস্টেম যা কঠোর পরিসংখ্যানগত যাচাইকরণ এবং বুদ্ধিমান ঝুঁকি নিয়ন্ত্রণের সাথে মিলিত মাল্টি-লেভেল লিনিয়ার রিগ্রেশন বিশ্লেষণের মাধ্যমে ট্রেডিং সিদ্ধান্তের জন্য একটি শক্ত গাণিতিক ভিত্তি সরবরাহ করে। এই কৌশলটির সবচেয়ে বড় সুবিধা হ’ল এটির বিস্তৃত বাজার বিশ্লেষণ ক্ষমতা এবং কঠোর পরিসংখ্যানগত পদ্ধতি, যা একই সাথে স্বল্প, মাঝারি এবং দীর্ঘমেয়াদী মূল্যের প্রবণতাগুলি বিবেচনা করে এবং এর পরিসংখ্যানগত তাত্পর্য পরীক্ষা করে কার্যকরভাবে নিম্নমানের সংকেতগুলিকে ফিল্টার করে।

কৌশলটির ইন্টিগ্রেটেড ওজনের ব্যবস্থা এবং স্বনির্ধারিত পজিশন ম্যানেজমেন্ট সিস্টেম এটিকে সংকেতের গুণমানের গতিশীলতার উপর ভিত্তি করে ট্রেডিং সিদ্ধান্ত এবং ঝুঁকির খোলার সমন্বয় করতে সক্ষম করে, এবং অন্তর্নির্মিত ব্যাকওয়েলিফিকেশন এবং দৈনিক ক্ষতির সীমাবদ্ধতা অতিরিক্ত সুরক্ষা প্রদান করে। একটি উন্নত ভিজ্যুয়াল ইন্টারফেস এবং পরিসংখ্যান ডেটা প্যানেল ব্যবসায়ীদের জন্য একটি স্বজ্ঞাত সিদ্ধান্ত সমর্থন সরঞ্জাম সরবরাহ করে।

যদিও এই কৌশলটি প্যারামিটার সংবেদনশীলতা, বাজার অবস্থার অভিযোজনযোগ্যতা এবং পরিসংখ্যানগত পশ্চাদপসরণের মতো সম্ভাব্য ঝুঁকির মধ্যে রয়েছে, তবে নিয়মিত প্যারামিটার অপ্টিমাইজেশন, বাজার পরিবেশের শ্রেণিবিন্যাস এবং পূর্বাভাস মডেলের বর্ধনের মতো দিকগুলির অপ্টিমাইজেশনের মাধ্যমে এর স্থিতিশীলতা এবং লাভজনকতা আরও বাড়ানো যেতে পারে। সামগ্রিকভাবে, এটি একটি উচ্চতর কৌশল যা পরিমাণগত আর্থিক প্রযুক্তির সাথে ব্যবহারিক লেনদেনের সুরক্ষার সাথে মিলিত হয়, বিশেষত পরিসংখ্যানগত পদ্ধতির কিছু জ্ঞান থাকা ব্যবসায়ীদের জন্য উপযুক্ত।

কৌশল সোর্স কোড
/*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)