একাধিক গতিশীল নিশ্চিতকরণ ট্রেন্ড শক্তি ট্রেডিং কৌশল

EMA MACD RSI ATR 成交量 枢轴点
সৃষ্টির তারিখ: 2025-05-27 13:53:26 অবশেষে সংশোধন করুন: 2025-05-27 13:53:26
অনুলিপি: 5 ক্লিকের সংখ্যা: 276
2
ফোকাস
319
অনুসারী

একাধিক গতিশীল নিশ্চিতকরণ ট্রেন্ড শক্তি ট্রেডিং কৌশল একাধিক গতিশীল নিশ্চিতকরণ ট্রেন্ড শক্তি ট্রেডিং কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটির মূল নীতিটি হ’ল শক্তিশালী প্রবণতা সনাক্ত করা এবং একাধিক প্রযুক্তিগত সূচকগুলির সমন্বিত নিশ্চিতকরণের মাধ্যমে সঠিকভাবে প্রবেশের সময়টি ধরে রাখা। এর সুনির্দিষ্ট যুক্তিটি নিম্নরূপঃ

  1. প্রবণতা নিশ্চিতকরণ: ১০-চক্র এবং ১৫-চক্রের ইন্ডেক্সাল মুভিং এভারেজ (ইএমএ) ব্যবহার করে বেস ট্রেন্ড নির্ধারণের জন্য। ইএমএর উপরে থাকা দামকে উর্ধ্বমুখী ট্রেন্ড হিসাবে বিবেচনা করা হয় এবং নীচে থাকা দামকে নিম্নমুখী ট্রেন্ড হিসাবে বিবেচনা করা হয়।

  2. গতি পরিবর্তন সংকেত: MACD কলামিগ্রাফ ব্যবহার করে (পরম্পরাগত MACD লাইনের পরিবর্তে) ট্রেন্ডের গতিশীলতা রূপান্তর করার জন্য একটি গুরুত্বপূর্ণ সংকেত হিসাবে শূন্য অক্ষের মধ্য দিয়ে। MACD কলামিগ্রাফ শূন্য অক্ষের মধ্য দিয়ে উর্ধ্বমুখী গতিশীলতা বৃদ্ধি এবং শূন্য অক্ষের মধ্য দিয়ে নিম্নমুখী গতিশীলতা বৃদ্ধি।

  3. গতিশক্তি নিশ্চিতকরণ: RSI সূচকের মাধ্যমে বর্তমান প্রবণতার গতিশীলতার শক্তি যাচাই করুন। RSI মান 50 এর চেয়ে বড়কে উত্থান গতিশীলতা হিসাবে বিবেচনা করা হয়, 50 এর চেয়ে কমকে পতন গতিশীলতা হিসাবে বিবেচনা করা হয়।

  4. মূল্যের বৈধতা: বিকল্পভাবে W আকৃতির (উচ্চতম নিম্নতম) বা M আকৃতির (নিম্নতম উচ্চতম) সনাক্তকরণের জন্য অক্ষ বিশ্লেষণ ব্যবহার করুন, যাতে প্রবণতার স্থায়িত্ব আরও নিশ্চিত করা যায়।

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

  6. অর্ডার নিশ্চিত: লেনদেনের পরিমাণ তার চলমান গড়ের চেয়ে বেশি হতে হবে, যা নির্ধারিত থ্রেশহোল্ডের গুণিতক দ্বারা গুণিত হবে, যাতে নিশ্চিত করা যায় যে বাজারে পর্যাপ্ত অংশগ্রহণ রয়েছে যা দামের গতিকে সমর্থন করে।

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

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

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

  1. মাল্টি-ডি সিগন্যাল নিশ্চিতকরণট্রেডিং সিগন্যালের বিভিন্ন মাত্রা (ট্রেন্ডিং, ইএমএ, গতিশীলতা, এমএসিডি, আরএসআই, মূল্যের আকার, এক্সেল পয়েন্ট, অস্থিরতা, এটিআর এবং বাজার অংশগ্রহণ, লেনদেনের পরিমাণ) একত্রিত করে একটি বিস্তৃত সিদ্ধান্ত গ্রহণের সিস্টেম তৈরি করে, যা মিথ্যা সংকেতকে ব্যাপকভাবে হ্রাস করে।

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

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

  4. প্রযুক্তিগত সমন্বয়: ওয়েবহুকের মাধ্যমে, মানুষের হস্তক্ষেপ এবং আবেগগত প্রভাব হ্রাস করে, স্বয়ংক্রিয় লেনদেনের জন্য বাহ্যিক লেনদেনের প্ল্যাটফর্মের সাথে সংহতকরণ (যেমন এমটি 5) ।

  5. ভিজ্যুয়ালাইজড সিদ্ধান্ত গ্রহণকৌশলঃ গ্রাফিকাল ট্যাগিং, ব্যাকগ্রাউন্ড হাইলাইট এবং ট্রেন্ড লাইন অঙ্কনের মতো ভিজ্যুয়াল উপাদানগুলি ব্যবহার করে ট্রেডিং সিগন্যাল এবং বাজারের অবস্থাকে স্বজ্ঞাতভাবে উপস্থাপন করা, ট্রেডিং সিদ্ধান্তের স্বজ্ঞাততা বাড়ানো।

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

