ডাবল মুভিং এভারেজ ক্রসওভার ট্রেন্ড অনুসরণ কৌশল এবং উন্নত ঝুঁকি ব্যবস্থাপনা ব্যবস্থা

SMA CROSSOVER TRAILING STOP LOSS risk management POSITION SIZING Risk-Reward Ratio TAKE PROFIT STOP LOSS
সৃষ্টির তারিখ: 2025-06-12 13:18:26 অবশেষে সংশোধন করুন: 2025-06-12 13:18:26
অনুলিপি: 1 ক্লিকের সংখ্যা: 302
2
ফোকাস
319
অনুসারী

ডাবল মুভিং এভারেজ ক্রসওভার ট্রেন্ড অনুসরণ কৌশল এবং উন্নত ঝুঁকি ব্যবস্থাপনা ব্যবস্থা ডাবল মুভিং এভারেজ ক্রসওভার ট্রেন্ড অনুসরণ কৌশল এবং উন্নত ঝুঁকি ব্যবস্থাপনা ব্যবস্থা

কৌশল ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি দুটি সরল চলমান গড়ের মধ্যে পারস্পরিক সম্পর্কের উপর ভিত্তি করে ট্রেডিং সিদ্ধান্ত নেয়ঃ

  1. সংকেত উৎপন্ন করার প্রক্রিয়া:

    • একাধিক সংকেত করুনঃ যখন দ্রুত এসএমএ (ডিফল্ট 24 চক্র) উপর ধীর গতির এসএমএ (ডিফল্ট 48 চক্র) অতিক্রম করা হয়
    • বাতাসের সংকেতঃ যখন দ্রুত এসএমএ ধীর এসএমএ অতিক্রম করে
    • সমান্তরাল সংকেতঃ যখন বিপরীত ক্রস সংকেত উপস্থিত হয়
  2. টাইম কন্ট্রোল: কৌশলটি K-লাইন বন্ধের সময় সমস্ত লেনদেনের সিদ্ধান্ত কার্যকর করে, দৃষ্টিভঙ্গি বিভ্রান্তি এড়ানো এবং পুনরায় পরিমাপের ফলাফলের নির্ভরযোগ্যতা এবং সত্যতা নিশ্চিত করা।

  3. অর্থ ব্যবস্থাপনা ব্যবস্থা:

    • প্রতি লেনদেনের ঝুঁকি নিয়ন্ত্রণঃ প্রতি লেনদেনের সর্বাধিক ঝুঁকি অ্যাকাউন্টের মোট তহবিলের ২.০% এর মধ্যে সীমাবদ্ধ
    • পজিশনের আকার স্বয়ংক্রিয়ভাবে গণনা করা হয়ঃ স্টপডাউন এবং ঝুঁকির পরিমাণের উপর ভিত্তি করে গতিশীল সমন্বয়, যা পূর্ব নির্ধারিত ঝুঁকির সীমা অতিক্রম না করে তা নিশ্চিত করে
  4. বহুস্তরীয় ঝুঁকি নিয়ন্ত্রণ:

    • স্থির স্টপ লসঃ প্রবেশের পর অবিলম্বে স্থির শতাংশ স্টপ লস সেট করুন (ডিফল্ট 0.8%), একক ক্ষতি সীমাবদ্ধ করুন
    • লাভের লক্ষ্যমাত্রা (Take Profit): স্বয়ংক্রিয়ভাবে হিসাব করা হয়েছে রিস্ক রিটার্ন রেট (ডিফল্ট ২.০) এর উপর ভিত্তি করে, যেমন ০.৮% স্টপ লস ২.০ রিস্ক রিটার্ন রেট সহ ১.৬% লাভের লক্ষ্যমাত্রা প্রদান করে
    • ট্রেলিং স্টপ লসঃ
      • অ্যাক্টিভেশন শর্তাদিঃ যখন মুনাফা পূর্বনির্ধারিত শতাংশে পৌঁছায় (ডিফল্ট 1.0%) তখন সক্রিয় করা হয়
      • ট্র্যাকিং মেকানিজমঃ একবার সক্রিয় হয়ে গেলে, স্টপ লস সর্বোচ্চ মূল্য (অধিক) বা সর্বনিম্ন মূল্য (কম) ট্র্যাক করবে, নির্দিষ্ট দূরত্ব বজায় রেখে (ডিফল্ট 0.5%)
      • সুরক্ষাঃ নিশ্চিত করুন যে ট্র্যাকিং স্টপ লস কখনই প্রাথমিক স্টপ লেভেলের নীচে থাকবে না, তহবিল সুরক্ষিত করার সময় মুনাফা বাড়তে থাকবে

