মোমেন্টাম ব্রেকআউট ফ্ল্যাগ প্যাটার্ন ট্রেডিং কৌশল: ভলিউম এবং মূল্য নিশ্চিতকরণের উপর ভিত্তি করে ইন্ট্রাডে হাই ফ্রিকোয়েন্সি ট্রেডিং সিস্টেম

ATR SMA Bull Flag Pattern Volume Confirmation Risk-Reward Ratio Momentum Trading
সৃষ্টির তারিখ: 2025-03-26 15:03:51 অবশেষে সংশোধন করুন: 2025-03-26 15:03:51
অনুলিপি: 2 ক্লিকের সংখ্যা: 391
2
ফোকাস
319
অনুসারী

মোমেন্টাম ব্রেকআউট ফ্ল্যাগ প্যাটার্ন ট্রেডিং কৌশল: ভলিউম এবং মূল্য নিশ্চিতকরণের উপর ভিত্তি করে ইন্ট্রাডে হাই ফ্রিকোয়েন্সি ট্রেডিং সিস্টেম মোমেন্টাম ব্রেকআউট ফ্ল্যাগ প্যাটার্ন ট্রেডিং কৌশল: ভলিউম এবং মূল্য নিশ্চিতকরণের উপর ভিত্তি করে ইন্ট্রাডে হাই ফ্রিকোয়েন্সি ট্রেডিং সিস্টেম

ওভারভিউ

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

