কাউন্টারট্রেন্ড ব্রেকআউট ট্রেডিং সিস্টেম: বহু-দিনের মূল্য প্যাটার্ন এবং অস্থিরতা ফিল্টারিংয়ের উপর ভিত্তি করে পরিমাণগত কৌশল

ATR SMA
সৃষ্টির তারিখ: 2025-02-25 10:49:30 অবশেষে সংশোধন করুন: 2025-02-25 10:49:30
অনুলিপি: 2 ক্লিকের সংখ্যা: 598
2
ফোকাস
319
অনুসারী

কাউন্টারট্রেন্ড ব্রেকআউট ট্রেডিং সিস্টেম: বহু-দিনের মূল্য প্যাটার্ন এবং অস্থিরতা ফিল্টারিংয়ের উপর ভিত্তি করে পরিমাণগত কৌশল কাউন্টারট্রেন্ড ব্রেকআউট ট্রেডিং সিস্টেম: বহু-দিনের মূল্য প্যাটার্ন এবং অস্থিরতা ফিল্টারিংয়ের উপর ভিত্তি করে পরিমাণগত কৌশল

ওভারভিউ

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

কৌশল নীতি

বিপরীতমুখী ট্রেডিং সিস্টেম নিম্নলিখিত মূল নীতির উপর ভিত্তি করে কাজ করেঃ

  1. প্রবেশের শর্ত:

    • দামের আচরণে ট্রিগার: যখন বাজারে পরপর ৩ টি লাল কলাম দেখা দেয় ((প্রতিদিনের বন্ধের মূল্য খোলার দামের চেয়ে কম হয়), সিস্টেমটি সম্ভাব্য ওভারসোল্ড অবস্থা হিসাবে চিহ্নিত করে এবং আরও বেশি প্রবেশের জন্য প্রস্তুত থাকে।
    • চলমান হার ফিল্টার: শুধুমাত্র তখনই প্রবেশের অনুমতি দেওয়া হয় যখন বর্তমান ATR (অর্ধ-সত্যিকারের তরঙ্গবিন্যাস, ডিফল্ট চক্র ১২) তার ৩০ দিনের সরল চলমান গড়ের চেয়ে বড় হয়। এটি নিশ্চিত করে যে বাজারে লেনদেনের পক্ষে যথেষ্ট অস্থিরতা রয়েছে।
  2. খেলার শর্ত:

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

    • সর্বাধিক লেনদেনের সময়কাল (দিন): ডিফল্ট ২২ দিন।
    • এটিআর চক্রঃ ডিফল্ট ১২ দিন
    • ৩টি সবুজ স্তম্ভ ব্যবহার করে খেলুনঃ এই খেলার শর্তটি সক্রিয় বা নিষ্ক্রিয় করা যেতে পারে।

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

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

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

  1. বিপরীতমুখী চিন্তাধারাএই কৌশলটি বাজারের ধারাবাহিক পতনের পরে প্রবেশের জন্য বিপরীতমুখী চিন্তাভাবনা ব্যবহার করে, যা ক্লাসিক ট্রেডিং জ্ঞানের সাথে সামঞ্জস্যপূর্ণ “ভীতিতে কেনা” এবং ওভারসেলের প্রতিক্রিয়া সুযোগগুলি ধরতে সহায়তা করে।

  2. অস্থিরতা ফিল্টার: বর্তমান এটিআরকে তার ৩০ দিনের চলমান গড়ের চেয়ে বড় করার জন্য অনুরোধ করে, কৌশলটি নিশ্চিত করে যে কেবলমাত্র বাজারে পর্যাপ্ত অস্থিরতা থাকলে ট্রেডিং করা হয়, কম অস্থিরতার সাথে সমাপ্তির বাজারে প্রবেশ করা এড়ানো হয়।

  3. স্পষ্ট খেলার ব্যবস্থাকৌশলটি দুটি প্রকারের প্রস্থান ব্যবস্থা প্রদান করেঃ একটি বিপরীত সিগন্যাল ভিত্তিক প্রস্থান এবং একটি সময় ভিত্তিক প্রস্থান, যা ব্যবসায়ীদের ঝুঁকি পরিচালনা করতে এবং দীর্ঘমেয়াদী ট্রেডিং স্থবিরতা রোধ করতে সক্ষম করে।

  4. প্যারামিটার কাস্টমাইজযোগ্যতা: সর্বাধিক লেনদেনের দৈর্ঘ্য, এটিআর চক্র এবং আউটপুটের শর্তের মতো মূল প্যারামিটারগুলি বিভিন্ন বাজার এবং ব্যবসায়ীদের পছন্দ অনুসারে সামঞ্জস্য করা যায়।

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

  6. ভিজ্যুয়াল স্বীকৃতি সরঞ্জাম: কৌশলটিতে প্রবেশ/প্রস্থান সংকেতের গ্রাফিকাল চিহ্ন এবং এটিআর সূচকগুলির ভিজ্যুয়ালাইজেশন রয়েছে, যা ব্যবসায়ীদের কৌশলটির কার্যকরকরণ পর্যবেক্ষণ করতে সহায়তা করে।

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

কৌশলগত ঝুঁকি

যদিও এই কৌশলটি যুক্তিসঙ্গতভাবে ডিজাইন করা হয়েছে, তবে কোড বিশ্লেষণের পরে নিম্নলিখিত সম্ভাব্য ঝুঁকিগুলি পাওয়া গেছেঃ

  1. ভুয়া আক্রমণের ঝুঁকিটানা তিন দিন পতনের পর অবশ্য এর অর্থ এই নয় যে বিপর্যয় আসছে, বাজার সম্ভবত নিম্নমুখী প্রবণতা অব্যাহত রাখবে, যার ফলে প্রবেশের স্থানটি অনুকূল হবে না।

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

    • সমাধান: আরো কঠোর স্টপ লস ব্যবস্থা বাস্তবায়ন করা, অথবা ঝুঁকি ও সুযোগের মধ্যে ভারসাম্য বজায় রাখার জন্য ওঠানামা হার ফিল্টারের প্যারামিটারগুলিকে সামঞ্জস্য করা।
  3. সময়ের অন্ধত্ব: নির্দিষ্ট দিনের ভিত্তিতে বেরিয়ে যাওয়া বাজারটির বর্তমান পরিস্থিতি বিবেচনা না করে, লাভজনক প্রবণতায় খুব তাড়াতাড়ি বেরিয়ে যেতে পারে বা প্রতিকূল প্রবণতায় খুব দেরিতে বেরিয়ে যেতে পারে।

    • সমাধান
  4. পরামিতি সংবেদনশীলতা: কৌশলগত কর্মক্ষমতা ATR চক্র, সর্বাধিক লেনদেনের সময়কাল এবং অন্যান্য প্যারামিটারগুলির জন্য অত্যন্ত সংবেদনশীল হতে পারে।

    • সমাধান: নির্দিষ্ট বাজারের অবস্থার জন্য উপযুক্ত একটি শক্তিশালী প্যারামিটার প্যাকেজ খুঁজে বের করার জন্য একটি পুঙ্খানুপুঙ্খ প্যারামিটার অপ্টিমাইজেশান এবং পুনরাবৃত্তি করা।
  5. ক্ষতিপূরণের অভাব: বর্তমান কৌশলগুলি ঐতিহ্যগত অর্থে ক্ষতি বন্ধ করার ক্ষমতা রাখে না, যার ফলে বাজারের তীব্র অস্থিরতার সময় অত্যধিক ক্ষতি হতে পারে।

    • সমাধান: নির্দিষ্ট শতাংশ বা ATR গুণিতক ভিত্তিক ক্ষতির ব্যবস্থা যোগ করা হয়েছে।
  6. বাজারের উপর নির্ভরশীল: এই কৌশলটি নির্দিষ্ট বাজার অবস্থার অধীনে ভাল কাজ করতে পারে (যেমন উচ্চ অস্থিরতার পরিবেশে) কিন্তু অন্যান্য বাজার পর্যায়ে এটি খারাপ কাজ করতে পারে।

    • সমাধান: মার্কেট স্ট্যাটাস ফিল্টার তৈরি করা হয়েছে, যা শুধুমাত্র সেই কৌশল অনুসারে বাজারের অবস্থার অধীনে ট্রেডিংকে সক্রিয় করে।

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

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

  1. স্বনির্ধারিত ATR ফিল্টার যুক্ত করা হয়েছে: বর্তমানে স্থির ৩০ দিনের এটিআর গড় রেফারেন্স ব্যবহার করা হচ্ছে। এটিআর রেফারেন্স চক্রের পরিবর্তনশীলতার জন্য এটিআর রেফারেন্স চক্রের পরিবর্তনের জন্য একটি স্ব-অনুকূলন চক্র ব্যবহার করার কথা বিবেচনা করা যেতে পারে। এটি বিভিন্ন বাজার পরিস্থিতির সাথে আরও ভালভাবে খাপ খাইয়ে নিতে পারে, কারণ ট্রেন্ডিং বাজার এবং সমন্বয় বাজারে আদর্শ এটিআর রেফারেন্স চক্রটি আলাদা হতে পারে।

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

  3. ক্ষতিপূরণ যোগ করুন

  4. প্রবণতা ফিল্টার অন্তর্ভুক্ত: একটি বিস্তৃত প্রবণতা ফিল্টার যুক্ত করুন (যেমন একটি দীর্ঘ সময়ের চলমান গড়ের উপর ভিত্তি করে), কেবলমাত্র বড় প্রবণতার দিকনির্দেশে ট্রেডিং নিশ্চিত করুন এবং বড় প্রবণতার বিপরীতে বিপরীত ট্রেডিং এড়ান।

  5. ভর্তির মানোন্নয়ন: আরও জটিল মূল্যের মডেল ব্যবহার করা বা প্রযুক্তিগত সূচকগুলির সাথে মিলিত হওয়া বিবেচনা করুন (যেমন RSI, MACD) প্রবেশের সংকেত নিশ্চিত করতে এবং প্রবেশের গুণমান উন্নত করতে।

  6. আংশিক মুনাফা লকিং: ট্রেডিং একটি নির্দিষ্ট মুনাফা স্তর পৌঁছানোর পরে, আপনি আপনার পজিশন খালি করতে পারেন, আপনার মুনাফার একটি অংশ লক করতে পারেন, এবং আপনার অবশিষ্ট পজিশনগুলিকে সম্ভাব্য বৃহত্তর ট্রেন্ডগুলি ধরার জন্য ধরে রাখতে পারেন।

  7. লেনদেনের পরিমাণ বৃদ্ধি: ট্রেডিং ভলিউমকে সিগন্যাল কনফার্মেশনের অতিরিক্ত শর্ত হিসেবে গ্রহণ করা, যেমন ক্রমাগত পতনের দিনে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্রমান্বয়ে ক্র

  8. মৌসুমী অভিযোজন: বিভিন্ন বাজার মৌসুম (যেমন মাস, ত্রৈমাসিক) এর প্রভাব বিশ্লেষণ করুন কৌশলগত পারফরম্যান্সের উপর, যা নির্দিষ্ট সময়ের মধ্যে কৌশলগত প্যারামিটারগুলি বন্ধ বা সামঞ্জস্য করতে পারে।

সারসংক্ষেপ

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

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

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

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

কৌশল সোর্স কোড
/*backtest
start: 2024-02-25 00:00:00
end: 2024-12-14 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/


//@version=6
strategy("3 Red / 3 Green Strategy with Volatility Check", overlay=true, initial_capital=100000, currency=currency.USD)

// Input parameters
maxTradeDuration = input.int(title="Maximum Trade Duration (days)", defval=22, minval=1)
useGreenExit   = input.bool(title="Use 3 Green Days Exit", defval=true, tooltip = "Exit condition: either 3 consecutive green days (if enabled) or if the trade duration reaches maxTradeDuration days.")
atrPeriod      = input.int(title="ATR Period", defval=12, minval=0, step=1, tooltip="Use zero to disable ATR filter")

// Define red and green days based on open vs close prices
redDay   = close < open
greenDay = close > open

// Conditions: 3 consecutive red days trigger an entry; 3 consecutive green days trigger an exit.
threeRed   = redDay and redDay[1] and redDay[2]
threeGreen = greenDay and greenDay[1] and greenDay[2]

var float currentATR = 0.0
var float averageATR = 0.0
var bool atr_entry = true

// Calculate ATR and its 30-day average
if(atrPeriod>0)
    currentATR := ta.atr(atrPeriod)
    averageATR := ta.sma(currentATR, 30)

atr_entry := (currentATR > 0 and averageATR > 0) ? (currentATR > averageATR) : true
// Persistent variable to record the bar index when the trade is entered.
var int entryBarIndex = na

// Entry: When no position is open, 3 consecutive red days occur, and current ATR is above its 30-day average, enter a long trade.
if (strategy.position_size == 0 and threeRed and atr_entry)
    strategy.entry("Long", strategy.long)
    entryBarIndex := bar_index

// Compute trade duration in days using the absolute difference
tradeDuration = not na(entryBarIndex) ? math.abs(bar_index - entryBarIndex) : 0

// Exit condition: either 3 consecutive green days (if enabled) or if the trade duration reaches maxTradeDuration days.
exitCondition = (useGreenExit and threeGreen) or (tradeDuration >= maxTradeDuration)

if (strategy.position_size > 0 and exitCondition)
    strategy.close("Long")

// Reset the entry bar index when a trade just closed.
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
    entryBarIndex := na

// Optional: Plot signals and ATR values for visual confirmation.
plotshape(threeRed, title="Entry Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(threeGreen, title="Green Exit Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)
plot(currentATR, title="Current ATR", color=color.blue)
plot(averageATR, title="30-Day Average ATR", color=color.orange)