কৌশলগত ঝুঁকি

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

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

  2. সংকেত বিলম্বিতকরণEMA, MACD ইত্যাদির মতো সূচক ব্যবহারের ক্ষেত্রে অন্তর্নিহিত পিছিয়ে পড়া রয়েছে, যা প্রবেশের সময় বিলম্বিত হতে পারে, লাভের কিছু সুযোগ মিস করতে পারে বা প্রবণতা বিপরীত হওয়ার শুরুতে মূল দিকের অবস্থান বজায় রাখতে পারে। পিছিয়ে পড়া কমাতে প্রাক-সূচক বা সংক্ষিপ্ত সূচক চক্রের প্রবর্তন বিবেচনা করা যেতে পারে।

  3. বাজার পরিবেশ নির্ভরতা: এই কৌশলটি স্পষ্ট প্রবণতাযুক্ত বাজারে ভাল কাজ করে, তবে অস্থিরতা বা দ্রুত বিপরীতমুখী বাজারের পরিবেশে ধারাবাহিক ক্ষতি হতে পারে। বিভিন্ন বাজার অবস্থার জন্য প্যারামিটার অপ্টিমাইজেশন বা বাজার অবস্থার সনাক্তকরণ ব্যবস্থা চালু করার পরামর্শ দেওয়া হয়েছে, বিভিন্ন বাজার অবস্থার সাথে সামঞ্জস্য রেখে বিভিন্ন প্যারামিটার সেটিং রয়েছে।

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

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

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

কোডের গভীর বিশ্লেষণের উপর ভিত্তি করে, এই কৌশলটি আরও উন্নত করা যেতে পারেঃ

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

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

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

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

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

  6. মূল্যবৃদ্ধি কার্যক্রম নিশ্চিতকরণ: মূল্য আচরণ বিশ্লেষণের আরও উপাদান যোগ করা, যেমন ব্রেকথ্রু নিশ্চিতকরণ, মিথ্যা ব্রেকথ্রু সনাক্তকরণ, সমর্থন প্রতিরোধের পরীক্ষা ইত্যাদি, সংকেতের গুণমান উন্নত করা।

  7. স্টপ লস কৌশল উন্নত করুন: এটিআর বা সমর্থনকারী প্রতিরোধের স্তরের উপর ভিত্তি করে স্টপস্টপ স্তরের গতিশীল সেট করুন, স্থির পয়েন্টের পরিবর্তে, যা ঝুঁকি ব্যবস্থাপনাকে বর্তমান বাজারের পরিবেশের সাথে আরও উপযুক্ত করে তোলে।

সারসংক্ষেপ

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

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

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

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

