মাল্টি-টাইম ফ্রেম ট্রেন্ড মোমেন্টাম এবং VWAP রিবাউন্ড ক্রসওভার পরিমাণগত কৌশল

EMA VWAP RSI ATR MTF 趋势跟踪 波动性过滤 动态止损 移动止损
সৃষ্টির তারিখ: 2025-03-25 14:25:47 অবশেষে সংশোধন করুন: 2025-03-25 14:25:47
অনুলিপি: 0 ক্লিকের সংখ্যা: 414
2
ফোকাস
319
অনুসারী

মাল্টি-টাইম ফ্রেম ট্রেন্ড মোমেন্টাম এবং VWAP রিবাউন্ড ক্রসওভার পরিমাণগত কৌশল মাল্টি-টাইম ফ্রেম ট্রেন্ড মোমেন্টাম এবং VWAP রিবাউন্ড ক্রসওভার পরিমাণগত কৌশল

মাল্টি-টাইম ফ্রেম ট্রেন্ড মোমেন্টাম এবং VWAP রিবাউন্ড ক্রসওভার পরিমাণগত কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি কয়েকটি মূল প্রযুক্তিগত সূচক এবং শর্তের সমন্বয়ে কাজ করেঃ

  1. মাল্টি টাইম ফ্রেম ট্রেন্ড সনাক্তকরণকৌশলটি প্রথমে 1 ঘন্টার সময় ফ্রেমে 9 এবং 21 চক্রের ইএমএ ব্যবহার করে সামগ্রিক প্রবণতার দিকনির্দেশনা নির্ধারণ করে। যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএর উপরে থাকে, তখন এটিকে বিজোড় প্রবণতা হিসাবে চিহ্নিত করা হয়; বিপরীতভাবে, এটি একটি বিজোড় প্রবণতা।

  2. ১৫ মিনিটের সময় ফ্রেমে প্রবেশের সংকেত

    • ইএমএ ক্রসঃ একটি ট্রেডিং সিগন্যাল তৈরি করা হয় যখন একটি স্বল্পমেয়াদী ইএমএ একটি দীর্ঘমেয়াদী ইএমএ অতিক্রম করে যা একটি নিশ্চিত ট্রেন্ডের দিক থেকে
    • ভিডাব্লুএপি বিপর্যয়ঃ দামগুলি ট্রেডিং ভলিউম ওজনের গড়ের কাছাকাছি থেকে বিপর্যয় ঘটায় এবং ভিডাব্লুএপি লাইনটি অতিক্রম করার সময় একটি সংকেত দেয়
  3. ফিল্টার করুন

    • আরএসআই ফিল্টারঃ মাল্টিহেড সংকেতগুলি আরএসআইকে 50-70 এর মধ্যে এবং ফাঁকা-হেড সংকেতগুলি আরএসআইকে 30-50 এর মধ্যে প্রয়োজন
    • অস্থিরতা ফিল্টারঃ এটিআর সূচক ব্যবহার করে নিশ্চিত করুন যে বর্তমান বাজারের অস্থিরতা স্বাভাবিক সীমার মধ্যে রয়েছে
  4. লেনদেন ব্যবস্থাপনা

    • লেনদেনের সময় উইন্ডোর সীমাবদ্ধতাঃ শুধুমাত্র নির্দিষ্ট লেনদেনের সময়কালে লেনদেন সম্পাদন করা
    • দৈনিক সিগন্যাল সীমাবদ্ধতাঃ প্রতিদিনের লেনদেনের সংখ্যা নিয়ন্ত্রণ করুন
    • দুপুর ১২ টায় সংকেত পরিপূরকঃ যদি সকালে কোন সংকেত না থাকে, তাহলে প্রবণতা এবং ভিডাব্লুএপি সম্পর্কের উপর নির্ভর করে দুপুর ১২ টায় অতিরিক্ত সংকেত তৈরি করা হয়
  5. ঝুঁকি ব্যবস্থাপনা

    • ডায়নামিক মুভিং স্টপঃ প্রারম্ভিক স্টপ ইনপুট মূল্য এবং অস্থিরতার উপর ভিত্তি করে সেট করা হয় এবং দামের গতিশীলতার উপর ভিত্তি করে স্টপ পজিশনে পরিবর্তন করা হয়

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

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

