বহুমাত্রিক প্রযুক্তিগত সূচক যুগান্তকারী প্রবণতা ক্যাপচার কৌশল

EMA RSI MACD ATR ADX HTF
সৃষ্টির তারিখ: 2025-05-13 11:03:36 অবশেষে সংশোধন করুন: 2025-05-13 11:03:36
অনুলিপি: 1 ক্লিকের সংখ্যা: 299
2
ফোকাস
319
অনুসারী

বহুমাত্রিক প্রযুক্তিগত সূচক যুগান্তকারী প্রবণতা ক্যাপচার কৌশল বহুমাত্রিক প্রযুক্তিগত সূচক যুগান্তকারী প্রবণতা ক্যাপচার কৌশল

ওভারভিউ

মাল্টি-ডি টেকনিক্যাল ইন্ডিকেটর ব্রেকিং ট্রেন্ড ক্যাপচার কৌশল হল একটি সমন্বিত পরিমাণযুক্ত ট্রেডিং সিস্টেম যা একাধিক টেকনিক্যাল ইন্ডিকেটর এবং ফ্রেমওয়ার্ক সনাক্তকরণকে একত্রিত করে। এই কৌশলটি সূচকীয় মুভিং এভারেজ (EMA), আপেক্ষিকভাবে শক্তিশালী সূচক (RSI), মুভিং এভারেজ ট্রান্সমিশন বিপরীত (MACD), গড় বাস্তব পরিসীমা (ATR), দিকনির্দেশক গতির সূচক (ADX) এবং উচ্চতর সময় ফ্রেম বিশ্লেষণের মাধ্যমে বাজারে প্রবেশের উচ্চ সম্ভাবনা চিহ্নিত করে। কৌশলটি বিশেষত একাধিক টেকনিক্যাল ইন্ডিকেটর দ্বারা একযোগে নিশ্চিত হওয়ার শর্তে লেনদেনের উপর জোর দেয়, কঠোর মোড এবং নমন মোড উভয় ট্রেডিং প্যারামিটার কনফিগারেশন সরবরাহ করে, 1 ঘন্টা এবং 4 ঘন্টা সময় ফ্রেমের অধীনে কাজ করার জন্য উপযুক্ত।

কৌশল নীতি