//@version=5
strategy("SpeedBullish Strategy Confirm V6.2", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// ===== Input Parameters =====
pivot_left = input.int(3, title="Pivot Left Bars")
pivot_right = input.int(3, title="Pivot Right Bars")
macd_fast = input.int(8, title="MACD Fast Length")
macd_slow = input.int(21, title="MACD Slow Length")
macd_signal = input.int(6, title="MACD Signal Smoothing")
rsi_length = input.int(14, title="RSI Length")
rsi_entry_level = input.int(50, title="RSI Threshold")

// ===== Risk Management Parameters =====
tp_points = input.float(50, title="Take Profit (Points)")
sl_points = input.float(30, title="Stop Loss (Points)")
trailing_distance_points = input.float(300, title="Trailing Stop Distance (Points)")

// ===== Dynamic Confirmation Parameters =====
use_atr_confirmation = input.bool(true, title="Use ATR Confirmation")
atr_length = input.int(14, title="ATR Length")
atr_multiplier = input.float(1.5, title="ATR Multiplier")

use_volume_confirmation = input.bool(true, title="Use Volume Confirmation")
volume_length = input.int(20, title="Volume SMA Length")
volume_threshold_multiplier = input.float(1.0, title="Volume Threshold Multiplier")

use_pivot_confirmation = input.bool(true, title="Use Pivot Confirmation")

// ===== Webhook Settings =====
webhook_url = input.string("https://your-server.com/webhook.php", title="Webhook URL")
secret_key = input.string("your_secret_key", title="Secret Key")

// ===== HLCC/4 Calculation =====
hlcc4 = (high + low + close + close) / 4

// ===== EMA Calculation =====
ema10 = ta.ema(hlcc4, 10)
ema15 = ta.ema(hlcc4, 15)

// ===== MACD Calculation =====
[macdLine, signalLine, _] = ta.macd(close, macd_fast, macd_slow, macd_signal)
macd_hist = macdLine - signalLine

// ===== RSI Calculation =====
rsiValue = ta.rsi(close, rsi_length)

// ===== ATR and Volume Confirmation =====
atr_value = ta.atr(atr_length)

high_volatility = true
if use_atr_confirmation
    high_volatility := atr_value > atr_multiplier * ta.sma(atr_value, atr_length)

high_volume = true
if use_volume_confirmation
    volume_threshold = ta.sma(volume, volume_length) * volume_threshold_multiplier
    high_volume := volume > volume_threshold

// ===== Find Pivots =====
var float pl = na
var float ph = na
var float lastLow = na
var float lastHigh = na
var int lastLowBar = na
var int lastHighBar = na
possibleW = true
possibleM = true

if use_pivot_confirmation
    ph := ta.pivothigh(high, pivot_left, pivot_right)
    pl := ta.pivotlow(low, pivot_left, pivot_right)
    possibleW := false
    possibleM := false

    if not na(pl)
        if na(lastLow)
            lastLow := pl
            lastLowBar := bar_index
        else
            if pl > lastLow
                possibleW := true
            lastLow := pl
            lastLowBar := bar_index

    if not na(ph)
        if na(lastHigh)
            lastHigh := ph
            lastHighBar := bar_index
        else
            if ph < lastHigh
                possibleM := true
            lastHigh := ph
            lastHighBar := bar_index

// ===== Conditions =====
macd_cross_up = ta.crossover(macd_hist, 0)
macd_cross_down = ta.crossunder(macd_hist, 0)

rsi_ok_buy = rsiValue > rsi_entry_level
rsi_ok_sell = rsiValue < rsi_entry_level

ema_ok_buy = close > ema10 or close > ema15
ema_ok_sell = close < ema10 or close < ema15

buyCondition = ema_ok_buy and macd_cross_up and rsi_ok_buy
sellCondition = ema_ok_sell and macd_cross_down and rsi_ok_sell

if use_atr_confirmation
    buyCondition := buyCondition and high_volatility
    sellCondition := sellCondition and high_volatility

if use_volume_confirmation
    buyCondition := buyCondition and high_volume
    sellCondition := sellCondition and high_volume

// ===== Plots =====
plot(ema10, color=color.blue, title="EMA 10")
plot(ema15, color=color.red, title="EMA 15")

plotshape(use_pivot_confirmation and not na(pl), title="Pivot Low", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(use_pivot_confirmation and not na(ph), title="Pivot High", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)

plotshape(buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)



bgcolor(buyCondition ? color.new(color.green, 90) : na)
bgcolor(sellCondition ? color.new(color.red, 90) : na)

plot(rsiValue, color=color.new(color.blue, 0), linewidth=1, title="RSI")
plot(macd_hist, color=color.new(color.purple, 0), linewidth=1, title="MACD Histogram")

// ===== Strategy Orders =====
if buyCondition and strategy.position_size <= 0
    long_tp_price = close + tp_points * syminfo.mintick
    long_sl_price = close - sl_points * syminfo.mintick
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit", from_entry="Buy", limit=long_tp_price)
    strategy.exit("Trailing Stop", from_entry="Buy", trail_points=trailing_distance_points * syminfo.mintick, trail_offset=trailing_distance_points * syminfo.mintick)
    buy_payload = '{"symbol":"' + syminfo.ticker + '","action":"buy","price":' + str.tostring(close) + '}'
    alert(buy_payload, alert.freq_once_per_bar_close)

if sellCondition and strategy.position_size >= 0
    short_tp_price = close - tp_points * syminfo.mintick
    short_sl_price = close + sl_points * syminfo.mintick
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit", from_entry="Sell", limit=short_tp_price)
    strategy.exit("Trailing Stop", from_entry="Sell", trail_points=trailing_distance_points * syminfo.mintick, trail_offset=trailing_distance_points * syminfo.mintick)
    sell_payload = '{"symbol":"' + syminfo.ticker + '","action":"sell","price":' + str.tostring(close) + '}'
    alert(sell_payload, alert.freq_once_per_bar_close)