
ডায়নামিক স্কেলড ডাবল মুভিং এভারেজ সংকীর্ণ-ব্যান্ডের ব্রেক-আউট কোয়ান্টিফিকেশন ট্রেডিং কৌশলটি একটি উচ্চতর ট্রেডিং সিস্টেম যা অলিভার ভেলজের শিক্ষার উপর ভিত্তি করে, প্রযুক্তিগত বিশ্লেষণ এবং গতিশীল ট্রেডিংয়ের মূল উপাদানগুলির সাথে মিলিত। এই কৌশলটি মূলত স্বল্প (২০-চক্র) এবং দীর্ঘ (২০০-চক্র) সহজ মুভিং এভারেজ (এসএমএ) এর মধ্যে সম্পর্ককে কাজে লাগায়, দামের গতিশীলতা, অস্থিরতা এবং পতনের রূপরেখার সাথে সংযুক্ত, সংকীর্ণ-ব্যান্ডের অঞ্চলে ব্রেক-আউট ব্যবসায়ের উচ্চ-সম্ভাব্যতার সুযোগগুলি সন্ধান করে। এই কৌশলটির মূল বৈশিষ্ট্যটি হ’ল স্লাইডিং এভারেজের সাথে ঘনিষ্ঠভাবে সম্পর্কিত সংকীর্ণ-ব্যান্ডের অঞ্চলে, শক্তিশালী দিকনির্দেশক “দ্য ইলিফ্যান পিল” এবং রঙিন সংকেত চিহ্নিত করে, এবং পূর্ব-নির্ধারিত ঝুঁকি-ফিট-
এই কৌশলটির মূল নীতি নিম্নলিখিত কয়েকটি মূল কারণের উপর ভিত্তি করে তৈরি করা হয়েছেঃ
ডাবল মুভিং এভারেজকৌশলঃ 20 পিরিয়ডের এসএমএ এবং 200 পিরিয়ডের এসএমএ ব্যবহার করে ট্রেডিং ফ্রেমওয়ার্ক তৈরি করুন। যখন এই দুটি গড় লাইন তুলনামূলকভাবে ছোট হয় (সংকীর্ণ-ব্যান্ডের অবস্থা, পার্থক্য 1.5% এর চেয়ে কম) তখন সিস্টেমটি সম্ভাব্য ট্রেডিং সংকেতগুলির সন্ধান করে।
গড় রেখার প্রান্তিকতা যাচাইকরণকৌশলঃ 20 পিরিয়ডের এসএমএর কোণ গণনা করে (বিপরীতমুখী ক্রিয়া ব্যবহার করে) নিশ্চিত করুন যে বাজারে যথেষ্ট গতিশীলতা রয়েছে, কেবলমাত্র যখন কোণটি 30 ডিগ্রির বেশি হয় তখনই প্রবেশের বিষয়টি বিবেচনা করা উচিত।
প্রবেশের সংকেতের ধরন:
ঝুঁকি ব্যবস্থাপনা কাঠামো:
বাজারের অবস্থা বিচার: কৌশলঃ মার্কেটের অবস্থা নির্ধারণের জন্য দুটি সমান্তরাল রেখার মধ্যে সম্পর্কিত দূরত্ব গণনা করুনঃ
মাল্টি-হেড প্রবেশের শর্তঃ সংকীর্ণ-ব্যান্ডের অবস্থা + কার্যকর প্রান্তিকতা + ক্লোজ-আপ মূল্য SMA20 এর চেয়ে বেশি + SMA20 SMA200 এর চেয়ে বেশি + হাতি স্তম্ভের আকার। খালি মাথা প্রবেশের শর্তঃ সংকীর্ণ-ব্যান্ড অবস্থা + কার্যকর প্রান্তিকতা + ক্লোজ-আপ মূল্য SMA20 এর নীচে + SMA20 SMA200 এর নীচে + হাতি স্তম্ভের আকার।
কোডের গভীর বিশ্লেষণের মাধ্যমে, এই কৌশলটির নিম্নলিখিত উল্লেখযোগ্য সুবিধাগুলি রয়েছেঃ
একাধিক নিশ্চিতকরণ ব্যবস্থাকৌশলটি সমান্তরাল সম্পর্ক, সমান্তরাল প্রান্তিকতা, মূল্যের অবস্থান এবং বিশেষ পতনের আকারের মতো একাধিক মাত্রার নিশ্চিতকরণ উপাদানকে একত্রিত করে, কার্যকরভাবে নিম্নমানের সংকেতগুলিকে ফিল্টার করে এবং লেনদেনের গুণমানকে উন্নত করে।
বাজারের অবস্থার সাথে খাপ খাইয়ে নেওয়া: সংকীর্ণ-ব্যান্ড এবং প্রশস্ত-ব্যান্ড অবস্থার মধ্যে পার্থক্য করে, কৌশলটি বাজারের সবচেয়ে উপযুক্ত অবস্থার মধ্যে সুযোগগুলি খুঁজে বের করতে সক্ষম হয় এবং ইতিমধ্যে প্রসারিত প্রবণতাগুলির মধ্যে উচ্চ-নিচে-নিচে অনুসরণ করা এড়াতে পারে।
গতিশীল ঝুঁকি ব্যবস্থাপনাএটিআরকে উদ্বায়ীতা পরিমাপের একটি সরঞ্জাম হিসেবে ব্যবহার করে, যাতে নিশ্চিত করা যায় যে স্টপ লস এবং লাভের লক্ষ্যমাত্রা বর্তমান বাজারের উদ্বায়ী গতিশীলতার সাথে সামঞ্জস্যপূর্ণ, একটি নির্দিষ্ট পয়েন্টের পরিবর্তে।
শ্রেণীবদ্ধ লাভের কৌশল: অংশ লাভ এবং শেষ লাভের দুই পর্যায়ের কৌশল ব্যবহার করে, এটি নিশ্চিত করে যে লাভের কিছু অংশ অনুকূল পরিস্থিতিতে লক করা হবে এবং খুব তাড়াতাড়ি সমস্ত প্রবণতা হারাতে হবে না।
স্মার্ট পজিশন মেশিন: রঙ পরিবর্তনের সংকেত দিয়ে পজিশন বাড়ানোর সুযোগ প্রদান করা, একই ট্রেন্ডে সর্বোচ্চ দু’বার পজিশন বাড়ানোর অনুমতি দেওয়া, মূলধন ব্যবহারের দক্ষতা অনুকূলিতকরণ।
মোবাইল ক্ষতি প্রতিরোধ: যখন দাম প্রথম লাভের লক্ষ্যে পৌঁছে যায় তখন স্বয়ংক্রিয়ভাবে স্টপ লসকে লাভ-ক্ষতির ভারসাম্য পয়েন্টে স্থানান্তরিত করে, “শূন্য ঝুঁকি” লেনদেনের জন্য, অর্জিত লাভকে সুরক্ষিত করে।
ভিজ্যুয়াল সহায়তা: কৌশলগুলি স্পষ্ট ভিজ্যুয়াল নির্দেশাবলী এবং ডেক্সটপগুলি সরবরাহ করে যা ব্যবসায়ীদের সংকেত এবং বাজারের অবস্থাকে স্বজ্ঞাতভাবে সনাক্ত করতে এবং সিদ্ধান্ত গ্রহণের প্রক্রিয়াটিকে সহজতর করতে সহায়তা করে।
দামের আচরণ এবং প্রযুক্তিগত সূচক সমন্বিত“অলিভার ভেলেজের মূল্য আচরণের ধারণার সাথে ঐতিহ্যবাহী প্রযুক্তিগত সূচকগুলিকে একত্রিত করা হয়েছে, যাতে একটি আরও স্থিতিশীল ট্রেডিং সিস্টেম তৈরি করা যায়”।
যদিও এই কৌশলটি যুক্তিসঙ্গতভাবে পরিকল্পিত, এর মধ্যে কিছু সম্ভাব্য ঝুঁকি এবং চ্যালেঞ্জ রয়েছেঃ
পরামিতি সংবেদনশীলতাকৌশলগত কার্যকারিতা মূলত এসএমএ চক্র, এটিআর দৈর্ঘ্য এবং রিস্ক-রিটার্ন অনুপাতের মতো গুরুত্বপূর্ণ পরামিতিগুলির সেটআপের উপর নির্ভর করে। বিভিন্ন বাজার এবং সময় ফ্রেমগুলির জন্য বিভিন্ন প্যারামিটার সমন্বয় প্রয়োজন হতে পারে, যার জন্য পর্যাপ্ত ইতিহাসের পুনরুদ্ধার এবং অপ্টিমাইজেশন প্রয়োজন।
ভুয়া আক্রমণের ঝুঁকি: সংকীর্ণ অঞ্চল অঞ্চলে ব্রেকডাউন কখনও কখনও মিথ্যা ব্রেকডাউন হতে পারে, বিশেষত কম অস্থিরতার বাজারের পরিবেশে। যদিও কৌশলটি হ্রাস করার জন্য “হাতি স্তম্ভ” ব্যবহারের প্রয়োজন, তবে এটি সম্পূর্ণরূপে এড়ানো যায় না।
স্লাইড পয়েন্ট এবং বাস্তবায়ন ঝুঁকি: স্থির ব্যবসায়ের ক্ষেত্রে, বিশেষত যখন উচ্চতর ওঠানামা হয়, তখন স্লাইড পয়েন্ট সমস্যা দেখা দিতে পারে, যার ফলে প্রকৃত প্রবেশের মূল্য আদর্শ মূল্যের সাথে মেলে না এবং সামগ্রিক ঝুঁকি-ফেরতের কাঠামোকে প্রভাবিত করে।
তহবিল পরিচালনার চ্যালেঞ্জ১০% ফিক্সড ক্যাপিটাল ব্যবহার এবং দু’বার রিজার্ভ করার অনুমতি দেওয়া, যা ধারাবাহিক ক্ষতি বা বাজারের তীব্র অস্থিরতার ক্ষেত্রে অত্যধিক ঝুঁকির কারণ হতে পারে।
গড়ের উপর অত্যধিক নির্ভরশীলতাকৌশলটি মূলত এসএমএ দ্বারা প্রবণতার দিকনির্দেশের উপর নির্ভর করে, তবে ব্যাপ্তিযুক্ত অস্থির বাজারে, গড় লাইনগুলি প্রায়শই ক্রস হয়ে থাকে, যা অতিরিক্ত মিথ্যা সংকেত তৈরি করে।
বাজার পরিবেশে ফিল্টারের অভাবকৌশলটি বিভিন্ন ম্যাক্রো মার্কেট পরিস্থিতির (যেমন উচ্চ ও কম ওঠানামা, ষাঁড় বা ভালুকের বাজার) জন্য সমন্বয় করা হয়নি, যা কিছু বাজারের পর্যায়ে খারাপ হতে পারে।
তহবিল বক্ররেখা প্রত্যাহার: যেহেতু কৌশলটি পজিশনিং করার অনুমতি দেয়, প্রবণতা হঠাৎ বিপরীত হলে এটি বড় অ্যাকাউন্ট প্রত্যাহারের কারণ হতে পারে, বিশেষত যখন দুইবার পজিশনিং করার পরে বাজারটি বিপরীত হয়।
সমাধানের উপায়গুলির মধ্যে রয়েছেঃ অতিরিক্ত বাজার পরিবেশ ফিল্টার যুক্ত করা, তহবিল পরিচালনার অনুপাতটি সামঞ্জস্য করা, বিভিন্ন বাজার অবস্থার সাথে সামঞ্জস্য রেখে প্যারামিটারগুলিকে গতিশীলভাবে সামঞ্জস্য করা এবং সংকেত নিশ্চিত করার জন্য অন্যান্য প্রযুক্তিগত সূচক যুক্ত করার বিষয়টি বিবেচনা করা।
কোড বিশ্লেষণের উপর ভিত্তি করে, এই কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ
ডায়নামিক সংকীর্ণ-ব্যান্ড থ্রেশহোল্ড: বর্তমান কৌশলগুলি সংকীর্ণ-ব্যান্ড এবং প্রশস্ত-ব্যান্ডের বিচারক থ্রেশহোল্ড হিসাবে স্থির 1.5% এবং 2% ব্যবহার করে। এই থ্রেশহোল্ডগুলিকে ঐতিহাসিক ওঠানামার গতিশীলতার সাথে সামঞ্জস্য করার জন্য বিবেচনা করা যেতে পারে, যাতে কৌশলগুলি বিভিন্ন বাজার পরিবেশে আরও ভালভাবে অভিযোজিত হয়। অপ্টিমাইজেশনের কারণঃ বিভিন্ন বাজার এবং সময় ফ্রেমগুলির বিভিন্ন ওঠানামার বৈশিষ্ট্য রয়েছে এবং স্থির থ্রেশহোল্ডগুলি যথেষ্ট নমনীয় নাও হতে পারে।
সমান্তরাল সিস্টেম উন্নত: মধ্যবর্তী গড় লাইন যোগ করার কথা বিবেচনা করা যেতে পারে (যেমন 50 পিরিয়ডের এসএমএ) একটি ত্রি-গড় লাইন সিস্টেম তৈরি করতে, বা ইন্ডেক্সাল মুভিং এভারেজ (ইএমএ) এর পরিবর্তে এসএমএর পরিবর্তে মূল্য পরিবর্তনের সংবেদনশীলতা বাড়ানোর চেষ্টা করা যেতে পারে। অপ্টিমাইজেশনের কারণঃ মধ্যবর্তী রেফারেন্স পয়েন্ট যুক্ত করা আরও বিস্তৃত বাজার দৃষ্টিভঙ্গি সরবরাহ করতে পারে, এবং ইএমএ সর্বশেষ মূল্য পরিবর্তনের প্রতি আরও সংবেদনশীল।
আরও ভাল স্ক্যাল্পিং: বর্তমান স্লাইড গণনা তুলনামূলকভাবে সহজ, আপনি আরও স্থিতিশীল দিক নির্দেশনা পেতে লিনিয়ার রিটার্ন স্লাইড বা বহু-চক্র স্লাইড পরিবর্তন ব্যবহার বিবেচনা করতে পারেন। অপ্টিমাইজেশনের কারণঃ একক পয়েন্ট স্লাইড গণনা স্বল্পমেয়াদী ওঠানামা দ্বারা প্রভাবিত হতে পারে, এবং উন্নতি করার পরে দিকনির্দেশের সিদ্ধান্তের স্থিতিশীলতা বাড়ানো যেতে পারে।
যোগদান নিশ্চিতকরণ: প্রবেশের সংকেতে লেনদেনের পরিমাণের শর্ত যুক্ত করুন যেমন “মহাশয় স্তম্ভ” এর সাথে গড় লেনদেনের পরিমাণের চেয়ে বেশি লেনদেনের প্রয়োজন। অপ্টিমাইজেশনের কারণঃ লেনদেনের পরিমাণ মূল্য পরিবর্তনের কার্যকারিতা নিশ্চিত করার একটি গুরুত্বপূর্ণ কারণ, যা মিথ্যা লেনদেনকে উল্লেখযোগ্যভাবে হ্রাস করতে পারে।
ডায়নামিক রিস্ক-রিটার্ন অনুপাত: বাজারের অস্থিরতা বা এটিআর শতাংশের উপর ভিত্তি করে গতিশীল সমন্বয় ঝুঁকির রিটার্নের অনুপাত, কম অস্থিরতার বাজারে উচ্চতর আরআর অনুপাত ব্যবহার করুন, উচ্চ অস্থিরতার বাজারে আরও রক্ষণশীল সেটিংস ব্যবহার করুন। অপ্টিমাইজেশনের কারণঃ বিভিন্ন অস্থিরতার পরিবেশে মুনাফা পাওয়ার সম্ভাবনা আলাদা, গতিশীল সমন্বয় প্রতিটি ব্যবসায়ের প্রত্যাশিত আয়কে অনুকূল করতে পারে।
অপ্টিমাইজেশন: বর্তমান পজিশনিং শর্তাদি বেশ স্বাচ্ছন্দ্যময়, আপনি ট্রেন্ডের শক্তি নিশ্চিতকরণ যুক্ত করতে বা কেবলমাত্র যখন দামগুলি সমালোচনামূলক সমর্থন / প্রতিরোধের পয়েন্টে ফিরে আসে তখন পজিশনিং করার বিষয়টি বিবেচনা করতে পারেন। অপ্টিমাইজেশনের কারণঃ আরও কঠোর পজিশনিং শর্তাদি অতিরিক্ত অবস্থানের সাফল্যের হার বাড়িয়ে তুলতে পারে এবং সামগ্রিক ঝুঁকি হ্রাস করতে পারে।
বাজার পরিবেশ ফিল্টারঅপ্টিমাইজেশনের কারণঃ বিভিন্ন বাজারের পর্যায়ে কৌশলগুলি ব্যাপকভাবে পরিবর্তিত হয় এবং পরিবেশগত ফিল্টারগুলি প্রতিকূল অবস্থার মধ্যে লেনদেন এড়াতে পারে।
স্বনির্ধারিত স্টপ লস কৌশল: বাজার কাঠামোর উপর ভিত্তি করে স্ব-অনুকূলিত ক্ষতির কৌশল বিকাশ করুন, যেমন পূর্বের উচ্চ-নিম্ন, ওঠানামা শতাংশ বা মূল্য কাঠামো ব্যবহার করে গতিশীল ক্ষতি বন্ধের রেফারেন্স পয়েন্ট হিসাবে। অপ্টিমাইজেশনের কারণঃ স্থির এটিআর গুণকের ক্ষতি কখনও কখনও বাজার কাঠামোর সাথে ভালভাবে মেলে না, স্ব-অনুকূলিত পদ্ধতিগুলি প্রকৃত মূল্যের আচরণের জন্য আরও উপযুক্ত হতে পারে।
ডায়নামিক স্কেলড ডাবল মুভিং এভারেজ সংকীর্ণ ব্যান্ডেজ ব্রেকথ্রু কোয়ান্টিফাইড ট্রেডিং কৌশল হল একটি সমন্বিত ট্রেডিং সিস্টেম যা বিভিন্ন প্রযুক্তিগত বিশ্লেষণের উপাদানগুলিকে একত্রিত করে, সুনির্দিষ্ট প্রবেশের শর্তাবলী, বহু স্তরের নিশ্চিতকরণ প্রক্রিয়া এবং একটি উন্নত ঝুঁকি পরিচালনার কাঠামোর মাধ্যমে ব্যবসায়ীদের জন্য একটি কাঠামোগত বাজার অংশগ্রহণের উপায় সরবরাহ করে। এই কৌশলটি এসএমএ, এটিআর এবং মূল্যের আচরণের মতো মৌলিক প্রযুক্তিগত বিশ্লেষণের ধারণার উপর ভিত্তি করে, তবে অলিভার ভেলজের পদ্ধতির মাধ্যমে এই উপাদানগুলিকে একটি সুশৃঙ্খল ট্রেডিং সিস্টেমে সংহত করে।
কৌশলটির মূল সুবিধা হল এটি চলমান গড়ের সংকীর্ণ অঞ্চলে উচ্চ-সম্ভাব্যতা ব্রেকআপের সুযোগগুলি সনাক্ত করতে সক্ষম এবং নির্দিষ্ট মূল্যের প্যাটার্ন যেমন “এলিফ্যান্ট পল” এবং “রঙ পরিবর্তন” এর মাধ্যমে সংকেতের কার্যকারিতা নিশ্চিত করে। একই সাথে, একটি ভাল ঝুঁকি ব্যবস্থাপনা কাঠামো তহবিল সুরক্ষা এবং মুনাফা সুরক্ষা নিশ্চিত করে।
যাইহোক, এই কৌশলটি প্যারামিটার সংবেদনশীলতা, ভুয়া ব্রেকআউট ঝুঁকি এবং তহবিল পরিচালনার চ্যালেঞ্জগুলির সাথেও মোকাবিলা করে। কৌশলটির স্থিতিশীলতা এবং অভিযোজনযোগ্যতা আরও বাড়ানো যেতে পারে, যেমন সংকীর্ণ বেন্ডের থ্রেশহোল্ডের অপ্টিমাইজেশন, গড় লাইন সিস্টেমকে শক্তিশালী করা, প্রান্তিক গণনাকে উন্নত করা, চুক্তির পরিমাণ নিশ্চিতকরণ যুক্ত করা, গতিশীল ঝুঁকির রিটার্ন অনুপাত বাস্তবায়ন করা, পজিশনের শর্তগুলি অনুকূলিত করা, বাজার পরিবেশ ফিল্টারিং যুক্ত করা এবং ক্ষতির প্রতিরোধের কৌশলগুলির সাথে খাপ খাইয়ে নেওয়া।
সামগ্রিকভাবে, এটি একটি যুক্তিসঙ্গত, যুক্তিসঙ্গত এবং স্পষ্টভাবে পরিকল্পিত পরিমাণগত ট্রেডিং কৌশল যা কিছু ট্রেডিং অভিজ্ঞতার সাথে বিনিয়োগকারীদের জন্য উপযুক্ত, বিশেষত যারা প্রযুক্তিগত বিশ্লেষণ এবং পদ্ধতিগত ট্রেডিং পদ্ধতি পছন্দ করেন। যথাযথ প্যারামিটার অপ্টিমাইজেশন এবং ঝুঁকি পরিচালনার মাধ্যমে, কৌশলটি বিভিন্ন বাজারের পরিবেশে স্থিতিশীল ট্রেডিং পারফরম্যান্স অর্জনের সম্ভাবনা রয়েছে।
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Oliver Velez Advanced Strategy v2", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=2, calc_on_order_fills=true, calc_on_every_tick=true)
// === INPUTS ===
smaLen1 = input.int(20, title="SMA Short")
smaLen2 = input.int(200, title="SMA Long")
atrLen = input.int(14, title="ATR Length")
rr1 = input.float(2.5, title="RR for Partial Profit", step=0.1)
rr2 = input.float(4.0, title="RR for Final Profit", step=0.1)
// === INDICATORS ===
sma20 = ta.sma(close, smaLen1)
sma200 = ta.sma(close, smaLen2)
atr = ta.atr(atrLen)
angle = math.atan(sma20 - sma20[1]) * 180 / math.pi
// === STATES ===
isNarrow = math.abs(sma20 - sma200) / sma200 < 0.015
isWide = math.abs(sma20 - sma200) / sma200 >= 0.02
validSlope = angle > 30
// === CANDLE PATTERNS ===
elephant_long = close > open and (close - open) > 1.5 * atr and high > high[1]
elephant_short = close < open and (open - close) > 1.5 * atr and low < low[1]
color_change_long = close > open and close[1] < open[1]
color_change_short = close < open and close[1] > open[1]
// === LONG ENTRY ===
long_primary = isNarrow and validSlope and close > sma20 and sma20 > sma200 and elephant_long
long_add = isNarrow and color_change_long and close > sma20
long_entry_price = close
long_stop = math.min(low, close - 2 * atr)
long_risk = long_entry_price - long_stop
long_tp1 = long_entry_price + rr1 * long_risk
long_tp2 = long_entry_price + rr2 * long_risk
// === SHORT ENTRY ===
short_primary = isNarrow and validSlope and close < sma20 and sma20 < sma200 and elephant_short
short_add = isNarrow and color_change_short and close < sma20
short_entry_price = close
short_stop = math.max(high, close + 2 * atr)
short_risk = short_stop - short_entry_price
short_tp1 = short_entry_price - rr1 * short_risk
short_tp2 = short_entry_price - rr2 * short_risk
// === LONG EXECUTION ===
if (long_primary)
strategy.entry("Long Entry", strategy.long, comment="Elephant Bar Long")
strategy.exit("Long TP1", from_entry="Long Entry", limit=long_tp1, stop=long_stop)
strategy.exit("Long TP2", from_entry="Long Entry", qty_percent=50, limit=long_tp2)
if (long_add)
strategy.entry("Long Add", strategy.long, comment="Color Change Long")
strategy.exit("Add TP1", from_entry="Long Add", limit=long_tp1, stop=long_stop)
strategy.exit("Add TP2", from_entry="Long Add", qty_percent=50, limit=long_tp2)
// === SHORT EXECUTION ===
if (short_primary)
strategy.entry("Short Entry", strategy.short, comment="Elephant Bar Short")
strategy.exit("Short TP1", from_entry="Short Entry", limit=short_tp1, stop=short_stop)
strategy.exit("Short TP2", from_entry="Short Entry", qty_percent=50, limit=short_tp2)
if (short_add)
strategy.entry("Short Add", strategy.short, comment="Color Change Short")
strategy.exit("Short TP1 Add", from_entry="Short Add", limit=short_tp1, stop=short_stop)
strategy.exit("Short TP2 Add", from_entry="Short Add", qty_percent=50, limit=short_tp2)
// === BREAKEVEN CHECK ===
var float breakeven_price = na
long_breakeven_trigger = high >= long_tp1
short_breakeven_trigger = low <= short_tp1
breakeven_price := long_breakeven_trigger or short_breakeven_trigger ? close : breakeven_price
// === ALERTS ===
alertcondition(long_primary, title="Long Elephant", message="Elephant Bar Long Entry Triggered!")
alertcondition(long_add, title="Color Change Long", message="Color Change Long Entry Triggered!")
alertcondition(long_breakeven_trigger, title="Long Breakeven", message="Move SL to Breakeven for Long")
alertcondition(short_primary, title="Short Elephant", message="Elephant Bar Short Entry Triggered!")
alertcondition(short_add, title="Color Change Short", message="Color Change Short Entry Triggered!")
alertcondition(short_breakeven_trigger, title="Short Breakeven", message="Move SL to Breakeven for Short")
// === PLOTTING ===
plot(sma20, color=color.orange, title="SMA 20")
plot(sma200, color=color.blue, title="SMA 200")
bgcolor(isNarrow ? color.new(color.green, 85) : na)
plotshape(long_primary, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="E")
plotshape(long_add, style=shape.circle, location=location.belowbar, color=color.lime, size=size.tiny, text="A")
plotshape(short_primary, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="E")
plotshape(short_add, style=shape.circle, location=location.abovebar, color=color.maroon, size=size.tiny, text="A")
// === DASHBOARD ===
var label dash = na
label.delete(dash)
dash := label.new(x=bar_index, y=high, text=
"Oliver Velez Strategy\n" +
"SMA 20 Slope: " + str.tostring(angle, "#.##") + "°\n" +
"State: " + (isNarrow ? "NARROW" : "WIDE") + "\n" +
"Last Entry: " + (long_primary ? "Long E-Bar" : long_add ? "Long Add" : short_primary ? "Short E-Bar" : short_add ? "Short Add" : "None") + "\n" +
"Breakeven: " + (breakeven_price != na ? str.tostring(breakeven_price, "#.##") : "No"), style=label.style_label_left, color=color.new(color.black, 85), textcolor=color.white)