এই কোডটি বিশ্লেষণ করে, আমরা নিম্নলিখিত সুস্পষ্ট সুবিধাগুলি খুঁজে পেতে পারিঃ

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

  2. নমনীয়তা: কৌশলটি বিভিন্ন ধরণের প্যারামিটার সহ ইএমএ চক্র, আরএসআই স্তর, এটিআর পরিসীমা এবং ট্রেডিং সময় সহ বিভিন্ন ধরণের ট্রেডিংয়ের সাথে সামঞ্জস্যপূর্ণ।

  3. ঝুঁকি ব্যবস্থাপনা

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

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

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

  7. স্মার্ট সিগন্যাল সম্পূরক: যেদিন কোন প্রধান সংকেত ট্রিগার করা হয় না, সেই দিন কৌশলটি নির্দিষ্ট সময়ে (মধ্যাহ্ন ১২ টা) ট্রেন্ড এবং মূল্য অবস্থানের উপর ভিত্তি করে বিকল্প সংকেত তৈরি করে, যার ফলে ট্রেডিং সুযোগের ক্যাপচারের হার বৃদ্ধি পায়।

কৌশলগত ঝুঁকি

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

  1. প্রবণতা হঠাৎ পাল্টে যাওয়ার ঝুঁকি: যদিও মাল্টি টাইম ফ্রেম বিশ্লেষণ ব্যবহার করা হয়, তবুও বাজারে দ্রুত বিপর্যয় দেখা দিতে পারে, বিশেষ করে যখন বড় খবর বা ইভেন্ট প্রকাশিত হয়, যার ফলে স্টপ লস ট্রিগার হতে পারে।

    • সমাধানঃ গুরুত্বপূর্ণ অর্থনৈতিক তথ্য বা কোম্পানির ঘোষণার আগে লেনদেন স্থগিত করা; অস্বাভাবিক অস্থিরতা দূর করার জন্য ফিল্টার যুক্ত করার কথা বিবেচনা করা।
  2. প্যারামিটার অপ্টিমাইজেশন ওভারফিটকৌশলটির বিভিন্ন প্যারামিটার (যেমন ইএমএ চক্র, আরএসআই হ্রাস ইত্যাদি) historicalতিহাসিক ডেটাতে ভাল পারফর্ম করতে পারে তবে ভবিষ্যতে একই প্রভাব বজায় রাখতে পারে না।

    • সমাধানঃ দৃঢ় প্যারামিটার সেটিং; বিভিন্ন বাজার অবস্থার এবং সময়কালের মধ্যে যথেষ্ট ব্যাক-টেস্টিং; নিয়মিতভাবে প্যারামিটার কার্যকারিতা পুনরায় যাচাই করা।
  3. লিকুইডিটির ঝুঁকিনিম্ন তরল জাতের ক্ষেত্রে, স্লাইড পয়েন্ট এবং মূল্য ফাঁক প্রকৃত প্রবেশ মূল্য বা স্টপ লসকে প্রত্যাশিত স্তর থেকে দূরে নিয়ে যেতে পারে।

    • সমাধানঃ উচ্চতর তরলতাযুক্ত লেনদেনের জাতগুলিকে অগ্রাধিকার দিন; কম লেনদেনের সময়গুলি এড়িয়ে চলুন; তরলতা ফিল্টার করার শর্তগুলি বাড়ানোর বিষয়ে বিবেচনা করুন।
  4. লেনদেনের খরচ প্রভাবএই কৌশলগুলি অনেক বেশি লেনদেনের খরচ সৃষ্টি করতে পারে এবং প্রকৃত মুনাফা হ্রাস করতে পারে।

    • সমাধানঃ সংকেতের গুণমানকে অপ্টিমাইজ করুন যাতে কম সংখ্যক লেনদেন হয়; ন্যূনতম লাভের লক্ষ্যমাত্রার প্রয়োজনীয়তা বাড়ান; কিছু দিনের সংকেত রাতারাতি হোল্ডিংয়ে স্থানান্তরিত করার বিষয়ে বিবেচনা করুন।
  5. সময়সীমার সীমাবদ্ধতা সুযোগ হারাতে পারে: কঠোর লেনদেনের সময় উইন্ডোটি বাইরের গুণমানের সংকেতগুলিকে মিস করতে পারে।

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

    • সমাধানঃ মার্কেট স্ট্রাকচার আইডেন্টিফিকেশন লজিক যুক্ত করা; বিভিন্ন মার্কেট স্ট্যাটাসে বিভিন্ন সিগন্যাল জেনারেশন মেকানিজম প্রয়োগ করা।

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

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

  1. বাজার পরিবেশ শ্রেণীবিভাগ এবং অভিযোজন প্যারামিটার

    • মার্কেট টাইপিং লজিক যুক্ত করুন (ট্রেন্ড, ঝড় বা ওভারল্যাপ) এবং বিভিন্ন মার্কেট স্ট্যাটাস অনুযায়ী প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে সামঞ্জস্য করুন
    • বাস্তবায়নের কারণঃ বিভিন্ন বাজারের পরিবেশের জন্য বিভিন্ন ট্রেডিং কৌশল প্রয়োজন, স্বনির্ধারিত প্যারামিটারগুলি বিভিন্ন পরিবেশে পারফরম্যান্স উন্নত করতে পারে
  2. উন্নত সংকেত ফিল্টারিং ব্যবস্থা

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

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

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

    • বিকল্প সংকেতের জন্য আরো কঠোর নিশ্চিতকরণ শর্ত যুক্ত করা হয়েছে, যেমন সমর্থন/প্রতিরোধ পরীক্ষা বা মূল মূল্য স্তরের ব্রেকডাউন
    • বাস্তবায়নের কারণঃ বর্তমান বিকল্প সংকেত শর্তগুলি তুলনামূলকভাবে সহজ, যা মূল সংকেতের চেয়ে নিম্নমানের হতে পারে
  6. মেশিন লার্নিং মডেল ইন্টিগ্রেশন

    • ঐতিহাসিক ডেটা প্রশিক্ষণ মডেল ব্যবহার করে সংকেত সাফল্যের সম্ভাব্যতা পূর্বাভাস, শুধুমাত্র উচ্চ সম্ভাব্যতা সংকেত সম্পাদন করে
    • কেনঃ মেশিন লার্নিং জটিল প্যাটার্ন এবং সম্পর্কগুলি সনাক্ত করতে পারে যা মানুষের পক্ষে উপলব্ধি করা কঠিন, ভবিষ্যদ্বাণী সঠিকতা উন্নত করে
  7. পুনঃনির্ধারণের প্রবেশাধিকার যুক্তিবিজ্ঞান

    • ট্রেন্ডের দিকনির্দেশনা নিশ্চিত করার পরে, মূল্যের পুনঃনির্ধারণের জন্য একটি গুরুত্বপূর্ণ সমর্থন / প্রতিরোধের অবস্থানে প্রবেশের জন্য অপেক্ষা করুন
    • কেন বাস্তবায়ন করা হয়ঃ রিটার্ন এন্ট্রি সাধারণত একটি ভাল রিস্ক-রিটার্ন অনুপাত প্রদান করে, যা অপ্রয়োজনীয় ক্ষতিগ্রস্ত লেনদেনকে হ্রাস করে

