
ডায়নামিক ট্রেন্ড লাইন ব্রেকিং কোয়ান্টিফিকেশন ট্রেডিং কৌশল হল একটি ট্রেন্ড লাইন ব্রেকিং কৌশল যা সমর্থন এবং প্রতিরোধের উপর ভিত্তি করে তৈরি করা হয়েছে। এই কৌশলটি বাজারের মূল সমর্থন এবং প্রতিরোধের অবস্থানগুলিকে ডায়নামিকভাবে সনাক্ত করে এবং যখন দামগুলি এই মূল অবস্থানগুলিকে অতিক্রম করে তখন গতিশীলতা ব্যবহার করে। এই কৌশলটি ডায়নামিক ট্রেন্ড লাইন ম্যাপিং প্রযুক্তি ব্যবহার করে, যা নিশ্চিতকরণ লজিক এবং সময় ফিল্টারিংয়ের সাথে মিলিত হয়, যাতে ট্রেডিং সিগন্যালের গুণমান এবং নির্ভরযোগ্যতা নিশ্চিত করা যায়। বিশেষত, এই কৌশলটি নির্দিষ্ট ট্রেডিং সময়ের মধ্যে (ইউএসএ 9:30 থেকে 13:00) কার্যকর করা হয়, যাতে ট্রেডিং দক্ষতা অনুকূলিত করা যায় এবং সময় হ্রাসের প্রভাব হ্রাস করা যায়।
কৌশলটির মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছেঃ গতিশীল সমর্থন এবং প্রতিরোধের প্রবণতা লাইন সনাক্তকরণ, ব্রেকথ্রু নিশ্চিতকরণ লজিক, রিয়েল-টাইম চার্ট চিহ্নিতকরণ, বহু-স্তরীয় লাভের লক্ষ্য (০.75R, ১.৫R এবং ৩.০R গুণিতক) এবং সময় ভিত্তিক স্বয়ংক্রিয় প্রস্থান ব্যবস্থা (১২০ টি স্তম্ভের পর, প্রায় ২ ঘন্টা) । সামগ্রিক নকশা ধারণাটি উচ্চ সম্ভাব্যতার সাথে ব্রেকথ্রু ট্রেডিং সুযোগগুলি সনাক্ত করা এবং কঠোর ঝুঁকি ব্যবস্থাপনার ব্যবস্থা করা।
এই কৌশলটির মূল নীতিটি প্রযুক্তিগত বিশ্লেষণের সমর্থন এবং প্রতিরোধের স্থানের তত্ত্বের উপর ভিত্তি করে, যা বিশ্বাস করে যে দামগুলি এই গুরুত্বপূর্ণ স্তরগুলি অতিক্রম করার পরে প্রায়শই ব্রেকিংয়ের দিকে এগিয়ে যায়। এর বাস্তবায়ন প্রক্রিয়াটি নিম্নরূপঃ
সমর্থন এবং প্রতিরোধের সনাক্তকরণ: উচ্চতা এবং নিম্নতা ব্যবহার করে মূল অক্ষের (pivot) ফাংশন বাজারের মধ্যে গুরুত্বপূর্ণ টার্নিং পয়েন্টগুলি সনাক্ত করে। দৈর্ঘ্য প্যারামিটার (length = 9) সেট করে, কৌশলটি তুলনামূলকভাবে গুরুত্বপূর্ণ সমর্থন এবং প্রতিরোধের স্থানগুলি সনাক্ত করতে পারে।
প্রবণতা রেখাচিত্র: চিহ্নিত মূল অক্ষের উচ্চ ও নিম্নের উপর ভিত্তি করে, কৌশলটি গতিশীল সমর্থন এবং প্রতিরোধের লাইনগুলি আঁকে, যা বাজারের কাঠামোর পরিবর্তনের প্রতিফলিত করে রিয়েল-টাইমে আপডেট হয়।
ব্রেকথ্রু নিশ্চিতকৌশলটি কেবলমাত্র সহজ মূল্যের ক্রসিংয়ের উপর নির্ভর করে না, তবে নিশ্চিতকরণ লজিকের সাথে ((confirmBars = 2) এর সাথে মিলিত হয়, যার অর্থ হল মূল্যটি ব্রেকডাউনের পরে নির্দিষ্ট সময়ের জন্য ব্রেকডাউনের উপরে (উপরে ব্রেকডাউনের জন্য) বা নীচে (নিচে ব্রেকডাউনের জন্য) থাকতে হবে, যা মিথ্যা ব্রেকডাউনের ঝুঁকি হ্রাস করে।
সময় ফিল্টারএই কৌশলটি বিশেষভাবে ০৯ঃ৩০ থেকে ০১ঃ০০ ইস্টার্ন টাইম ট্রেডিং সময়ের জন্য অপ্টিমাইজ করা হয়েছে, যা সাধারণত বেশি অস্থির এবং প্রবণতাযুক্ত, যা শেষের দিকে সম্ভাব্য অস্থিরতা এড়াতে পারে।
একক লেনদেনের সীমা
বহুস্তরীয় লাভের কৌশল০.৭৫ আর, ১.৫ আর এবং ৩.০ আর এর ঝুঁকি-লাভের অনুপাত পজিশনে লাভ নির্ধারণ করে, যথাক্রমে ৩০%, ৫০% এবং ১০০% পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে পজিশনে
স্টপ লস সেটিং: মাল্টি-হেড ট্রেডিংয়ের জন্য স্টপ লস সেট করা হয় সাপোর্ট পয়েন্টে, খালি হেড ট্রেডিংয়ের জন্য স্টপ লস সেট করা হয় প্রতিরোধের পয়েন্টে, এই সমান্তরাল ঝুঁকি ব্যবস্থাপনা পদ্ধতিটি বাজারের কাঠামোর সাথে সামঞ্জস্যপূর্ণ।
সময়সীমাযদি লেনদেনের সময়কাল ১২০ পলস (প্রায় ২ ঘন্টা) হয়, তাহলে কৌশলটি স্বয়ংক্রিয়ভাবে পলস হয়ে যায়, যা দীর্ঘ সময় ধরে পজিশন ধরে রাখার সময়কালীন পতনের ঝুঁকি থেকে রক্ষা করে।
কোডের গভীর বিশ্লেষণের মাধ্যমে, আমি এই কৌশলটির উল্লেখযোগ্য সুবিধাগুলি খুঁজে পেয়েছিঃ
গতিশীল বাজার কাঠামোর সাথে খাপ খাইয়ে নেওয়াকৌশলটি সমর্থন এবং প্রতিরোধের সনাক্তকরণ প্রক্রিয়া ব্যবহার করে যা স্থির স্তরের উপর নির্ভরশীল না হয়ে বাজারের পরিবর্তনের সাথে গতিশীলভাবে খাপ খাইয়ে নেয়, যা কৌশলটিকে বিভিন্ন বাজারের পরিবেশে অভিযোজিত করে।
নিশ্চিতকরণ লজিক হ্রাস মিথ্যা সংকেত: এই কৌশলটি একটি ব্রেকআউটের পরে মূল্যকে একটি নির্দিষ্ট সময়ের জন্য ব্রেকআউটের স্তরে রাখতে বলেছে, যার ফলে মিথ্যা ব্রেকআউটের প্রভাব অনেকটাই কমে গেছে এবং লেনদেনের গুণগত মান উন্নত হয়েছে।
সময় অপ্টিমাইজেশান ট্রেডিং উইন্ডো: নির্দিষ্ট ট্রেডিং সময়ের জন্য অপ্টিমাইজ করা, যা কেবলমাত্র বাজারের সবচেয়ে সক্রিয় সময়গুলিই ধরতে পারে না, তবে ট্রেডিং শেষের দিকে উদ্ভব হতে পারে এমন অস্থিরতা এবং লিকুইডিটির অভাব এড়াতে পারে।
ধীরে ধীরে লাভের কৌশল: একাধিক স্তরের লাভের লক্ষ্যের নকশাটি কৌশলটিকে কিছু লাভ বজায় রাখার সাথে সাথে অবশিষ্ট অবস্থানগুলিকে বৃহত্তর দামের চলাচলকে ধরে রাখতে দেয়, যা ঝুঁকি এবং রিটার্নের ভারসাম্য বজায় রাখার একটি কার্যকর উপায়।
স্বয়ংক্রিয়ভাবে সময়সীমার বাইরে যাওয়ার ব্যবস্থাট্রেডিংয়ের সময়সীমা কার্যকরভাবে দীর্ঘমেয়াদী পজিশন হোল্ডিংয়ের ঝুঁকি প্রতিরোধ করে, বিশেষত দিনের ব্যবসায়ীদের জন্য, যা একটি গুরুত্বপূর্ণ ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা।
দৃশ্যমান উপাদান: কৌশলটি স্পষ্ট চার্ট চিহ্ন এবং ব্যাকগ্রাউন্ড রঙের আইকন সরবরাহ করে, যা ব্যবসায়ীদের ট্রেডিং সিগন্যাল এবং কার্যকর ট্রেডিংয়ের সময়কে স্বজ্ঞাতভাবে বুঝতে সক্ষম করে, কৌশলটির কার্যকারিতা বাড়ায়।
নমনীয় প্যারামিটার সেটিংমূল প্যারামিটারগুলি (যেমন দৈর্ঘ্য, নিশ্চিতকরণ স্তম্ভের সংখ্যা এবং ঝুঁকি পরিমাণ) সামঞ্জস্যযোগ্য, যা ব্যবসায়ীদের ব্যক্তিগত ঝুঁকি পছন্দ এবং নির্দিষ্ট বাজারের অবস্থার উপর ভিত্তি করে কৌশলটি অপ্টিমাইজ করার অনুমতি দেয়।
VWAP রেফারেন্স লাইন
যদিও এই কৌশলটি সুনির্দিষ্টভাবে পরিকল্পিত, তবুও কিছু সম্ভাব্য ঝুঁকি রয়েছে যা সম্পর্কে সতর্ক হওয়া দরকারঃ
ভুয়া সংকেতের ঝুঁকি: নিশ্চিতকরণ লজিক সেট করা সত্ত্বেও, উচ্চতর অস্থিরতার বাজারে, ভুয়া ব্রেকিংয়ের ঘটনা ঘটতে পারে। সমাধানটি হল নিশ্চিতকরণ স্তম্ভের সংখ্যা বাড়ানোর কথা বিবেচনা করা বা অন্যান্য সূচকগুলির সাথে ক্রস-যাচাই করা (যেমন ট্র্যাফিক বা গতিশীলতার সূচক) ।
নির্দিষ্ট সময়ের সীমাবদ্ধতাকৌশলঃ শুধুমাত্র নির্দিষ্ট সময়সীমার মধ্যে ট্রেড করুন, অন্য সময়গুলিতে কার্যকর ব্যবসায়ের সুযোগগুলি মিস করতে পারে। কিছু বাজার অবস্থার অধীনে, লেনদেনের সময়গুলিকে অস্থিরতা এবং লেনদেনের পরিমাণের গতিশীলতার সাথে সামঞ্জস্য করার বিষয়টি বিবেচনা করা যেতে পারে।
নির্দিষ্ট দৈর্ঘ্যের ঝুঁকি: একটি নির্দিষ্ট দৈর্ঘ্যের প্যারামিটার ব্যবহার করা ((দৈর্ঘ্য = 9) সমস্ত বাজার পরিস্থিতিতে উপযুক্ত নাও হতে পারে। কম ওলটপালটপূর্ণ বাজারে অনেকগুলি প্রতিরোধের স্তর সনাক্ত করা যেতে পারে এবং উচ্চ ওলটপালটপূর্ণ বাজারে গুরুত্বপূর্ণ স্তরগুলি মিস করা যেতে পারে। সমাধানটি হ’ল বাজারের অস্থির গতিশীলতার সাথে এই প্যারামিটারটি সামঞ্জস্য করার বিষয়টি বিবেচনা করা।
স্টপ লস সেটিং খুব বড় হতে পারে: স্টপ পজিশনের জন্য সমর্থন/প্রতিরোধের লাইন ব্যবহার করা কিছু ক্ষেত্রে স্টপ ওভারওয়াইড হতে পারে এবং একক লেনদেনের ঝুঁকি বাড়িয়ে তুলতে পারে। অতিরিক্ত সীমাবদ্ধতা হিসাবে সর্বোচ্চ স্টপ শতাংশ সেট করার বিষয়টি বিবেচনা করা যেতে পারে।
বাজার পরিবেশে ফিল্টারের অভাব: কৌশলটি বিভিন্ন বাজার পরিস্থিতির মধ্যে পার্থক্য করে না (যেমন প্রবণতা, ঝড় বা উচ্চ অস্থিরতা) এবং এটি একটি ব্রেক-আউট কৌশলের জন্য উপযুক্ত নয় এমন বাজার পরিস্থিতিতে খারাপ পারফরম্যান্স করতে পারে। বাজার পরিস্থিতি সনাক্তকরণ লজিক যুক্ত করা যেতে পারে, কেবলমাত্র উপযুক্ত পরিস্থিতিতে লেনদেন করা যেতে পারে।
একাধিক স্তরের সুবিধার জন্য নির্দিষ্ট অনুপাতস্থির মুনাফা গুণক (০.৭৫ আর, ১.৫ আর, ৩.০ আর) সব বাজার পরিস্থিতিতে প্রযোজ্য নাও হতে পারে। এই স্তরগুলিকে অস্থিরতা বা ATR গতিশীলতার সাথে সামঞ্জস্য করার কথা বিবেচনা করা যেতে পারে।
ট্রেডিং ফ্রিকোয়েন্সি অনিশ্চয়তাযেহেতু কৌশলটি সমর্থন এবং প্রতিরোধের উপর নির্ভর করে, ট্রেডিং ফ্রিকোয়েন্সি অস্থির হতে পারে এবং নির্দিষ্ট সময়ে খুব বেশি বা খুব কম সংকেত তৈরি হতে পারে। সংকেত মানের মূল্যায়ন ব্যবস্থা যুক্ত করার পরামর্শ দেওয়া হয়েছে এবং কেবলমাত্র উচ্চ সম্ভাব্যতার সাথে লেনদেন করা হবে।
সময়টা খুব তাড়াতাড়ি চলে যেতে পারেস্থির ১২০-পিলার এক্সট্রুড মেকানিজম কিছু শক্তিশালী প্রবণতার মধ্যে খুব তাড়াতাড়ি প্লেইন করতে পারে। প্রবণতা শক্তির সাথে একত্রে এক্সট্রুড সময়টি ডায়নামিকভাবে সামঞ্জস্য করার বিষয়টি বিবেচনা করা যেতে পারে।
কৌশলটির মূল যুক্তি এবং সম্ভাব্য ঝুঁকির উপর ভিত্তি করে, নিম্নলিখিত কয়েকটি অপ্টিমাইজেশান দিক বিবেচনা করা উচিতঃ
গতিশীল প্যারামিটার সমন্বয়: গুরুত্বপূর্ণ প্যারামিটার যেমন দৈর্ঘ্য, নিশ্চিতকরণ বার এবং ঝুঁকি পরিমাণকে বাজারের অস্থিরতার সূচক যেমন এটিআর বা historicalতিহাসিক ওঠানামা সহ যুক্ত করা যাতে কৌশলগুলি স্বয়ংক্রিয়ভাবে বিভিন্ন বাজারের পরিবেশের সাথে খাপ খাইয়ে নিতে পারে। এটি কম ওঠানামা বাজারে আরও কঠোর নিশ্চিতকরণ মানদণ্ড ব্যবহার করতে পারে এবং উচ্চ ওঠানামা বাজারে আরও নমনীয় প্যারামিটার ব্যবহার করতে পারে।
বাজার পরিবেশ ফিল্টার: মার্কেট টাইপ সনাক্তকরণ লজিক যুক্ত করা হয়েছে, যেমন ট্রেন্ডিং এবং ঝড়ের বাজার সনাক্ত করতে ADX, ওলট-পালট বা মুভিং এভারেজ সিস্টেম ব্যবহার করা হয়েছে এবং বিভিন্ন পরিবেশে বিভিন্ন ট্রেডিং নিয়ম প্রয়োগ করা হয়েছে। এই অপ্টিমাইজেশানটি বিভিন্ন বাজারের পরিবেশে কৌশলগুলির অভিযোজনযোগ্যতা উল্লেখযোগ্যভাবে বাড়িয়ে তুলতে পারে।
মাল্টিপয়েন্টার নিশ্চিতকরণ সিস্টেম: অন্যান্য প্রযুক্তিগত সূচক (যেমন আরএসআই, এমএসিডি বা লেনদেনের পরিমাণ বিশ্লেষণ) এর সমন্বয়কে একটি ব্রেকথ্রু নিশ্চিতকরণের সহায়ক শর্ত হিসাবে। একাধিক নিশ্চিতকরণ সিস্টেমটি মিথ্যা ব্রেকথ্রু লেনদেনকে উল্লেখযোগ্যভাবে হ্রাস করতে পারে এবং সামগ্রিক বিজয়ী হারকে উন্নত করতে পারে।
স্মার্ট কস্ট ম্যানেজমেন্ট: আরো নমনীয় স্টপ-অফ কৌশলগুলি বাস্তবায়ন করুন, যেমন স্টপ-অফ ট্র্যাকিং বা গতিশীল স্টপ-অফ ভোল্টেবিলিটির উপর ভিত্তি করে, কেবলমাত্র সমর্থন / প্রতিরোধের স্তরের উপর নির্ভর না করে। এটি মূলধন রক্ষা করার সময় মূল্যের পর্যাপ্ত শ্বাসের জায়গা দিতে পারে।
বিপরীত পরীক্ষার লজিক: বাজারের বিপরীতমুখী পরীক্ষামূলক ব্যবস্থা যোগ করা, যখন মূল্য দ্রুত বিপরীতমুখী হয় তখন তা সনাক্ত করতে এবং বেরিয়ে আসতে সাহায্য করে, যা ব্যাপক প্রত্যাহারের ঝুঁকি হ্রাস করতে সহায়তা করে।
সময় ওজনের কারণ: দিনের বিভিন্ন সময়ে বিভিন্ন লেনদেনের ওজন বা নিশ্চিতকরণের মানদণ্ড প্রয়োগ করার কথা বিবেচনা করুন, যেমন ওপেনিং এবং ক্লোজিংয়ের কাছাকাছি আরও কঠোর নিশ্চিতকরণের প্রয়োজন হতে পারে, যেহেতু এই সময়গুলোতে সাধারণত বেশি ওঠানামা হয়।
লাভের লক্ষ্যে অভিযোজিত: বাজারের অস্থিরতা বা সাম্প্রতিক মূল্যের গতিশীলতার উপর ভিত্তি করে লাভের লক্ষ্যমাত্রার অনুপাতকে সামঞ্জস্য করুন, স্থির R- গুণ ব্যবহার করার পরিবর্তে। উচ্চ অস্থিরতার বাজারে আরও বেশি লাভের লক্ষ্যমাত্রা এবং নিম্ন অস্থিরতার বাজারে আরও বেশি রক্ষণশীল লক্ষ্যমাত্রা সেট করুন।
লেনদেনের ভলিউম পরিচালনার অপ্টিমাইজেশন: আরো জটিল পজিশন ম্যানেজমেন্ট কৌশল বাস্তবায়ন করুন, যেমন পজিশনের আকারকে বিপর্যয়ের শক্তি বা বাজার অস্থিরতার উপর ভিত্তি করে সামঞ্জস্য করুন, কেবলমাত্র একটি নির্দিষ্ট শতাংশ ব্যবহার না করে। এটি উচ্চ-নিশ্চয়তার ব্যবসায়ের এক্সপোজার বাড়িয়ে তুলতে পারে এবং একই সাথে উচ্চ অনিশ্চয়তার ক্ষেত্রে ঝুঁকি হ্রাস করতে পারে।
প্রত্যাবর্তন এবং ফরোয়ার্ড যাচাইকরণ: কঠোর ব্যাক-এন্ড এবং ফরোয়ার্ড ভ্যালিডেশন প্রক্রিয়া স্থাপন করুন, বিভিন্ন বাজার শর্ত এবং সময় ফ্রেমগুলির মাধ্যমে কৌশলটির কার্যকারিতা পরীক্ষা করুন, নিশ্চিত করুন যে অপ্টিমাইজেশনটি পরিসংখ্যানগতভাবে উল্লেখযোগ্যতার উপর ভিত্তি করে এবং অতিরিক্ত ফিট না করে।
ডায়নামিক ট্রেডিং স্ট্র্যাটেজি হল একটি সূক্ষ্মভাবে পরিকল্পিত ডেইলি ট্রেডিং সিস্টেম যা প্রযুক্তিগত বিশ্লেষণের সমর্থন এবং প্রতিরোধের তত্ত্ব, প্রবণতা লাইন ডায়নামিক ম্যাপিং কৌশল, মাল্টি-লেয়ার লাভজনকতা কৌশল এবং কঠোর সময় ব্যবস্থাপনাকে একত্রিত করে। কৌশলটির মূল সুবিধা হ’ল বাজারের কাঠামোর সাথে গতিশীলভাবে অভিযোজিত হওয়ার ক্ষমতা, মাল্টি-লেয়ার ঝুঁকি ব্যবস্থাপনা সিস্টেম এবং ট্রেডিংয়ের সময়কালের উপর সুনির্দিষ্ট নিয়ন্ত্রণ।
যদিও কৌশলটির কিছু অন্তর্নিহিত ঝুঁকি রয়েছে, যেমন ভুয়া ব্রেকথ্রু সম্ভাবনা এবং স্থির পরামিতিগুলির সীমাবদ্ধতা, তবে এই ঝুঁকিগুলি প্রস্তাবিত অপ্টিমাইজেশান দিকনির্দেশের মাধ্যমে কার্যকরভাবে প্রশমিত করা যেতে পারে। বিশেষত, গতিশীল পরামিতি সামঞ্জস্য, বাজার পরিবেশ ফিল্টারিং এবং মাল্টিমিটার নিশ্চিতকরণ সিস্টেম বাস্তবায়নের মাধ্যমে কৌশলটির স্থিতিশীলতা এবং অভিযোজনযোগ্যতা উল্লেখযোগ্যভাবে বাড়ানো যেতে পারে।
এই কৌশলটি একটি কাঠামোগত কাঠামো সরবরাহ করে যা কার্যকরভাবে উচ্চ-সম্ভাব্যতা ব্রেক-আউট ট্রেডগুলি সনাক্ত করতে এবং সম্পাদন করতে পারে। আরও অপ্টিমাইজেশন এবং ব্যক্তিগতকরণের মাধ্যমে, এই কৌশলটি intraday ট্রেডিং পোর্টফোলিওতে একটি গুরুত্বপূর্ণ হাতিয়ার হওয়ার সম্ভাবনা রয়েছে, যা ব্যবসায়ীদের ঝুঁকি নিয়ন্ত্রণের পাশাপাশি স্বল্পমেয়াদী মূল্যের ওঠানামা থেকে প্রাপ্ত সুযোগগুলিকে ক্যাপচার করতে সহায়তা করে।
/*backtest
start: 2025-06-15 00:00:00
end: 2025-06-22 00:00:00
period: 4m
basePeriod: 4m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("R&D v3 Fixed", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === Settings ===
length = 9
confirmBars = 2
riskAmount = 0.7
// === Support & Resistance Trendlines ===
swingHigh = ta.pivothigh(high, length, length)
swingLow = ta.pivotlow(low, length, length)
var float resLine = na
var float supLine = na
if not na(swingHigh)
resLine := swingHigh
if not na(swingLow)
supLine := swingLow
plot(not na(resLine) ? resLine : na, color=color.red, linewidth=2, title="Resistance")
plot(not na(supLine) ? supLine : na, color=color.blue, linewidth=2, title="Support")
// === VWAP ===
vwap = ta.vwap
plot(vwap, color=color.orange,title="vwap")
// === Time Filter (9:30am to 1:00pm EST) ===
startTime = timestamp("America/New_York", year, month, dayofmonth, 9, 30)
endTime = timestamp("America/New_York", year, month, dayofmonth, 13, 0)
inSession = time >= startTime and time <= endTime
bgcolor(inSession ? color.new(color.gray, 90) : na)
// === Breakout Conditions ===
breakAbove = not na(resLine) and ta.crossover(close, resLine)
breakBelow = not na(supLine) and ta.crossunder(close, supLine)
confirmUp = breakAbove and ta.barssince(breakAbove) < confirmBars and close > resLine
confirmDown = breakBelow and ta.barssince(breakBelow) < confirmBars and close < supLine
// === One Trade at a Time
var bool inTrade = false
if strategy.position_size == 0
inTrade := false
if strategy.position_size != 0
inTrade := true
// === Entry Logic ===
if confirmUp and inSession and not inTrade
strategy.entry("Breakout Long", strategy.long)
if confirmDown and inSession and not inTrade
strategy.entry("Breakout Short", strategy.short)
// === Entry Bar Tracking for Time Exit ===
var int tradeStartBar = na
if strategy.position_size == 0
tradeStartBar := na
if strategy.position_size != 0 and na(tradeStartBar)
tradeStartBar := bar_index
exitAfter120 = not na(tradeStartBar) and (bar_index - tradeStartBar >= 120)
// === Stop Loss and Take Profit Logic ===
if strategy.position_size > 0
entryPrice = strategy.position_avg_price
stopPrice = supLine // Corrected: Stop at support for long
strategy.exit("TP1", from_entry="Breakout Long", qty_percent=30, limit=entryPrice + riskAmount * 0.75)
strategy.exit("TP2", from_entry="Breakout Long", qty_percent=50, limit=entryPrice + riskAmount * 1.5)
strategy.exit("TP3", from_entry="Breakout Long", qty_percent=100, limit=entryPrice + riskAmount * 3.0)
strategy.exit("Stop", from_entry="Breakout Long", stop=stopPrice, qty_percent=100)
if exitAfter120
strategy.close("Breakout Long", comment="Time Exit Long")
if strategy.position_size < 0
entryPrice = strategy.position_avg_price
stopPrice = resLine // Corrected: Stop at resistance for short
strategy.exit("TP1", from_entry="Breakout Short", qty_percent=30, limit=entryPrice - riskAmount * 0.75)
strategy.exit("TP2", from_entry="Breakout Short", qty_percent=50, limit=entryPrice - riskAmount * 1.5)
strategy.exit("TP3", from_entry="Breakout Short", qty_percent=100, limit=entryPrice - riskAmount * 3.0)
strategy.exit("Stop", from_entry="Breakout Short", stop=stopPrice, qty_percent=100)
if exitAfter120
strategy.close("Breakout Short", comment="Time Exit Short")
// === Entry Labels ===
showLongEntry = confirmUp and strategy.position_size == 0 and inSession
showShortEntry = confirmDown and strategy.position_size == 0 and inSession
plotshape(showLongEntry, title="Long Entry", location=location.belowbar, color=color.green, style=shape.labelup, text="🟢", size=size.small)
plotshape(showShortEntry, title="Short Entry", location=location.abovebar, color=color.red, style=shape.labeldown, text="🔴", size=size.small)