এই কৌশলটি ট্রেডিংয়ের সুরক্ষা এবং টেকসইতা নিশ্চিত করার জন্য একটি সামগ্রিক ঝুঁকি ব্যবস্থাপনা ব্যবস্থা ব্যবহার করে এবং ট্রেডিংয়ের প্রবণতাকে সমান্তরাল ক্রস ক্যাপচার করে।

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

  1. প্রবণতা শনাক্তকরণের শক্তিশালী ব্যবস্থা:

    • ডাবল ইক্যুয়ালিয়েট ক্রস সিস্টেমগুলি ঐতিহাসিকভাবে প্রমাণিত কার্যকারিতা এবং স্থায়িত্ব সহ একটি ক্লাসিক ট্রেন্ড ট্র্যাকিং সূচক
    • ধীরে ধীরে গড় চক্রের সমন্বয় করে বিভিন্ন বাজার পরিবেশ এবং সময়কালের প্রবণতা বৈশিষ্ট্যগুলিকে মানিয়ে নিতে পারে
  2. সঠিক অর্থ ব্যবস্থাপনা:

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

    • ফিক্সড স্টপ লস একটি মৌলিক সুরক্ষা প্রদান করে, যা সর্বোচ্চ ক্ষতির মাত্রা সীমিত করে
    • গড় লাভের গড় ক্ষতির চেয়ে বেশি নিশ্চিত করার জন্য রিস্ক-রিটার্ন অনুপাতের উপর ভিত্তি করে লাভের লক্ষ্য নির্ধারণ করা
    • উচ্চ পর্যায়ের ট্র্যাকিং স্টপ লস সুরক্ষা প্রবণতা অব্যাহত রাখার সম্ভাব্য উপার্জনকে প্রভাবিত না করে লাভ অর্জন করেছে
  4. লেনদেনের সময়সীমা নিয়ন্ত্রণ:

    • সমস্ত লেনদেনের সিদ্ধান্তগুলি কঠোরভাবে K-লাইন সমাপ্তির মূল্যের উপর ভিত্তি করে করা হয়, যাতে ফরোয়ার্ডিং বিচ্যুতি এড়ানো যায়
    • ব্যবহারprocess_orders_on_close=trueপ্যারামিটারগুলি নিশ্চিত করে যে অর্ডারগুলি প্রকৃত লেনদেনের সাথে সামঞ্জস্যপূর্ণ
    • ট্রেডিং লজিক পূর্ববর্তী K লাইন থেকে সংকেত গণনা উপর ভিত্তি করে, ভবিষ্যতে ডেটা ব্যবহার এড়ানো
  5. স্বনির্ধারিত ট্র্যাকিং ও স্টপ লস সিস্টেম:

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