সারসংক্ষেপ

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

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

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

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

//@version=5
strategy("HDFC Bank 95% Accuracy Intraday Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// --- Inputs ---
emaShortPeriod = input(9, "Short EMA Period")
emaLongPeriod = input(21, "Long EMA Period")
rsiPeriod = input(14, "RSI Period")
atrPeriod = input(14, "ATR Period")
atrNormalRange = input.float(1.0, "ATR Normal Range %", minval=0.5, maxval=2.0, step=0.1)
trailPercent = input.float(0.5, "Trailing Stop %", minval=0.1, maxval=1.0, step=0.1)
tradeStartHour = input(10, "Trade Start Hour")
tradeStartMin = input(0, "Trade Start Minute")
tradeEndHour = input(14, "Trade End Hour")
tradeEndMin = input(0, "Trade End Minute")

// --- Time and Session Management ---
inTradeWindow = (hour >= tradeStartHour and hour <= tradeEndHour) and (minute >= tradeStartMin and minute <= tradeEndMin) and (hour != tradeEndHour or minute < tradeEndMin)
isNewDay = ta.change(time("D"))
var int signalsToday = 0
if isNewDay
    signalsToday := 0

// --- Multi-Timeframe Trend (1-Hour) ---
emaShort1H = request.security(syminfo.tickerid, "60", ta.ema(close, emaShortPeriod))
emaLong1H = request.security(syminfo.tickerid, "60", ta.ema(close, emaLongPeriod))
bullTrend1H = emaShort1H > emaLong1H
bearTrend1H = emaShort1H < emaLong1H

// --- Indicators (15-Minute) ---
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)
vwap = ta.vwap(hlc3)
rsi = ta.rsi(close, rsiPeriod)
atr = ta.atr(atrPeriod)
priceRange = atr / close * 100
normalVolatility = priceRange <= atrNormalRange

