
মাল্টি ফ্যাক্টর ইএমএ-আরএসআই-ভিডাব্লুএপি ইনডোর ডায়নামিক ট্রেডিং কৌশলটি হ’ল একাধিক প্রযুক্তিগত সূচকগুলির সাথে একত্রিত একটি ইনডোর ট্রেডিং সিস্টেম যা বাজারের স্বল্পমেয়াদী গতিশীলতার পরিবর্তনগুলি ধরার জন্য ডিজাইন করা হয়েছে। কৌশলটি সূক্ষ্মভাবে সমান্তরাল ক্রস, তুলনামূলকভাবে দুর্বল সূচক ফিল্টারিং এবং ওভারওয়েটেড গড় মূল্য সমর্থন / প্রতিরোধের বিচারকে একত্রিত করে, পাশাপাশি কঠোর ট্রেডিং সময় নিয়ন্ত্রণ এবং ঝুঁকি ব্যবস্থাপনা ব্যবস্থা চালু করে। দ্রুত গড় লাইন (চক্র 9) এবং ধীর গড় লাইন (চক্র 21) দ্বারা ক্রস-সম্পর্কিত ট্রেন্ডিংয়ের দিকনির্দেশনা, আরএসআই সূচকটি ব্যবহার করে অত্যধিক ক্রয় বা অত্যধিক বিক্রয় অঞ্চলগুলি থেকে পজিশন এড়াতে এবং ভিডাব্লুএপিকে গতিশীল সমর্থন / প্রতিরোধের অবস্থান হিসাবে মূল্য নিশ্চিত করার জন্য একটি বহুমুখী ট্রেডিং সিদ্ধান্ত গ্রহণের সিস্টেম গঠন করে। কৌশলটি বিশেষত অস্থল বাজারের পরিবেশের
এই কৌশলটির মূল নীতি তিনটি প্রধান প্রযুক্তিগত সূচকের সমন্বয় এবং কঠোর সময় নিয়ন্ত্রণের উপর ভিত্তি করেঃ
ইএমএ ক্রস সংকেতঊনিশতম ইএমএ এবং একবিংশতম ইএমএ-এর ক্রস-ট্রেন্ড মূল প্রবণতা নির্ধারণের ভিত্তি গঠন করে। যখন দ্রুত ইএমএ ঊর্ধ্বমুখী ধীর ইএমএ অতিক্রম করে, তখন একটি মাল্টি-সিগন্যাল তৈরি হয়; যখন দ্রুত ইএমএ ঊর্ধ্বমুখী ধীর ইএমএ অতিক্রম করে, তখন একটি ফাঁকা-সিগন্যাল তৈরি হয়। এই ক্রস-সিগন্যালটি মূল্যের গতিশীলতার পরিবর্তনের মূল সূচক।
RSI ফিল্টার: ১৪ চক্রের আরএসআই ব্যবহার করা হয় অতিরিক্ত ক্রয় বা অতিরিক্ত বিক্রয়ের অবস্থাগুলিকে ফিল্টার করার জন্য যা বিপরীত দিকে নিয়ে যেতে পারে। কৌশলটি কেবলমাত্র আরএসআই 70 এর নীচে (অতিরিক্ত ক্রয় নয়) বিবেচনা করে এবং আরএসআই 30 এর উপরে (অতিরিক্ত বিক্রয় নয়) বিবেচনা করে, কার্যকরভাবে চরম অঞ্চলে অবস্থান খোলার এড়াতে।
ভিডাব্লুএপি নিশ্চিত করেছে: লেনদেনের ভলিউম ওজনের গড় মূল্য একটি গতিশীল সমর্থন / প্রতিরোধের লাইন হিসাবে কাজ করে, যা প্রবেশের জন্য অতিরিক্ত নিশ্চিতকরণ সরবরাহ করে। লেনদেনের জন্য অনুরোধ করা দামটি ভিডাব্লুএপি-র উপরে এবং লেনদেনের জন্য অনুরোধ করা দামটি ভিডাব্লুএপি-র নীচে থাকে, যা লেনদেনের সংকেতের নির্ভরযোগ্যতা বাড়ায়।
লেনদেনের সময় নিয়ন্ত্রণকৌশলঃ শুধুমাত্র ব্যবহারকারীর দ্বারা নির্ধারিত ট্রেডিং সময়কালের মধ্যে কাজ করা (মার্কিন বাজারের জন্য 9:30 থেকে 15:45 পর্যন্ত ডিফল্ট) । এটি নিশ্চিত করে যে ট্রেডিং কার্যক্রমটি বাজারের তরলতার জন্য সর্বোত্তম সময়ে কেন্দ্রীভূত হয় এবং সেশন শেষে প্লেইন পজিশন বাধ্যতামূলক করে রাতারাতি ঝুঁকি দূর করে।
ঝুঁকি ব্যবস্থাপনা: কৌশলটিতে একটি স্টপ-লস এবং স্টপ-অফ ব্যবস্থা রয়েছে, ডিফল্টরূপে স্টপ-লসটি প্রবেশের দামের 1% এবং স্টপ-অফটি প্রবেশের দামের 2% হিসাবে সেট করা হয়েছে। এই 2: 1 ঝুঁকি-ফেরতের অনুপাত দীর্ঘমেয়াদী লাভজনকতা বজায় রাখতে সহায়তা করে।
কোড বাস্তবায়ন থেকে, কৌশলটি সঠিক সময় নির্ধারণের জন্য শর্তাবলী ব্যবহার করেঃ
longCondition = ta.crossover(emaFast, emaSlow) and rsi < rsiOverbought and close > vwapValue and inSession
shortCondition = ta.crossunder(emaFast, emaSlow) and rsi > rsiOversold and close < vwapValue and inSession
এই বহু-শর্তযুক্ত সংমিশ্রণটি ট্রেডিং সিগন্যালের উচ্চমান নিশ্চিত করে এবং কেবলমাত্র সমস্ত সূচক সমন্বয়ে নিশ্চিত হলে এবং কার্যকর লেনদেনের সময়কালে লেনদেনকে ট্রিগার করে।
এই কৌশলটির কোডের কাঠামো এবং যৌক্তিকতার গভীর বিশ্লেষণের মাধ্যমে আমরা নিম্নলিখিত উল্লেখযোগ্য সুবিধাগুলি সংক্ষিপ্ত করতে পারিঃ
একাধিক নিশ্চিতকরণ ব্যবস্থাইএমএ ক্রস, আরএসআই ফিল্টার এবং ভিডাব্লুএপি নিশ্চিতকরণের সাথে মিলিত ট্রিপল ভেরিফিকেশন সিস্টেমটি ট্রেডিং সিগন্যালের নির্ভরযোগ্যতা ব্যাপকভাবে বাড়িয়ে তোলে এবং ভুয়া সংকেত এবং অপ্রয়োজনীয় লেনদেন হ্রাস করে।
অভিযোজনযোগ্যকৌশলটির বিভিন্ন প্যারামিটার যেমন ইএমএ চক্র, আরএসআই থ্রেশহোল্ড, ঝুঁকি পরিচালনার অনুপাত ইত্যাদি ইনপুট প্যারামিটার দ্বারা সামঞ্জস্য করা যায়, যাতে কৌশলটি বিভিন্ন বাজার পরিবেশ এবং ব্যবসায়ের জাতের বৈশিষ্ট্যগুলির সাথে খাপ খাইয়ে নিতে পারে।
নিখুঁত ঝুঁকি নিয়ন্ত্রণবিল্ট-ইন স্টপ লস স্টপ মেকানিজম এবং সেশনের সমাপ্তি বাধ্যতামূলক পজিশন ফাংশনটি একাধিক স্তরের ঝুঁকি সুরক্ষা ব্যবস্থা তৈরি করে যা একক লেনদেনের ঝুঁকি এবং সিস্টেমিক ঝুঁকিকে কার্যকরভাবে নিয়ন্ত্রণ করে।
রাতারাতি ঝুঁকি এড়ানো: ট্রেডিং পর্বের শেষে বাধ্যতামূলকভাবে প্লেইন পজিশনের মাধ্যমে, কৌশলটি রাতারাতি পজিশনের সম্ভাব্য ফাঁকির ঝুঁকি এবং অনিয়ন্ত্রিত কারণগুলিকে সম্পূর্ণরূপে এড়িয়ে যায়।
স্বচ্ছতা এবং সংক্ষিপ্ততা: কৌশলগত লজিক স্বজ্ঞাত, শর্তাদি যুক্তিসঙ্গতভাবে সেট করা হয়েছে, অত্যধিক অপ্টিমাইজেশন বা কার্ভ ফিট করার কোনও চিহ্ন নেই, বিভিন্ন বাজারের অবস্থার মধ্যে কৌশলটির স্থায়িত্ব বাড়ায়।
সম্পূর্ণ ভিজ্যুয়াল সমর্থন: কোডটিতে মূল সূচকগুলির একটি ভিজ্যুয়াল ম্যাপিং অন্তর্ভুক্ত রয়েছে যা ব্যবসায়ীদের বাজারের অবস্থা এবং কৌশলগত সংকেতগুলি সহজেই বুঝতে সহায়তা করে, কৌশলটির কার্যকারিতা বাড়ায়।
গতির উপর ভিত্তি করে সঠিক ক্যাপচার: এই কৌশলটি স্বল্পমেয়াদী দামের গতিশীলতার উপর দৃষ্টি নিবদ্ধ করে, বিশেষত এমন বাজারের জন্য যেখানে দিনের মধ্যে ওঠানামা বেশি হয়, এবং প্রবণতার প্রাথমিক পর্যায়ে সময়মতো প্রবেশ করতে পারে।
নমনীয় পজিশন ব্যবস্থাপনা: ডিফল্টরূপে স্থির হাত ব্যবহার করা হলেও, কোডের কাঠামোটি ব্যবসায়ীদের অ্যাকাউন্টের আকার এবং ঝুঁকি সহ্য করার ক্ষমতা অনুযায়ী সহজেই পজিশনের আকার পরিবর্তন করতে দেয়।
যদিও এই কৌশলটি যুক্তিসঙ্গতভাবে ডিজাইন করা হয়েছে, তবে যে কোনও ট্রেডিং কৌশলতে সম্ভাব্য ঝুঁকি রয়েছে। কোড বাস্তবায়ন বিশ্লেষণের মাধ্যমে আমরা নিম্নলিখিত ঝুঁকিপূর্ণ পয়েন্টগুলি এবং তাদের সম্ভাব্য সমাধানগুলি সনাক্ত করতে পারিঃ
বাজারের ঘন ঘন লেনদেন
ফিক্সড শতাংশ ঝুঁকি সেটিং এর সীমাবদ্ধতা: সমস্ত বাজার এবং সময়কালের জন্য একই স্টপ-স্টপ শতাংশ ব্যবহার করা যথেষ্ট নমনীয় নাও হতে পারে এবং বিভিন্ন জাতের ওঠানামার বৈশিষ্ট্যের সাথে খাপ খাইয়ে নিতে পারে। সমাধানঃ এটিআর (অর্ধ-সত্যিকারের তরঙ্গদৈর্ঘ্য) ভিত্তিতে স্টপ এবং স্টপ স্তরগুলিকে গতিশীলভাবে সামঞ্জস্য করার বিষয়টি বিবেচনা করুন।
VWAP নির্ভরতা: কিছু কম তরল বাজার বা বিশেষ সময়ে, ভিডাব্লুএপি নিয়মিত বাজারের মতো নির্ভরযোগ্য নাও হতে পারে। সমাধানঃ বিভিন্ন বাজার পরিস্থিতির জন্য স্যুইচযোগ্য নিশ্চিতকরণ সূচক সেট করার কথা বিবেচনা করুন।
অস্থিরতা সংশোধন না করা: কৌশলটি বাজারের অস্থিরতার পরিবর্তনগুলিকে বিবেচনা করে না, যা উচ্চ অস্থিরতার সময়কালে খুব সংকীর্ণ বন্ধের কারণ হতে পারে। সমাধানঃ সাম্প্রতিক ওঠানামার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে সামঞ্জস্যপূর্ণ ঝুঁকি প্যারামিটারগুলি বাস্তবায়ন।
পুনরায় ভর্তির ব্যবস্থা নেইসমাধানঃ একই শর্তের উপর ভিত্তি করে পুনরায় প্রবেশের নিয়ম যোগ করা হয়েছে, তবে শীতল সময় নির্ধারণের প্রয়োজন হতে পারে।
নির্দিষ্ট ট্রেডিং সময়সীমাস্থির ট্রেডিং সময়গুলি গুরুত্বপূর্ণ বাজার সুযোগগুলি মিস করতে পারে, বিশেষত বিভিন্ন মৌসুম বা বিশেষ বাজার ইভেন্টের সময়। সমাধানঃ বাজারের ওঠানামা এবং তরলতার গতিশীলতার উপর নির্ভর করে ট্রেডিং সময়গুলি সামঞ্জস্য করার বিষয়টি বিবেচনা করুন।
একক পজিশনের আকার: স্থির নম্বর সেটিং বাজার পরিস্থিতি বা অ্যাকাউন্টের অধিকার এবং স্বার্থের পরিবর্তনের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে ঝুঁকির এক্সপোজারকে সামঞ্জস্য করতে পারে না। সমাধানঃ অ্যাকাউন্টের শতাংশ বা ঝুঁকির শতাংশের উপর ভিত্তি করে গতিশীল অবস্থানের আকার গণনা করা।
মাল্টিমিটার নির্ভরতা বিলম্ব: একাধিক নিশ্চিতকরণ ব্যবস্থা যদিও সংকেতের গুণমান উন্নত করে, তবে এটি প্রবেশের বিলম্ব এবং সেরা মূল্যের পয়েন্টগুলি মিস করতে পারে। সমাধানঃ সূচক প্যারামিটারগুলি অনুকূলিতকরণের বিষয়টি বিবেচনা করুন বা বিভিন্ন বাজারের পর্যায়ে বিভিন্ন নিশ্চিতকরণের প্রয়োজনীয়তা সেট করুন।
নীতি কোডের গভীর বিশ্লেষণের উপর ভিত্তি করে, এখানে কয়েকটি মূল্যবান অপ্টিমাইজেশান দিক রয়েছেঃ
স্বনির্ধারিত প্যারামিটার সিস্টেম: স্থির ইএমএ চক্র এবং আরএসআই থ্রেশহোল্ডগুলিকে প্যারামিটারগুলিতে রূপান্তর করুন যা বাজারের অস্থিরতার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে সামঞ্জস্য করা হয়। এটি করার কারণ হ’ল বাজারের অবস্থা প্রায়শই পরিবর্তিত হয় এবং স্থির প্যারামিটারগুলি বিভিন্ন বাজারের পরিবেশে ব্যাপকভাবে পরিবর্তিত হয়। EMA চক্রকে গতিশীলভাবে সামঞ্জস্য করার জন্য একটি ওঠানামা সূচক (যেমন এটিআর) ব্যবহার করা বিবেচনা করা যেতে পারে, উচ্চ ওঠানামা বাজারে দীর্ঘ সময়কাল ব্যবহার করা হয় এবং নিম্ন ওঠানামা বাজারে স্বল্প সময়কাল ব্যবহার করা হয়।
প্রবণতা শক্তি ফিল্টার যোগ করুন: ADX বা অনুরূপ প্রবণতা শক্তির সূচক প্রবর্তন করুন, শুধুমাত্র যখন প্রবণতা স্পষ্ট হয় তখনই ট্রেড করুন। এটি কার্যকরভাবে অস্থির বাজারে মিথ্যা সংকেত ট্রেডিং হ্রাস করবে, সিস্টেমের জয় এবং তহবিলের দক্ষতা বাড়িয়ে তুলবে।
এটিআর ভিত্তিক ঝুঁকি ব্যবস্থাপনা: এটিআর ভিত্তিক গতিশীল স্টপ/স্টপ দ্বারা স্থির শতাংশ সেটিং প্রতিস্থাপন করা হয়েছে, যা ঝুঁকি ব্যবস্থাপনাকে বর্তমান বাজারের অস্থিরতার সাথে আরও সামঞ্জস্যপূর্ণ করে তোলে। উদাহরণস্বরূপ, স্টপটি প্রবেশের দামের ১.৫ গুণ কম ATR হিসাবে সেট করা যেতে পারে এবং স্টপটি প্রবেশের দামের ৩ গুণ বেশি ATR হিসাবে সেট করা যেতে পারে, ভাল রিস্ক-রিটার্ন অনুপাত বজায় রাখার জন্য।
সময় ফিল্টার অপ্টিমাইজেশানস্থির ট্রেডিং সময়ের পাশাপাশি, নির্দিষ্ট বাজার পরিস্থিতির জন্য সময় ফিল্টার যুক্ত করার কথা বিবেচনা করুন, যেমন গুরুত্বপূর্ণ অর্থনৈতিক তথ্য প্রকাশের সময় বা বাজার খোলার / বন্ধ হওয়ার আগে উচ্চ অস্থিরতার সময়।
ডায়নামিক পজিশন ব্যবস্থাপনা: অ্যাকাউন্টের আকার এবং বর্তমান ঝুঁকির উপর ভিত্তি করে ডায়নামিক পজিশন গণনা বাস্তবায়ন করুন, যেমন কেলি গাইডলাইন বা ফিক্সড স্কোর ঝুঁকি মডেল, তহবিল বৃদ্ধি সর্বাধিকীকরণ এবং প্রত্যাহার নিয়ন্ত্রণ করতে।
মুনাফা বৃদ্ধি ট্র্যাকিং ক্ষতি: ট্রেন্ডিং মুনাফা ক্যাপচার সর্বাধিক করার জন্য, একটি ট্র্যাকিং স্টপ-লস ফাংশন যুক্ত করা যেতে পারে, যা মুনাফাজনক ট্রেডিংয়ের সময় মূল্যের অনুকূল দিক থেকে চলাচলের সাথে সাথে স্টপ-লস স্তরগুলিকে সামঞ্জস্য করতে দেয়।
VWAP অ্যাপ্লিকেশন অপ্টিমাইজ করুন: ভিডাব্লুএপি বা ভিডাব্লুএপি ব্যান্ডেজ চ্যানেলের সাথে মিলিত আরও সূক্ষ্ম সমর্থন / প্রতিরোধের বিচার বিবেচনা করুন, প্রবেশ এবং প্রস্থান সিদ্ধান্তের নির্ভুলতা বাড়ান।
মার্কেট স্ট্যাটাস ক্লাসিফিকেশন যোগ করুন: বাজারের অবস্থার শ্রেণিবিন্যাসের একটি ব্যবস্থা বাস্তবায়ন করা হয়েছে যা অস্থিরতা এবং মূল্য কাঠামোর উপর ভিত্তি করে, যা বিভিন্ন বাজারের অবস্থার জন্য কৌশলগুলিকে বিভিন্ন প্যারামিটার সমন্বয় এবং ট্রেডিং নিয়ম ব্যবহার করার অনুমতি দেয়।
মাল্টি টাইম ফ্রেম নিশ্চিতকরণট্রেন্ড কপিঃ ট্রেন্ড কপি করার জন্য উচ্চতর টাইম ফ্রেম প্রবর্তন করুন, ট্রেডিং শুধুমাত্র যখন intraday ট্রেন্ড উচ্চতর টাইম ফ্রেম ট্রেন্ডের সাথে সামঞ্জস্যপূর্ণ হয়, ট্রেন্ড ক্যাপচারের নির্ভুলতা উন্নত করুন।
এই অপ্টিমাইজেশনের দিকগুলি কেবল কৌশলগুলির স্থিতিশীলতা এবং অভিযোজনযোগ্যতা বাড়াতে পারে না, বরং ঝুঁকিগুলি আরও ভালভাবে পরিচালনা করতে এবং দীর্ঘমেয়াদী কর্মক্ষমতা বাড়াতে পারে। প্রতিটি অপ্টিমাইজেশনের কার্যকারিতা কঠোরভাবে পর্যালোচনার মাধ্যমে যাচাই করা উচিত, যাতে ওভার-অপ্টিমাইজেশনের ফলে কার্ভ ফিট সমস্যাগুলি এড়ানো যায়।
মাল্টি ফ্যাক্টর ইএমএ-আরএসআই-ভিডাব্লুএপি ইনডোর ডায়নামিক ট্রেডিং কৌশলটি একটি যুক্তিসঙ্গত, যুক্তিসঙ্গতভাবে নকশাকৃত ইনডোর ট্রেডিং সিস্টেম যা একাধিক প্রযুক্তিগত সূচক এবং কঠোর ঝুঁকি ব্যবস্থাপনার সমন্বয় দ্বারা বাজারের স্বল্পমেয়াদী গতিশীলতার পরিবর্তনগুলিকে ক্যাপচার করার উপর দৃষ্টি নিবদ্ধ করে। এর মূল সুবিধাটি হ’ল একাধিক নিশ্চিতকরণ ব্যবস্থা, নিখুঁত ঝুঁকি নিয়ন্ত্রণ এবং রাতারাতি ঝুঁকি এড়ানোর জন্য সেশন নিয়ন্ত্রণ, যা এটিকে তুলনামূলকভাবে শক্তিশালী ইনডোর ট্রেডিং ফ্রেমওয়ার্ক করে।
এই কৌশলটি সূক্ষ্মভাবে সংকেতের গুণমান এবং ট্রেডিং ফ্রিকোয়েন্সিকে ভারসাম্যপূর্ণ করে, ইএমএর মাধ্যমে ট্রেন্ডের সূচনাকে ক্রস-ক্যাপচার করে এবং একই সাথে আরএসআই এবং ভিডাব্লুএপি ব্যবহার করে ফিল্টার এবং নিশ্চিতকরণ করে, যা মিথ্যা সংকেত হ্রাস করে। অন্তর্নির্মিত স্টপ লস স্টপ মেকানিজম এবং সেশনের সমাপ্তি বাধ্যতামূলক পজিশনের বৈশিষ্ট্যটি কৌশলটিকে একাধিক স্তরের ঝুঁকি সুরক্ষা সরবরাহ করে যা দীর্ঘমেয়াদী স্থিতিশীল তহবিলের কার্ভকে সহায়তা করে।
যাইহোক, এই কৌশলটির কিছু সম্ভাব্য ঝুঁকিও রয়েছে, যেমন বিভিন্ন বাজারের পরিস্থিতিতে স্থির পরামিতিগুলির অভিযোজনযোগ্যতার সমস্যা, অস্থির বাজারে অত্যধিক ব্যবসায়ের ঝুঁকি এবং স্থির শতাংশ ঝুঁকি সেটিংয়ের সীমাবদ্ধতা ইত্যাদি। অভিযোজনযোগ্য পরামিতি সিস্টেম প্রবর্তন, প্রবণতা শক্তি ফিল্টার যুক্ত করা, এটিআর-ভিত্তিক গতিশীল ঝুঁকি ব্যবস্থাপনা বাস্তবায়ন এবং অবস্থান অপ্টিমাইজেশনের মতো ব্যবস্থাপনা ব্যবস্থা গ্রহণের মাধ্যমে কৌশলটির স্থায়িত্ব এবং অভিযোজনযোগ্যতা আরও বাড়ানো যেতে পারে।
সামগ্রিকভাবে, মাল্টিফ্যাক্টর ইএমএ-আরএসআই-ভিডাব্লুএপি ইনডেই ডায়নামিক ট্রেডিং কৌশলটি দিন ব্যবসায়ীদের জন্য একটি কাঠামোগত, পরিমাপযোগ্য ট্রেডিং ফ্রেমওয়ার্ক সরবরাহ করে, যার পরিষ্কার যুক্তি এবং নমনীয় প্যারামিটার সেটগুলি এটিকে বিস্তৃত অ্যাপ্লিকেশন সম্ভাবনার সাথে যুক্ত করে। লক্ষ্যবস্তু অপ্টিমাইজেশন এবং যথাযথ প্যারামিটার সমন্বয় দ্বারা, কৌশলটি বিভিন্ন বাজারের পরিবেশে স্থিতিশীল পারফরম্যান্স বজায় রাখার প্রত্যাশায় রয়েছে, যা ব্যবসায়ীদের জন্য একটি নির্ভরযোগ্য ইনডেই ট্রেডিং পদ্ধতি সরবরাহ করে।
/*backtest
start: 2024-07-28 00:00:00
end: 2024-12-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Intraday Momentum Strategy", overlay=true, margin_long=100, margin_short=100)
// Input parameters
emaFastLength = input.int(9, "Fast EMA Length", minval=1)
emaSlowLength = input.int(21, "Slow EMA Length", minval=1)
rsiLength = input.int(14, "RSI Length", minval=1)
rsiOverbought = input.int(70, "RSI Overbought", minval=0, maxval=100)
rsiOversold = input.int(30, "RSI Oversold", minval=0, maxval=100)
stopLossPerc = input.float(1.0, "Stop Loss %", minval=0.1, step=0.1)
takeProfitPerc = input.float(2.0, "Take Profit %", minval=0.1, step=0.1)
startHour = input.int(9, "Session Start Hour", minval=0, maxval=23)
startMinute = input.int(30, "Session Start Minute", minval=0, maxval=59)
endHour = input.int(15, "Session End Hour", minval=0, maxval=23)
endMinute = input.int(45, "Session End Minute", minval=0, maxval=59)
// Calculate indicators
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
rsi = ta.rsi(close, rsiLength)
vwapValue = ta.vwap(hlc3)
// Define trading session
sessionString = str.tostring(startHour, "00") + str.tostring(startMinute, "00") + "-" + str.tostring(endHour, "00") + str.tostring(endMinute, "00")
inSession = time(timeframe.period, sessionString)
// Entry conditions
longCondition = ta.crossover(emaFast, emaSlow) and rsi < rsiOverbought and close > vwapValue and inSession
shortCondition = ta.crossunder(emaFast, emaSlow) and rsi > rsiOversold and close < vwapValue and inSession
// Exit conditions (time-based)
exitTime = not inSession
// Position sizing and risk management
lotSize = 1 // Fixed lot size (adjust based on account size in backtesting)
// Strategy logic
if (longCondition)
strategy.entry("Long", strategy.long, qty=lotSize)
strategy.exit("Long Exit", "Long", stop=strategy.position_avg_price * (1 - stopLossPerc / 100), limit=strategy.position_avg_price * (1 + takeProfitPerc / 100))
if (shortCondition)
strategy.entry("Short", strategy.short, qty=lotSize)
strategy.exit("Short Exit", "Short", stop=strategy.position_avg_price * (1 + stopLossPerc / 100), limit=strategy.position_avg_price * (1 - takeProfitPerc / 100))
// Close all positions at session end
if (exitTime)
strategy.close_all("Session End")
// Plot indicators
plot(emaFast, color=color.blue, title="Fast EMA")
plot(emaSlow, color=color.red, title="Slow EMA")
plot(vwapValue, color=color.purple, title="VWAP")