কৌশলগত ঝুঁকি

  1. প্রবণতা সনাক্তকরণ:

    • মুভিং এভারেজ মূলত একটি পিছিয়ে পড়া সূচক, যা প্রবণতা পাল্টাতে সময়মত প্রতিক্রিয়া জানাতে পারে না
    • বাজারে ঘন ঘন মিথ্যা সংকেত তৈরি হতে পারে, যার ফলে “হুইপসো প্রভাব” দেখা দেয়
    • প্রশমন পদ্ধতিঃ অতিরিক্ত পরিস্রাবণ শর্ত যুক্ত করার কথা বিবেচনা করা যেতে পারে, যেমন অস্থিরতা সূচক বা প্রবণতা শক্তির নিশ্চিতকরণ
  2. স্থায়ী প্যারামিটার অভিযোজনযোগ্যতা সমস্যা:

    • ডিফল্ট এসএমএ চক্র (২৪ এবং ৪৮) বিভিন্ন বাজারে এবং সময়কালের জন্য কার্যকর হতে পারে
    • স্টপ লস এবং প্রফিট টার্গেটের ফিক্সড শতাংশ সেটিং সব অস্থিরতার জন্য উপযুক্ত নাও হতে পারে
    • প্রশমন পদ্ধতিঃ নির্দিষ্ট লেনদেনের জাতের বৈশিষ্ট্য এবং historicalতিহাসিক ওঠানামার উপর ভিত্তি করে প্যারামিটারগুলি সামঞ্জস্য করার পরামর্শ দেওয়া হয়, বা একটি অভিযোজিত প্যারামিটার ব্যবস্থা চালু করা হয়
  3. স্টপডাউন সক্রিয়করণের সময় ট্র্যাক করুন:

    • অ্যাক্টিভ ট্র্যাকিং স্টপ লস মুনাফা স্তর (ডিফল্ট 1.0%) খুব বেশি সেট করা মুনাফা লক করার সুযোগ মিস করতে পারে
    • খুব কম সেট করা হলে, এটি অল্প সময়ের মধ্যে ট্রিগার হতে পারে এবং সম্ভাব্য মুনাফা সীমাবদ্ধ করতে পারে
    • প্রশমন পদ্ধতিঃ টার্গেট জাতের গড় বাস্তব তরঙ্গদৈর্ঘ্য (এটিআর) অনুপাত অনুসারে ট্র্যাকিং স্টপ লস প্যারামিটার সেট করুন, এটিকে আরও স্বনির্ধারিত করুন
  4. তহবিল ব্যবস্থাপনা ঝুঁকি:

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

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

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

  1. সিগন্যাল জেনারেশন মেকানিজম অপ্টিমাইজ করা:

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

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

    • প্রবণতা শক্তি ফিল্টারঃ ট্রেডিং সিগন্যাল শুধুমাত্র প্রবণতা শক্তি একটি নির্দিষ্ট থ্রেশহোল্ড পৌঁছানোর পরে কার্যকর করা হয়
    • অস্থিরতা উইন্ডো ফিল্টারিংঃ উপযুক্ত অস্থিরতার পরিবেশে লেনদেন করা, অত্যধিক বা অল্প অস্থিরতার বাজার এড়ানো
    • সর্বোত্তম কার্যকর মূল্যঃ গবেষণা সংকেত উত্পন্ন হওয়ার পরে সর্বোত্তম প্রবেশের সময় এবং মূল্য স্তর
  4. প্রতিক্রিয়া ও মূল্যায়ন কাঠামো:

    • একাধিক সময়কালের সামঞ্জস্যতাঃ বিভিন্ন সময়কালের মধ্যে কৌশলগুলির সামঞ্জস্য এবং স্থায়িত্ব যাচাই করা
    • সংবেদনশীলতা বিশ্লেষণঃ প্যারামিটার পরিবর্তনের প্রভাবগুলি কৌশলগত পারফরম্যান্সের উপর ব্যাপকভাবে পরীক্ষা করা, প্যারামিটারগুলির সবচেয়ে স্থিতিশীল সমন্বয় খুঁজে বের করা
    • মন্টে কার্লো সিমুলেশনঃ কৌশলগুলির সম্ভাব্যতা বন্টন এবং স্থায়িত্বের মূল্যায়ন, ট্রেডিং ফলাফলকে এলোমেলো করে
  5. প্রযুক্তির উন্নতি:

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

সারসংক্ষেপ

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

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

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