কৌশল নীতি

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

  1. ধ্রুবক চিহ্নিতকরণ

    • সিস্টেমটি প্রথমে একটি শক্তিশালী প্যাকেজিং ইমপ্লাস পিলার খুঁজবে।
    • K লাইন প্রস্থটি সেট করা ATR গুণের চেয়ে বড় হতে হবে (ডিফল্ট ২.০ গুণ)
    • লেনদেনের পরিমাণ গড় লেনদেনের পরিমাণের চেয়ে বেশি হতে হবে (ডিফল্ট 1.5 গুণ)
    • শুধুমাত্র সক্রিয় লেনদেনের সময় (৯ঃ৩০-১২ঃ০০) সনাক্তকরণ
  2. পুনঃনির্ধারণ নিশ্চিত

    • একটি ধাক্কা চিহ্নিত হয়ে গেলে, সিস্টেমটি পতাকা আকৃতির ট্র্যাকিং মোডে চলে যায়
    • সর্বনিম্ন মূল্য রেকর্ড করুন এবং রিটার্নের শতাংশ গণনা করুন
    • যদি রিডিং সর্বাধিক রিডিং শতাংশ (ডিফল্ট 50%) অতিক্রম করে বা সর্বোচ্চ রিডিং K লাইন (ডিফল্ট 5 টি) অতিক্রম করে, তবে এই সংকেতটি পরিত্যাগ করুন
  3. প্রথমবারের মতো

    • যখন দাম উদ্ভাবনী হয় এবং লেনদেনের পরিমাণ গড় লেনদেনের সংখ্যার চেয়ে বেশি হয় (ডিফল্ট 1.0x) এবং 100,000 এর বেশি হয় তখন আরও বেশি প্রবেশ করুন
    • পরবর্তী কে-লাইন ডিস্ক খোলার সময় প্রবেশ করুন
    • স্টপ লস সেটিং রিসেট সর্বনিম্ন
  4. স্মার্ট প্রস্থান ব্যবস্থা

    • রিস্ক ভিত্তিক রিটার্নের চেয়ে লাভের লক্ষ্য নির্ধারণ করুন (ডিফল্ট ২.০, অর্থাৎ ঝুঁকির দ্বিগুণ)
    • পরিমাণে ট্রিগার করা বেরিয়ে যাওয়ার ব্যবস্থাঃ যখন ট্রেডের পরিমাণ প্রবেশের পরে যে কোন K লাইন থেকে বড় হয় এবং শূন্য লাইন হয়, তখন ৫০% পজিশন থেকে বেরিয়ে আসা
    • যদি আরও বেশি লেনদেনের সম্ভাবনা দেখা দেয়, তবে অবশিষ্ট অবস্থান থেকে সম্পূর্ণরূপে বেরিয়ে আসুন

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

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

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

  1. স্বয়ংক্রিয়ভাবে গরুর পতাকা সনাক্তকরণঐতিহ্যগতভাবে, পতাকা আকৃতি সনাক্তকরণের জন্য ব্যবসায়ীদের দ্বারা ম্যানুয়াল বিশ্লেষণের প্রয়োজন হয়, যা বিষয়গত বিষয়গুলির দ্বারা প্রভাবিত হতে পারে। এই কৌশলটি একটি সুস্পষ্ট গাণিতিক মডেল এবং প্যারামিটার দ্বারা সেট করা হয়েছে, যা একটি উদ্দেশ্যমূলক এবং সুসংগত আকৃতি সনাক্তকরণ অর্জন করে, যা মানুষের হস্তক্ষেপকে হ্রাস করে।

  2. পরিমাণ-মূল্য সম্পর্কিত সংকেত নিশ্চিতকরণএই কৌশলটি কেবলমাত্র মূল্যের ব্রেকআউটের দিকে নজর দেয় না, তবে লেনদেনের পরিমাণ নিশ্চিত করার জন্য ((> 100,000 এবং গড়ের চেয়ে বেশি), কার্যকরভাবে “মিথ্যা ব্রেকআউট” ফিল্টার করে এবং লেনদেনের সংকেতের নির্ভরযোগ্যতা বাড়ায়।

  3. সময় ফিল্টারসকালের ট্রেডিংয়ের সময় (৯ঃ৩০-১২ঃ০০) এ ট্রেডিংয়ের উপর দৃষ্টি নিবদ্ধ করা, যা সাধারণত উচ্চতর তরলতা এবং অস্থিরতার সাথে থাকে, গতিশীল ট্রেডিং কৌশলগুলির জন্য উপযুক্ত, যা সাফল্যের হার বাড়িয়ে তুলতে পারে।

  4. গতিশীল ঝুঁকি ব্যবস্থাপনা

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

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

কৌশলগত ঝুঁকি

এই কৌশলটির অনেক সুবিধা থাকলেও, এর ঝুঁকি ও চ্যালেঞ্জ রয়েছেঃ

  1. স্লাইড পয়েন্ট এবং তরলতা ঝুঁকি: ছোট স্টকগুলির জন্য কৌশল, এই ধরণের স্টকগুলি সাধারণত কম তরল হয়, যার ফলে বড় স্লাইডিং হতে পারে, যা প্রকৃত কার্যকর মূল্য এবং তাত্ত্বিক প্রবেশের মূল্যের পার্থক্যকে প্রভাবিত করে।

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

    • সমাধানঃ মার্কেট স্ট্যাটাস ফিল্টার যোগ করার কথা ভাবুন, অথবা বিভিন্ন সময়সীমার উপর ভিত্তি করে প্যারামিটারগুলি সামঞ্জস্য করুন।
  3. সিস্টেম প্যারামিটার সংবেদনশীলতা: একাধিক গুরুত্বপূর্ণ প্যারামিটার (যেমন, ATR গুণন, লেনদেনের পরিমাণ হ্রাস) সুনির্দিষ্টভাবে সামঞ্জস্য করা প্রয়োজন, এবং বিভিন্ন প্যারামিটার সমন্বয়গুলি ভিন্ন ভিন্ন ফলাফলের দিকে পরিচালিত করতে পারে।

    • সমাধানঃ একটি শক্তিশালী প্যারামিটার সমন্বয় খুঁজে বের করার জন্য একটি বিস্তৃত পুনরাবৃত্তি এবং প্যারামিটার অপ্টিমাইজেশন চালান।
  4. বাজারের ঝুঁকি: উচ্চ অস্থিরতার বাজারে, এটিআর মান দ্রুত পরিবর্তিত হতে পারে, যার ফলে সংকেতের গুণমান অস্থির হতে পারে।

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

    • সমাধানঃ বিভিন্ন বাজার পরিবেশে এবং সময়ের মধ্যে ব্যাক-টেস্টিং, বিভিন্ন অবস্থার অধীনে কৌশলটির কার্যকারিতা মূল্যায়ন করা।
  6. স্থির ক্ষতির ঝুঁকি: রিটার্নের নিম্নে স্টপ-লস সেট করা কিছু কার্যকর লেনদেনকে স্বল্পমেয়াদী অস্থিরতার কারণে স্টপ-লস করতে পারে।

    • সমাধানঃ একটি গতিশীল স্টপ স্ট্র্যাটেজি বা ওঠানামার উপর ভিত্তি করে স্টপ সেটিং ব্যবহার করার কথা বিবেচনা করুন।

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

নীতি কোড বিশ্লেষণের উপর ভিত্তি করে, নিম্নলিখিত কয়েকটি সম্ভাব্য অপ্টিমাইজেশান দিক রয়েছেঃ

  1. স্বনির্ধারিত প্যারামিটার সেটিং

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

    • সামগ্রিক বাজার প্রবণতা ফিল্টার যুক্ত করুন, কেবলমাত্র বড় বাজার প্রবণতার সাথে সামঞ্জস্য থাকলে ট্রেড করুন
    • তুলনামূলক শক্তির সূচক (RSI) বা গতিশীল ওসিলারগুলির সাথে একত্রিত হয়ে কেবলমাত্র শক্তিশালী স্টকগুলিতে একটি ষাঁড়ের পতাকা আকৃতির সন্ধান করা নিশ্চিত করুন
    • বাস্তবায়ন পদ্ধতিঃ মেজর ইন্ডেক্স ট্রেন্ড বিচার লজিক যোগ করা, বা মেজর ইন্ডেক্সের তুলনামূলক শক্তির তুলনা করা
  3. উত্তরণ কৌশল উন্নত করা

    • বর্তমান কৌশলগত প্রস্থানগুলি মূলত স্থির ঝুঁকি-রিটার্ন অনুপাত এবং লেনদেনের পরিমাণের উপর ভিত্তি করে ট্রিগার করা হয়, আরও নমনীয় প্রস্থান ব্যবস্থা যুক্ত করা যেতে পারে
    • ক্রমবর্ধমান দামের সাথে স্বয়ংক্রিয়ভাবে স্টপ পজিশনে সামঞ্জস্য করার জন্য কন্ট্রোলিং স্টপ ব্যবহার করার কথা বিবেচনা করুন
    • প্রযুক্তিগত সূচকগুলির উপর ভিত্তি করে একটি প্রস্থান সংকেত যোগ করুন, যেমন MACD ক্রস বা RSI ওভারবয় অঞ্চল
    • বাস্তবায়ন পদ্ধতিঃ একাধিক প্রস্থান শর্তের সাথে একত্রিত একটি জটিল প্রস্থান লজিক ডিজাইন করুন
  4. ট্রেডিং সময় উইন্ডো প্রসারিত

    • অন্যান্য ট্রেডিং সময়ের মধ্যে কৌশলটির কার্যকারিতা মূল্যায়ন করুন, সম্ভবত বিভিন্ন সময়ের জন্য অপ্টিমাইজড প্যারামিটার সেটগুলি প্রসারিত বা তৈরি করুন
    • বিশেষ করে কিছু শেয়ারের শেষের দিকে লেনদেনের সুযোগের দিকে নজর দেওয়া উচিত, যেগুলো বন্ধ হওয়ার আগে উল্লেখযোগ্য গতিশীলতা অর্জন করতে পারে।
    • বাস্তবায়ন পদ্ধতিঃ বিভিন্ন সময়কালের জন্য বিভিন্ন প্যারামিটার ব্যবহার করে সময়কালের শর্তাধীন শাখা তৈরি করা
  5. মেশিন লার্নিং মডেল ইন্টিগ্রেশন

    • মেশিন লার্নিং অ্যালগরিদম ব্যবহার করে পতাকা আকৃতির বিপর্যয়ের সম্ভাবনা অনুমান করা
    • ঐতিহাসিক তথ্যের উপর ভিত্তি করে প্রশিক্ষণ মডেলের মাধ্যমে, সবচেয়ে সফল পতাকা আকৃতির বৈশিষ্ট্যগুলির সংমিশ্রণ চিহ্নিত করা হয়েছে
    • বাস্তবায়ন পদ্ধতিঃ সফল এবং ব্যর্থ লেনদেনের বৈশিষ্ট্যগত তথ্য সংগ্রহ করা, শ্রেণিবদ্ধকরণ মডেলকে অতিরিক্ত ফিল্টার স্তর হিসাবে প্রশিক্ষণ দেওয়া
  6. ঝুঁকি ব্যবস্থাপনা অপ্টিমাইজেশান

    • অ্যাকাউন্টের আকারের উপর ভিত্তি করে ডায়নামিক পজিশন ম্যানেজমেন্ট
    • সাম্প্রতিক লেনদেনের ফলাফলের উপর ভিত্তি করে ঝুঁকির প্রান্তিককরণ, ধারাবাহিক ক্ষতির পরে অত্যধিক ঝুঁকি এড়ানো
    • বাস্তবায়ন পদ্ধতিঃ অ্যাকাউন্টের আকারের ভেরিয়েবল এবং পারফরম্যান্স ট্র্যাকিং লজিক যুক্ত করুন

সারসংক্ষেপ

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

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

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

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

কৌশল সোর্স কোড
/*backtest
start: 2024-03-26 00:00:00
end: 2025-03-25 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy(title="Small Cap Bull Flag Pattern Trader v2", shorttitle="BullFlag_1L", overlay=true)
// (1) INPUTS & VARIABLES
impulseATRMultiplier=input.float(2.0,"Impulse:Min Candle Range in ATR"),impulseVolumeMultiplier=input.float(1.5,"Impulse:Vol vs. Avg"),avgVolLen=input.int(20,"Vol SMA Len"),atrLen=input.int(14,"ATR Len"),maxPullbackPct=input.float(50.0,"Max Pullback(%)"),maxPullbackBars=input.int(5,"Max Pullback Bars"),breakoutVolumeMult=input.float(1.0,"Breakout Vol vs. Avg"),rrRatio=input.float(2.0,"R:R Target")
bool sessActive=not na(time(timeframe.period,"0930-1200"))
var bool inFlag=false,var bool partialExitUsed=false,var float flagImpulseHigh=0.0,flagImpulseLow=0.0,pullbackLow=0.0,var float maxVolSinceEntry=0.0
var int pullbackBars=0
// (2) INDICATORS
volAvg=ta.sma(volume,avgVolLen),atrVal=ta.atr(atrLen),candleRange=high-low,isImpulseBar=close>open and candleRange>=impulseATRMultiplier*atrVal and volume>=impulseVolumeMultiplier*volAvg
// (3) IMPULSE DETECTION
if barstate.isnew and isImpulseBar and sessActive
    inFlag:=true,flagImpulseHigh:=high,flagImpulseLow:=low,pullbackLow:=low,pullbackBars:=0
// (4) FLAG,PULLBACK,BREAKOUT
if inFlag and sessActive
    pullbackBars+=1,pullbackLow:=math.min(pullbackLow,low),retracementPct=(flagImpulseHigh-pullbackLow)/(flagImpulseHigh-flagImpulseLow)*100
    inFlag:=retracementPct>maxPullbackPct or pullbackBars>maxPullbackBars?false:inFlag
    newHigh=high>high[1],breakoutVolOk=volume>=breakoutVolumeMult*volAvg and volume>100000
    if newHigh and breakoutVolOk
        strategy.entry("Long Flag Breakout",strategy.long)
        stopLevel=pullbackLow,approxEntry=close,risk=approxEntry-stopLevel,target=approxEntry+rrRatio*risk
        strategy.exit("StopTargetExit","Long Flag Breakout",stop=stopLevel,limit=target)
        partialExitUsed:=false,maxVolSinceEntry:=volume
        inFlag:=false
// (5) PARTIAL EXIT ON HIGHEST-VOLUME RED CANDLE
posSize=strategy.position_size
if posSize>0
    // Update maxVolSinceEntry each bar while in a trade
    float oldMaxVol=maxVolSinceEntry
    maxVolSinceEntry:=math.max(maxVolSinceEntry,volume)
    // If we have a NEW highest volume (volume>oldMaxVol) AND candle is red (close<open)
    newMaxVol=(volume>oldMaxVol) and (close<open)
    if newMaxVol
        if not partialExitUsed
            // First big red candle => exit 50%
            strategy.close("PartialVolExit","Long Flag Breakout",qty_percent=50)
            partialExitUsed:=true
        else
            // Second big red candle => exit remainder
            strategy.close("FullVolExit","Long Flag Breakout",qty_percent=100)
// (6) PLOTS
plotshape(isImpulseBar,style=shape.triangleup,color=color.new(color.lime,0),size=size.tiny,title="Impulse Bar")
plot(inFlag?flagImpulseHigh:na,color=color.yellow,style=plot.style_line,linewidth=2,title="Impulse High")
plot(inFlag?pullbackLow:na,color=color.teal,style=plot.style_line,linewidth=2,title="Pullback Low")