মাল্টি-ডি টেকনোলজিকাল ইন্ডিকেটর ব্রেকিং ট্রেন্ড ক্যাপচার কৌশলটির মূল চিন্তাধারাটি হ’ল ট্রেডিং সিগন্যালের কার্যকারিতা নিশ্চিত করার জন্য একাধিক স্তরের প্রযুক্তিগত পরিস্রাবণ। এই কৌশলটি ছয়টি মূল শর্তকে একত্রিত করে, যা কেবলমাত্র পর্যাপ্ত শর্ত পূরণ হলেই একটি ট্রেডিং সিগন্যাল ট্রিগার করেঃ

  1. ইএমএ ক্রস সংকেত: দ্রুত ইএমএ ((9 চক্র) এবং ধীর ইএমএ ((21 চক্র) এর আপেক্ষিক অবস্থানটি স্বল্পমেয়াদী প্রবণতার দিকনির্দেশনা নিশ্চিত করার জন্য ব্যবহৃত হয়। মাল্টিহেড সংকেতগুলি দ্রুত ইএমএকে ধীর ইএমএর উপরে অবস্থিত বলে দাবি করে, খালি হেড সংকেতটি বিপরীত।

  2. উচ্চ সময়সীমা নিশ্চিতকরণকৌশলঃ ট্রেডিংয়ের দিকনির্দেশনা বৃহত্তর প্রবণতার সাথে সামঞ্জস্যপূর্ণ তা নিশ্চিত করার জন্য বর্তমান মূল্যের সাথে উচ্চতর সময় ফ্রেমের (ঐচ্ছিক 15 মিনিট থেকে সূর্যের রেখা) ইএমএ অবস্থানের তুলনা করে। মাল্টিহেডের দাম উচ্চতর সময় ফ্রেম ইএমএর চেয়ে বেশি এবং খালি হেডের দাম উচ্চতর সময় ফ্রেম ইএমএর চেয়ে কম।

  3. RSI দ্বৈত নিশ্চিতকরণ: বর্তমান সময়ের ফ্রেমের আরএসআই এবং উচ্চ সময়ের ফ্রেমের আরএসআই যৌথভাবে গতিশীলতা নিশ্চিত করে। মাল্টিহেড সিগন্যালের জন্য বর্তমান আরএসআই> 55 এবং উচ্চ সময়ের ফ্রেমের আরএসআই> 50 প্রয়োজন, এবং খালি হেড সিগন্যালের জন্য বর্তমান আরএসআই <45 এবং উচ্চ সময়ের ফ্রেমের আরএসআই <50 প্রয়োজন।

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

  5. ব্রেকডাউন নিশ্চিত: বর্তমান লেনদেনের পরিমাণ ২০ চক্রের লেনদেনের গড়ের 1.3 গুণ বেশি হওয়া প্রয়োজন (নির্ধারিত) এবং পর্যাপ্ত বাজার অংশগ্রহণ নিশ্চিত করা উচিত যাতে দামের প্রবণতাকে সমর্থন করা যায়।

  6. ফ্রেমওয়ার্ক নিশ্চিতকরণ: নির্দিষ্ট ফ্রেমওয়ার্ক ফর্ম্যাটগুলি সনাক্ত করুন, যার মধ্যে রয়েছে মাল্টি-হেড গ্রাস, ক্যাপসুল, বিপরীত ক্যাপসুল, ক্রস স্টার, অন্তর্নির্মিত কে লাইন (মাল্টি-হেড), এবং খালি মাথা গ্রাস, মেট্রো লাইন, ক্রস স্টার, অন্তর্নির্মিত কে লাইন (খালি মাথা) ।

এই কৌশলটিতে ADX ট্রেন্ড ফিল্টার ([ ]) যোগ করা হয়েছে, যা শুধুমাত্র ADX> 20 হলেই নিশ্চিত করে যে বাজারটি একটি সুস্পষ্ট ট্রেন্ডে রয়েছে। লেনদেনের সময়, এটিআর-ভিত্তিক গতিশীল স্টপ লস এবং স্টপ লেভেল ব্যবহার করে, এটিআর-এর 1.5 গুণ স্টপ লস এবং এটিআর-এর 3 গুণ স্টপ লস সেট করে, যা 2: 1 ঝুঁকি-ফেরতের অনুপাত সরবরাহ করে।

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

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

  2. স্বনির্ধারিত ঝুঁকি ব্যবস্থাপনাএটিআর-ভিত্তিক ডায়নামিক স্টপ এবং স্টপ সেটিংগুলি বাজারের অস্থিরতার সাথে স্বয়ংক্রিয়ভাবে সামঞ্জস্য করতে পারে, যা ফিক্সড পয়েন্ট স্টপগুলির চেয়ে বিভিন্ন বাজারের পরিবেশের সাথে আরও উপযুক্ত।

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

  4. অর্ডার নিশ্চিত: কম তরলতার পরিবেশে সংকেতগুলিকে ফিল্টার করার জন্য লেনদেনের পরিমাণের ব্রেকডাউনগুলি দাবি করে, বাজারের আগ্রহের অভাবের সময় ভুল লেনদেন হ্রাস করে।

  5. প্রবণতা শক্তি ফিল্টার করুন: ADX ফিল্টার দ্বারা নিশ্চিত করুন যে ট্রেডিং শুধুমাত্র সুস্পষ্ট প্রবণতায় হয়, যাতে ব্যাপ্তিযুক্ত বাজারের অকার্যকর ট্রেডিং এড়ানো যায়।

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

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

কৌশলগত ঝুঁকি

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

  2. ব্যবসায়ের সুযোগ হারিয়েছেনকঠোর পদ্ধতিতে, সমস্ত ছয়টি শর্ত একসাথে পূরণ করা প্রয়োজন যা অনেক সম্ভাব্য লাভজনক ব্যবসায়ের সুযোগগুলি মিস করতে পারে। কম অস্থির বাজারে, সমস্ত শর্তগুলি খুব কমই পূরণ করা হয়।

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

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

  5. ট্রেডিং ফ্রিকোয়েন্সি: কৌশলটি ট্রেডিংয়ের সময়সীমা নির্ধারণ করে (২ঃ০০-২০ঃ০০) এবং একক হোল্ডিংয়ের সীমাবদ্ধতা, যা কিছু বাজার অবস্থার অধীনে ভাল সুযোগগুলি মিস করতে পারে।

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

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

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

  2. বাজারের অস্থিরতা নিয়ন্ত্রণে যোগদান: VIX বা ATR পরিবর্তনের হারের মতো অস্থিরতার সূচকগুলির উপর ভিত্তি করে ডায়নামিকভাবে লেনদেনের আকার এবং স্টপ লস দূরত্ব সামঞ্জস্য করুন, উচ্চ অস্থিরতার বাজারে অবস্থান হ্রাস করুন, নিম্ন অস্থিরতার বাজারে অবস্থান বাড়ান।

  3. মার্কেট সেন্টিমেন্ট ইন্টিগ্রেটেডমার্কেটিং সাইকোলজিঃ মার্কেটিং সাইকোলজিকে যুক্ত করার জন্য মার্কেটিং প্যানিক ইনডেক্স, স্পেকট্রপিকাল সেন্টিমেন্ট ইনডেক্স বা সোশ্যাল মিডিয়া সেন্টিমেন্ট অ্যানালিসিস এর মতো কিছু মাত্রা যুক্ত করুন।

  4. সময় ফিল্টার যোগ করুন

  5. অপ্টিমাইজ করা ফ্রেমওয়ার্ক সনাক্তকরণ: বর্তমান ফ্রেমওয়ার্ক মোড সনাক্তকরণ তুলনামূলকভাবে সহজ, এটি আরও জটিল এবং সুনির্দিষ্ট মোড সনাক্তকরণ অ্যালগরিদম যুক্ত করতে পারে, যেমন মডেল সংজ্ঞা ওলট-পালট বা মেশিন লার্নিং মোড সনাক্তকরণ।

  6. আংশিক পজিশন ব্যবস্থাপনা চালুবর্তমান কৌশলটি ফিক্সড শতাংশ তহবিল ব্যবস্থাপনা (১০% পজিশন) ব্যবহার করে, যা ক্যালি সূত্রের গতিশীল পজিশন ব্যবস্থাপনার জন্য অনুকূলিত করা যেতে পারে, যা লাভের হার এবং ঝুঁকি-ফেরতের অনুপাতের উপর ভিত্তি করে, বা লাভজনক প্রবণতাগুলিকে সর্বাধিকতর করার জন্য একটি পিরামিড পজিশন ফাংশন বাস্তবায়ন করতে পারে।

  7. মাল্টিটাইম ফ্রেম গতিশীলতা একত্রিত করা: বিদ্যমান উচ্চ টাইম ফ্রেম বিশ্লেষণকে সম্প্রসারণ করে, আরও সময় ফ্রেমগুলির সাথে সামঞ্জস্যতা নিশ্চিতকরণ যুক্ত করা হয়েছে, কেবলমাত্র যখন একাধিক টাইম ফ্রেমের প্রবণতা সামঞ্জস্যপূর্ণ হয় তখনই লেনদেন করা হয়।

সারসংক্ষেপ

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

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

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

কৌশল সোর্স কোড
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("🚀 Sniper Entry Finder Enhanced [Backtest Enabled]", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === USER INPUTS ===
emaFastLen   = input.int(9, title="Fast EMA Length")
emaSlowLen   = input.int(21, title="Slow EMA Length")
rsiLength    = input.int(14, title="RSI Length")
atrMultiplierSL = input.float(1.5, title="ATR Multiplier (Stop Loss)")
atrMultiplierTP = input.float(3.0, title="ATR Multiplier (Take Profit)")
volMult      = input.float(1.3, title="Volume Multiplier")
htfPeriod    = input.string('60', title='Higher TF EMA Period', options=['15','30','60','120','240','D'])
strictMode   = input.bool(true, title="Strict Mode (All 6 Conditions)")
useTrendFilter = input.bool(true, title="Use ADX Trend Filter")

// === CANDLE PATTERN TOGGLES ===
useBullEngulf = input.bool(true, title="Use Bullish Engulfing")
useHammer = input.bool(true, title="Use Hammer")
useInvHammer = input.bool(true, title="Use Inverted Hammer")
useDoji = input.bool(true, title="Use Doji")
useInsideBar = input.bool(true, title="Use Inside Bar")
useBearEngulf = input.bool(true, title="Use Bearish Engulfing")
useShootingStar = input.bool(true, title="Use Shooting Star")

// === CALCULATIONS ===
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
rsi = ta.rsi(close, rsiLength)
[macd, signal, _] = ta.macd(close, 12, 26, 9)
atr = ta.atr(14)
volAvg = ta.sma(volume, 20)
htfEma = request.security(syminfo.tickerid, htfPeriod, ta.ema(close, emaSlowLen))
htfRsi = request.security(syminfo.tickerid, htfPeriod, ta.rsi(close, rsiLength))
[plusDI, minusDI, adx] = ta.dmi(14, 14)
trendOK = adx > 20 or not useTrendFilter

// === CONDITIONS ===
emaBull = emaFast > emaSlow
emaBear = emaFast < emaSlow
htfBull = close > htfEma
htfBear = close < htfEma
rsiBull = rsi > 55 and htfRsi > 50
rsiBear = rsi < 45 and htfRsi < 50
macdBull = macd > signal
macdBear = macd < signal
volCond = volume > volAvg * volMult

// === PATTERNS ===
bullEngulf = useBullEngulf and (close > open and close[1] < open[1] and close > high[1])
hammer = useHammer and (close > open and (high - low) > 3 * math.abs(open - close) and (close - low) / (0.001 + high - low) > 0.6)
invertedHammer = useInvHammer and (close > open and (high - low) > 3 * math.abs(close - open) and (high - close) / (0.001 + high - low) > 0.6)
doji = useDoji and (math.abs(close - open) <= (high - low) * 0.1)
insideBar = useInsideBar and (high < high[1] and low > low[1])
bearEngulf = useBearEngulf and (close < open and close[1] > open[1] and close < low[1])
shootingStar = useShootingStar and (close < open and (high - low) > 3 * math.abs(open - close) and (high - close) / (0.001 + high - low) > 0.6)

bullPattern = bullEngulf or hammer or invertedHammer or doji or insideBar
bearPattern = bearEngulf or shootingStar or doji or insideBar

// === SCORING ===
bullCondCount = (emaBull ? 1 : 0) + (htfBull ? 1 : 0) + (rsiBull ? 1 : 0) + (macdBull ? 1 : 0) + (volCond ? 1 : 0) + (bullPattern ? 1 : 0)
bearCondCount = (emaBear ? 1 : 0) + (htfBear ? 1 : 0) + (rsiBear ? 1 : 0) + (macdBear ? 1 : 0) + (volCond ? 1 : 0) + (bearPattern ? 1 : 0)

// === ENTRY LOGIC ===
allowedSession = (hour >= 2 and hour < 20)
canTrade = strategy.opentrades == 0

longEntry = allowedSession and trendOK and canTrade and (strictMode ? (bullCondCount == 6) : (bullCondCount >= 4))
shortEntry = allowedSession and trendOK and canTrade and (strictMode ? (bearCondCount == 6) : (bearCondCount >= 4))

// === SL / TP ===
longSL = low - atr * atrMultiplierSL
longTP = close + atr * atrMultiplierTP
shortSL = high + atr * atrMultiplierSL
shortTP = close - atr * atrMultiplierTP

// === ALERTS ===
alertcondition(longEntry, title="Long Entry Alert", message="🚀 Long Entry Signal on {{ticker}} @ {{close}} | SL: {{low - atr * atrMultiplierSL}} | TP: {{close + atr * atrMultiplierTP}}")
alertcondition(shortEntry, title="Short Entry Alert", message="🔻 Short Entry Signal on {{ticker}} @ {{close}} | SL: {{high + atr * atrMultiplierSL}} | TP: {{close - atr * atrMultiplierTP}}")

// === STRATEGY ENTRIES + LABELS ===
if longEntry
    strategy.entry("Long", strategy.long)
    strategy.exit("TP/SL", from_entry="Long", limit=longTP, stop=longSL)
    label.new(bar_index, close, "🚀 Long Entry @ " + str.tostring(close, '#.##'), style=label.style_label_up, yloc=yloc.belowbar, color=color.green, textcolor=color.white)
    label.new(bar_index, longTP, "🎯 TP: " + str.tostring(longTP, '#.##'), style=label.style_label_up, yloc=yloc.belowbar, color=color.lime, textcolor=color.white)
    label.new(bar_index, longSL, "🛑 SL: " + str.tostring(longSL, '#.##'), style=label.style_label_down, yloc=yloc.belowbar, color=color.red, textcolor=color.white)

if shortEntry
    strategy.entry("Short", strategy.short)
    strategy.exit("TP/SL", from_entry="Short", limit=shortTP, stop=shortSL)
    label.new(bar_index, close, "🔻 Short Entry @ " + str.tostring(close, '#.##'), style=label.style_label_down, yloc=yloc.abovebar, color=color.red, textcolor=color.white)
    label.new(bar_index, shortTP, "🎯 TP: " + str.tostring(shortTP, '#.##'), style=label.style_label_down, yloc=yloc.abovebar, color=color.lime, textcolor=color.white)
    label.new(bar_index, shortSL, "🛑 SL: " + str.tostring(shortSL, '#.##'), style=label.style_label_up, yloc=yloc.abovebar, color=color.red, textcolor=color.white)



// === PLOTS ===
plot(emaFast, "EMA Fast", color=color.purple, linewidth=2)
plot(emaSlow, "EMA Slow", color=color.yellow, linewidth=2)

plotshape(longEntry, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(shortEntry, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

plot(longEntry ? longSL : na, title="Long SL", color=color.red, style=plot.style_cross, linewidth=2)
plot(longEntry ? longTP : na, title="Long TP", color=color.green, style=plot.style_cross, linewidth=2)
plot(shortEntry ? shortSL : na, title="Short SL", color=color.red, style=plot.style_cross, linewidth=2)
plot(shortEntry ? shortTP : na, title="Short TP", color=color.green, style=plot.style_cross, linewidth=2)

// === MODE LABEL ===
var label modeLabel = na
if (bar_index % 5 == 0)
    label.delete(modeLabel)
    modeLabel := label.new(bar_index, high, strictMode ? "STRICT MODE" : "LOOSE MODE", style=label.style_label_down, yloc=yloc.abovebar, color=strictMode ? color.red : color.green, textcolor=color.white, size=size.normal)