মাল্টি-ইন্ডিকেটর ইন্টিগ্রেটেড ট্রেন্ড ফলোয়িং ট্রেডিং কৌশল

EMA RSI ADX OBV ATR 趋势跟踪 突破形态 背离 风险管理 交易时段 量价关系
সৃষ্টির তারিখ: 2025-04-10 15:37:00 অবশেষে সংশোধন করুন: 2025-04-10 15:37:00
অনুলিপি: 0 ক্লিকের সংখ্যা: 326
2
ফোকাস
319
অনুসারী

মাল্টি-ইন্ডিকেটর ইন্টিগ্রেটেড ট্রেন্ড ফলোয়িং ট্রেডিং কৌশল মাল্টি-ইন্ডিকেটর ইন্টিগ্রেটেড ট্রেন্ড ফলোয়িং ট্রেডিং কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি নিম্নলিখিত মূল নীতির উপর ভিত্তি করে কাজ করেঃ

  1. ট্রেন্ড সনাক্তকরণ সিস্টেম: দ্রুত ইএমএ ((50 চক্র) এবং ধীর ইএমএ ((200 চক্র) এর ক্রস এবং অবস্থান সম্পর্ক ব্যবহার করে বাজারের প্রধান প্রবণতার দিক নির্ণয় করুন। যখন দ্রুত ইএমএ ধীর ইএমএর উপরে থাকে, তখন একটি উত্থান প্রবণতা নিশ্চিত করা হয়; বিপরীতভাবে, একটি পতন প্রবণতা নিশ্চিত করা হয়।

  2. তীব্রতা পরিমাপ: কাস্টমাইজড এডিএক্স সূচক দ্বারা প্রবণতা শক্তি পরিমাপ করুন, শুধুমাত্র যখন এডিএক্স মান সেট থ্রেশহোল্ড ((ডিফল্ট 20) এর চেয়ে বড় হয় তখনই ট্রেড করুন, দুর্বল প্রবণতা বা বাজারের ঝড় এড়াতে।

  3. মাল্টি-লেভেল নিশ্চিতকরণ ব্যবস্থা: “aiStrength” নামে একটি স্মার্ট সিগন্যাল সিস্টেম তৈরি করা হয়েছে, যা পাঁচটি মূল বাজার বিষয়কে একত্রিত করেঃ

    • EMA-এর প্রবণতা
    • OBV প্রবণতা
    • এডিএক্স প্রবণতা
    • গ্রাস করা
    • স্বল্পমেয়াদী ও মধ্যমেয়াদী ইএমএ ক্রস ট্রেডিং সিগন্যাল তখনই তৈরি হয় যখন কমপক্ষে চারটি কারণ একসাথে নিশ্চিত হয়।
  4. K-রৈখিক বৈধতা: ট্রেন্ড রিভার্স বা ট্রিগারিংয়ের নিশ্চিতকরণ সংকেত হিসেবে ক্রসস্টার এবং সুইচড লাইনের মতো বিশেষ K-লাইনের আকৃতির অতিরিক্ত সনাক্তকরণ

  5. অর্ডার নিশ্চিত: ২০ চক্রের গড় লেনদেনের ১.৫ গুণ বেশি লেনদেনের প্রয়োজন, যাতে নিশ্চিত করা যায় যে বাজারে পর্যাপ্ত অংশগ্রহণ রয়েছে যাতে দামের পরিবর্তনকে সমর্থন করা যায়।

  6. চিহ্নিতকরণের বাইরে: RSI এবং ADX এর মধ্যে মূল্যের বিচ্যুতি সনাক্তকরণ, যা প্রবণতার সম্ভাব্য বিপরীত হওয়ার একটি প্রাথমিক সতর্ক সংকেত হিসাবে কাজ করে।

  7. বাজারের ঝড়: মূল্যের অস্থিরতার পরিসীমা এবং ADX এবং RSI এর সমন্বিত বিশ্লেষণের মাধ্যমে শক বাজার সনাক্ত করুন এবং এড়ান।

  8. ট্রেডিং সময় অপ্টিমাইজেশান: নির্দিষ্ট ট্রেডিং সময়ের মধ্যে ট্রেডিং সীমাবদ্ধ করুন (UTC + 7 সময় অঞ্চল 14: 00-23: 00), প্রধান বাজার সক্রিয় সময়ের সাথে সামঞ্জস্যপূর্ণ, সংকেতের গুণমান উন্নত করুন।

  9. গতিশীল ঝুঁকি ব্যবস্থাপনা: এটিআর-এর উপর ভিত্তি করে গতিশীলভাবে স্টপ-ড্রপ লেভেল সেট করুন এবং ট্র্যাকিং স্টপ-ড্রপ মেকানিজম ব্যবহার করুন। একাধিক লাভের জন্য রিস্ক-রিটার্ন অনুপাত ২.০ সেট করুন এবং এটিআর-এর ১.৫ গুণ ট্র্যাকিং স্টপ-ড্রপ সুরক্ষা ব্যবহার করুন।

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

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

  2. নমনীয়তাকৌশলটি ATR-ভিত্তিক স্টপ-ড্রপ সেটিং ব্যবহার করে, যা স্বয়ংক্রিয়ভাবে বিভিন্ন বাজারের অস্থিরতার সাথে খাপ খাইয়ে নেয় এবং উচ্চ অস্থিরতা এবং নিম্ন অস্থিরতা উভয় ক্ষেত্রেই কার্যকর থাকে।

  3. উচ্চতা পরিস্রাবণ সিস্টেম: প্রবণতা দিকনির্দেশ, শক্তি নিশ্চিতকরণ, লেনদেনের পরিমাণ যাচাইকরণ, কে লাইন আকৃতি, লেনদেনের সময় ইত্যাদির একাধিক শর্তাদির মাধ্যমে, প্রচুর পরিমাণে নিম্নমানের সংকেতগুলি কার্যকরভাবে ফিল্টার করা হয়েছে, যা লেনদেনের সংকেতের নির্ভরযোগ্যতা উল্লেখযোগ্যভাবে উন্নত করেছে।

  4. বাজারের ঝড়ের স্মার্ট স্বীকৃতি: কৌশলটি বাজারের শক সনাক্তকরণ ব্যবস্থাকে অন্তর্নির্মিত করে, যখন বাজারটি স্পষ্টতই হ্রাসপ্রাপ্ত অবস্থায় থাকে তখন সক্রিয়ভাবে লেনদেন এড়াতে, উচ্চ অনিশ্চয়তার পরিবেশে ক্ষতির ঝুঁকি হ্রাস করে।

  5. গতিশীল মুনাফা সুরক্ষাএটিআর-ভিত্তিক ট্র্যাকিং স্টপ লস অ্যাপ্লিকেশনটি পর্যাপ্ত যাতায়াতের স্থান সংরক্ষণের সাথে সাথে ঝুঁকি এবং রিটার্নের ভারসাম্য বজায় রেখে লাভের জন্য কার্যকরভাবে লক করতে সক্ষম।

  6. ফর্ম এবং সূচকের সমন্বয়: ঐতিহ্যবাহী প্রযুক্তিগত বিশ্লেষণের K-রেখা আকৃতির (গর্জন, ক্রুশ, সুইচযুক্ত লাইন) আধুনিক প্রযুক্তিগত সূচকগুলির সাথে একত্রিত করা, তাদের দৈর্ঘ্য গ্রহণ করা, একে অপরকে প্রমাণিত করা।

  7. সতর্কতা ব্যবস্থা থেকে সরে আসা: RSI এবং ADX এর মধ্যে বিচ্ছিন্নতা শনাক্ত করে এবং সম্ভাব্য প্রবণতা দুর্বলতা বা আসন্ন বিপরীতের সংকেতগুলি আগে থেকেই সনাক্ত করে কৌশলটির পূর্বাভাস বাড়ানো হয়েছে।

  8. ট্রেডিং সময় অপ্টিমাইজেশান

কৌশলগত ঝুঁকি

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

  2. প্যারামিটার অপ্টিমাইজেশান চ্যালেঞ্জ: কৌশলটি একাধিক প্যারামিটার সেটিং (যেমন ইএমএ দৈর্ঘ্য, আরএসআই চক্র, এডিএক্স থ্রেশহোল্ড ইত্যাদি) জড়িত। বিভিন্ন বাজার পরিস্থিতিতে বিভিন্ন প্যারামিটার সমন্বয় প্রয়োজন হতে পারে, যা প্যারামিটার অপ্টিমাইজেশনের জটিলতা বাড়ায়।

  3. অস্থির ট্রেডিং ফ্রিকোয়েন্সি: কঠোর প্রবেশের শর্তের কারণে, কিছু বাজার পর্যায়ে দীর্ঘ সময় ধরে কোনও লেনদেনের সংকেত থাকতে পারে না, তহবিলের ব্যবহারের দক্ষতার উপর প্রভাব ফেলে। সমাধানটি হ’ল লেনদেনযোগ্য বাজার জাতগুলি বাড়ানোর কথা বিবেচনা করা বা কিছু শর্ত যথাযথভাবে শিথিল করা।

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

  5. বাজার পরিস্থিতি সম্পর্কে ভুল ধারণা: কৌশলগত ঝড়ের বাজার সনাক্তকরণ প্রক্রিয়া কার্যকর হলেও, কিছু জটিল বাজার পরিবেশে ভুল বিচার করা, মূল্যবান ব্যবসায়ের সুযোগগুলি ভুলভাবে ফিল্টার করা বা ভুলভাবে অনুপযুক্ত বাজারে প্রবেশ করা যেতে পারে।

  6. অ্যালগরিদমের জটিলতার ঝুঁকি: কৌশলগত যুক্তি জটিল, একাধিক শর্তযুক্ত বিচার প্রক্রিয়া ত্রুটি বা লজিকাল দ্বন্দ্বের কারণ হতে পারে, কঠোর প্রতিক্রিয়া এবং রিয়েল-স্টোর পর্যবেক্ষণের মাধ্যমে কৌশলগত স্থায়িত্ব নিশ্চিত করা প্রয়োজন।

  7. অতিরিক্ত ফিট হওয়ার ঝুঁকিযেহেতু কৌশলটি একাধিক সূচক এবং শর্ত ব্যবহার করে, তাই ঐতিহাসিক তথ্যের সাথে অতিরিক্ত মিলের ঝুঁকি রয়েছে, যা ভবিষ্যতে প্রত্যাশার চেয়ে কম বাস্তব কর্মক্ষমতা সৃষ্টি করতে পারে। বিভিন্ন সময়সীমা এবং বাজারের অবস্থার অধীনে পুঙ্খানুপুঙ্খ পরীক্ষার পরামর্শ দেওয়া হয়।

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

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

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

  3. প্রবেশের সময় নির্ধারণ: বাজারের মাইক্রোস্ট্রাকচারের উপর ভিত্তি করে প্রবেশের অপ্টিমাইজেশান যুক্ত করা যেতে পারে, যেমন সমর্থন / প্রতিরোধের ব্রেকথ্রু নিশ্চিতকরণ, মূল্যের অস্থিরতা বিশ্লেষণ ইত্যাদি, যা প্রবেশের পয়েন্টের নির্ভুলতা আরও বাড়িয়ে তুলতে পারে।

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

  5. মাল্টি টাইম ফ্রেম বিশ্লেষণ: একাধিক টাইম ফ্রেম বিশ্লেষণের প্রবর্তন কৌশলটির কার্যকারিতা উল্লেখযোগ্যভাবে বাড়িয়ে তুলতে পারে, উদাহরণস্বরূপ, একটি বৃহত্তর টাইম ফ্রেম ব্যবহার করে (যেমন 1 ঘন্টা বা 4 ঘন্টা) মূল প্রবণতার দিকনির্দেশ নিশ্চিত করে এবং তারপরে 15 মিনিটের চার্টে নির্দিষ্ট প্রবেশের পয়েন্টগুলি সন্ধান করে, বিপরীত ট্রেডিংয়ের ঝুঁকি হ্রাস করে।

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

  7. স্টপ লস কৌশল বিশ্লেষণ

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

সারসংক্ষেপ

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

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

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

কৌশল সোর্স কোড
/*backtest
start: 2025-03-10 00:00:00
end: 2025-04-07 00:00:00
period: 2m
basePeriod: 2m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("TUONG HA GBP M15 Trend Strategy NHIEU CHI BAO TICH HOP", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === INPUTS ===
emaFastLen = input.int(50, "EMA Fast", minval=10, maxval=200, step=5)
emaSlowLen = input.int(200, "EMA Slow", minval=50, maxval=500, step=10)
rsiLen = input.int(14, "RSI Length")
adsLen = input.int(14, "ADX Length")
adxThreshold = input.int(20, "ADX Threshold")
atrLen = input.int(14, "ATR Length")
rrRatio = input.float(2.0, "Risk-Reward Ratio", step=0.1)
trailOffset = input.float(1.5, "Trailing Stop ATR Multiplier", step=0.1)
volumeMultiplier = input.float(1.5, "Volume Multiplier Threshold", step=0.1)

// === SESSIONS (London + New York in VN Time UTC+7) ===
startHour = 14
endHour = 23
inSession = (hour >= startHour and hour <= endHour)

// === INDICATORS ===
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
rsi = ta.rsi(close, rsiLen)
at = ta.atr(atrLen)

// === CUSTOM ADX FUNCTION ===
upMove = high - high[1]
downMove = low[1] - low
plusDM = (upMove > downMove and upMove > 0) ? upMove : 0
minusDM = (downMove > upMove and downMove > 0) ? downMove : 0
trur = ta.tr(true)
plusDI = 100 * ta.rma(plusDM, adsLen) / ta.rma(trur, adsLen)
minusDI = 100 * ta.rma(minusDM, adsLen) / ta.rma(trur, adsLen)
adx = 100 * ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI), adsLen)

// === OBV TREND ===
obv = ta.cum(close > close[1] ? volume : close < close[1] ? -volume : 0)
obvTrend = obv > obv[1]

// === VOLUME FILTER ===
avgVol = ta.sma(volume, 20)
highVol = volume > avgVol * volumeMultiplier

// === SIDEWAY DETECTION ===
rng = ta.highest(high, 20) - ta.lowest(low, 20)
rngCloseRatio = close != 0 ? (rng / close) : na
sideway = na(rngCloseRatio) ? false : (rngCloseRatio < 0.003 and adx < adxThreshold and (rsi > 45 and rsi < 55))

// === ENGULFING ===
bullishEngulf = close[1] < open[1] and close > open and close > open[1] and open < close[1]
bearishEngulf = close[1] > open[1] and close < open and close < open[1] and open > close[1]

// === DOJI AND PIN BAR ===
doji = math.abs(open - close) <= (high - low) * 0.1
pinBar = (high - math.max(open, close)) > 2 * math.abs(open - close) and (math.min(open, close) - low) < (high - low) * 0.25

// === AI SIGNALS ENHANCED ===
aiStrength = 0
aiStrength := aiStrength + (emaFast > emaSlow ? 1 : 0)
aiStrength := aiStrength + (obvTrend ? 1 : 0)
aiStrength := aiStrength + (adx > adxThreshold ? 1 : 0)
aiStrength := aiStrength + (bullishEngulf ? 1 : 0)
aiStrength := aiStrength + (ta.crossover(ta.ema(close, 5), ta.ema(close, 21)) ? 1 : 0)
aiSignalLong = aiStrength >= 4

aioStrengthS = 0
aioStrengthS := aioStrengthS + (emaFast < emaSlow ? 1 : 0)
aioStrengthS := aioStrengthS + (not obvTrend ? 1 : 0)
aioStrengthS := aioStrengthS + (adx > adxThreshold ? 1 : 0)
aioStrengthS := aioStrengthS + (bearishEngulf ? 1 : 0)
aioStrengthS := aioStrengthS + (ta.crossunder(ta.ema(close, 5), ta.ema(close, 21)) ? 1 : 0)
aiSignalShort = aioStrengthS >= 4

// === HIGHS AND LOWS DETECTION ===
highestHigh = ta.highest(high, 50)
lowestLow = ta.lowest(low, 50)
plot(highestHigh, title="Highest High", color=color.fuchsia, linewidth=1, style=plot.style_line)
plot(lowestLow, title="Lowest Low", color=color.teal, linewidth=1, style=plot.style_line)

// === RSI DIVERGENCE ===
priceHigherHigh = high > high[1] and high[1] > high[2]
rsiLowerHigh = rsi < rsi[1] and rsi[1] > rsi[2]
shortDiv = priceHigherHigh and rsiLowerHigh

priceLowerLow = low < low[1] and low[1] < low[2]
rsiHigherLow = rsi > rsi[1] and rsi[1] < rsi[2]
longDiv = priceLowerLow and rsiHigherLow

// === ADX DIVERGENCE ===
priceHigherHighADX = high > high[1] and high[1] > high[2]
adxLowerHigh = adx < adx[1] and adx[1] > adx[2]
adxBearishDiv = priceHigherHighADX and adxLowerHigh

priceLowerLowADX = low < low[1] and low[1] < low[2]
adxHigherLow = adx > adx[1] and adx[1] < adx[2]
adxBullishDiv = priceLowerLowADX and adxHigherLow

// === CONDITIONS ===
trendUp = emaFast > emaSlow
trendDn = emaFast < emaSlow

longCond = trendUp and rsi > 50 and obvTrend and adx > adxThreshold and bullishEngulf and aiSignalLong and inSession and not sideway and highVol and (pinBar or doji or longDiv or adxBullishDiv)
shortCond = trendDn and rsi < 50 and not obvTrend and adx > adxThreshold and bearishEngulf and aiSignalShort and inSession and not sideway and highVol and (pinBar or doji or shortDiv or adxBearishDiv)

// === ENTRY + SL/TP + TRAILING ===
longSL = close - at
longTP = close + at * rrRatio
shortSL = close + at
shortTP = close - at * rrRatio

plotshape(longCond, location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, title="Buy Signal")
plotshape(shortCond, location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, title="Sell Signal")

if (longCond)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long TP/SL", from_entry="Long", stop=longSL, limit=longTP, trail_points=at * trailOffset, trail_offset=at * trailOffset)
    label.new(bar_index, high, "Buy", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.normal)
    alert("Long Signal!", alert.freq_once_per_bar)

if (shortCond)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short TP/SL", from_entry="Short", stop=shortSL, limit=shortTP, trail_points=at * trailOffset, trail_offset=at * trailOffset)
    label.new(bar_index, low, "Sell", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.normal)
    alert("Short Signal!", alert.freq_once_per_bar)

// === PLOTS ===
plot(emaFast, color=color.orange, title="EMA Fast")
plot(emaSlow, color=color.blue, title="EMA Slow")
bgcolor(sideway ? color.new(color.gray, 90) : na)

// === COLORING BARS ===
barcolor(longCond ? color.new(color.green, 0) : shortCond ? color.new(color.red, 0) : na)