// --- Entry Conditions ---
emaCrossoverUp = ta.crossover(emaShort, emaLong) and bullTrend1H
emaCrossoverDown = ta.crossunder(emaShort, emaLong) and bearTrend1H
vwapBounceUp = ta.crossover(close, vwap) and ta.lowest(low, 2) < vwap and bullTrend1H and rsi > 50
vwapBounceDown = ta.crossunder(close, vwap) and ta.highest(high, 2) > vwap and bearTrend1H and rsi < 50

longCondition = (emaCrossoverUp or vwapBounceUp) and normalVolatility and rsi > 50 and rsi < 70 and inTradeWindow
shortCondition = (emaCrossoverDown or vwapBounceDown) and normalVolatility and rsi < 50 and rsi > 30 and inTradeWindow

// --- Ensure One Signal Per Day ---
if longCondition or shortCondition
    signalsToday := signalsToday + 1
if signalsToday == 0 and hour == 12 and minute == 0 and inTradeWindow
    longCondition = close > vwap and bullTrend1H and rsi > 50 and normalVolatility
    shortCondition = close < vwap and bearTrend1H and rsi < 50 and normalVolatility

// --- Dynamic Stop-Loss and Trailing Take-Profit ---
var float entryPrice = 0.0
var float trailStop = 0.0
if longCondition
    entryPrice := close
    trailStop := entryPrice - (entryPrice * trailPercent / 100)
if shortCondition
    entryPrice := close
    trailStop := entryPrice + (entryPrice * trailPercent / 100)

strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)

if strategy.position_size > 0
    trailStop := math.max(trailStop, entryPrice - (high - entryPrice) * trailPercent / 100)
    strategy.exit("Trail Long", "Long", trail_points=(entryPrice - trailStop) / syminfo.mintick, trail_offset=(entryPrice - trailStop) / syminfo.mintick)
if strategy.position_size < 0
    trailStop := math.min(trailStop, entryPrice + (entryPrice - low) * trailPercent / 100)
    strategy.exit("Trail Short", "Short", trail_points=(trailStop - entryPrice) / syminfo.mintick, trail_offset=(trailStop - entryPrice) / syminfo.mintick)

// --- Plot Arrows and Indicators ---
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.normal)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.normal)
plot(emaShort, color=color.blue, title="EMA Short")
plot(emaLong, color=color.red, title="EMA Long")
plot(vwap, color=color.yellow, title="VWAP")