কৌশল সোর্স কোড
/*backtest
start: 2025-06-04 00:00:00
end: 2025-06-11 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Dual SMA Crossover Strategy", overlay=true, calc_on_every_tick=false, process_orders_on_close=true)

// --- Inputs ---
// SMA Lengths
fast_length = input.int(24, title="Fast SMA Length", minval=1)
slow_length = input.int(48, title="Slow SMA Length", minval=1)

// Risk Management
risk_per_trade_percent = input.float(2.0, title="Risk Per Trade (%)", minval=0.1, maxval=10.0, step=0.1) // % of equity to risk per trade
stop_loss_percent = input.float(0.8, title="Stop Loss (%)", minval=0.1, step=0.1) // % from entry price
risk_reward_ratio = input.float(2.0, title="Risk-Reward Ratio", minval=0.5, step=0.1) // 2.0 = 2R, 3.0 = 3R etc.

// Advanced Trailing Stop Loss
trailing_start_percent = input.float(1.0, title="Trailing Stop Start (%)", minval=0.1, step=0.1) // % profit to activate TSL
trailing_stop_percent = input.float(0.5, title="Trailing Stop Trail (%)", minval=0.1, step=0.1) // % to trail by once activated

// --- Calculations ---
// Calculate SMAs
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)

// Plot SMAs on chart
plot(fast_sma, color=color.blue, title="Fast SMA")
plot(slow_sma, color=color.red, title="Slow SMA")

// Crossover conditions (calculated on previous bar to prevent look-ahead bias)
long_condition = ta.crossover(fast_sma[1], slow_sma[1])
short_condition = ta.crossunder(fast_sma[1], slow_sma[1])

// --- Money Management and Position Sizing ---
// Calculate account equity and risk amount
account_equity = strategy.initial_capital + strategy.netprofit
risk_amount = account_equity * (risk_per_trade_percent / 100)

// Calculate Stop Loss price based on entry and SL percentage
var float long_stop_price = na
var float short_stop_price = na
var float long_take_profit_price = na
var float short_take_profit_price = na

// --- Trailing Stop Loss Variables ---
var float trailing_long_activated_price = na // Price at which TSL is activated for long
var float trailing_short_activated_price = na // Price at which TSL is activated for short
var float current_trailing_stop_long = na
var float current_trailing_stop_short = na
var bool  is_long_trailing_active = false
var bool  is_short_trailing_active = false

// --- Strategy Entry and Exit Orders ---
if long_condition
    // Reset TSL variables for a new entry
    trailing_long_activated_price := na
    current_trailing_stop_long := na
    is_long_trailing_active := false

    // Calculate SL, TP for long entry
    long_stop_price := close * (1 - stop_loss_percent / 100) // SL below entry
    long_take_profit_price := close * (1 + (stop_loss_percent * risk_reward_ratio) / 100) // TP above entry based on RRR

    // Calculate position size for long entry
    price_change_per_unit = close * (stop_loss_percent / 100)
    if price_change_per_unit > 0
        long_quantity = risk_amount / price_change_per_unit
        strategy.entry("Long", strategy.long, qty=long_quantity, comment="Buy Signal")
    else
        strategy.entry("Long", strategy.long, comment="Buy Signal (Risk calculation skipped)") // Fallback if SL is 0 or negative

if short_condition
    // Reset TSL variables for a new entry
    trailing_short_activated_price := na
    current_trailing_stop_short := na
    is_short_trailing_active := false

    // Calculate SL, TP for short entry
    short_stop_price := close * (1 + stop_loss_percent / 100) // SL above entry
    short_take_profit_price := close * (1 - (stop_loss_percent * risk_reward_ratio) / 100) // TP below entry based on RRR

    // Calculate position size for short entry
    price_change_per_unit = close * (stop_loss_percent / 100)
    if price_change_per_unit > 0
        short_quantity = risk_amount / price_change_per_unit
        strategy.entry("Short", strategy.short, qty=short_quantity, comment="Sell Signal")
    else
        strategy.entry("Short", strategy.short, comment="Sell Signal (Risk calculation skipped)") // Fallback if SL is 0 or negative

// --- Stop Loss, Take Profit, Trailing Stop Logic ---

// Long position management
if strategy.position_size > 0 // We are in a long position
    entry_price = strategy.opentrades.entry_price(0)
    current_profit_percent = ((close - entry_price) / entry_price) * 100

    // Initial SL and TP set at entry
    strategy.exit("Exit Long", from_entry="Long", stop=long_stop_price, limit=long_take_profit_price, comment="TP/SL Long")

    // Check for Trailing Stop activation
    if not is_long_trailing_active and current_profit_percent >= trailing_start_percent
        is_long_trailing_active := true
        // Set initial trailing stop when activated
        trailing_long_activated_price := high // Or close, depending on preference
        current_trailing_stop_long := high * (1 - trailing_stop_percent / 100)

    // If trailing stop is active, update it
    if is_long_trailing_active
        // Only move the trailing stop up (for long positions)
        potential_new_stop = high * (1 - trailing_stop_percent / 100)
        current_trailing_stop_long := math.max(current_trailing_stop_long, potential_new_stop)

        // Ensure trailing stop is not below the initial long_stop_price
        // This prevents the trailing stop from being less protective than the initial SL if the price drops after activation.
        current_trailing_stop_long := math.max(current_trailing_stop_long, long_stop_price)

        strategy.exit("Trailing Exit Long", from_entry="Long", stop=current_trailing_stop_long, comment="Trailing SL Long")

// Short position management
if strategy.position_size < 0 // We are in a short position
    entry_price = strategy.opentrades.entry_price(0)
    current_profit_percent = ((entry_price - close) / entry_price) * 100

    // Initial SL and TP set at entry
    strategy.exit("Exit Short", from_entry="Short", stop=short_stop_price, limit=short_take_profit_price, comment="TP/SL Short")

    // Check for Trailing Stop activation
    if not is_short_trailing_active and current_profit_percent >= trailing_start_percent
        is_short_trailing_active := true
        // Set initial trailing stop when activated
        trailing_short_activated_price := low // Or close, depending on preference
        current_trailing_stop_short := low * (1 + trailing_stop_percent / 100)

    // If trailing stop is active, update it
    if is_short_trailing_active
        // Only move the trailing stop down (for short positions)
        potential_new_stop = low * (1 + trailing_stop_percent / 100)
        current_trailing_stop_short := math.min(current_trailing_stop_short, potential_new_stop)

        // Ensure trailing stop is not above the initial short_stop_price
        current_trailing_stop_short := math.min(current_trailing_stop_short, short_stop_price)

        strategy.exit("Trailing Exit Short", from_entry="Short", stop=current_trailing_stop_short, comment="Trailing SL Short")

// Plot background color to indicate active position (optional)
bgcolor(strategy.position_size > 0 ? color.new(color.green, 90) : na, title="Long Position Background")
bgcolor(strategy.position_size < 0 ? color.new(color.red, 90) : na, title="Short Position Background")