এই কৌশলটি ট্রেডিং ভলিউমের দীর্ঘ ও স্বল্পমেয়াদী চলমান গড়ের ক্রসওভারের উপর ভিত্তি করে। এটি ট্রেডিং ভলিউমের দীর্ঘ ও স্বল্পমেয়াদী প্রবণতা গণনা করতে বিভিন্ন সময়ের ইএমএ ব্যবহার করে এবং তাদের পার্থক্যের ভিত্তিতে একটি দোলক তৈরি করে। দোলক শূন্য স্তরের উপরে অতিক্রম করার সময় এটি দীর্ঘ যায় এবং নীচে অতিক্রম করার সময় এটি সংক্ষিপ্ত হয়। এটি নির্দিষ্ট দিক নির্ধারণের জন্য পূর্ববর্তী উচ্চ এবং নিম্ন দামগুলিও অন্তর্ভুক্ত করে।
এই কৌশলটির মূল সূচক হল ভলিউম অ্যাসিললেটর। এটি দীর্ঘমেয়াদী এবং স্বল্পমেয়াদী এক্সপোনেনশিয়াল মুভিং এভারেজগুলির মধ্যে পার্থক্য গণনা করে ট্রেডিং ভলিউমের পরিবর্তনের প্রবণতা প্রতিফলিত করে। কংক্রিট সূত্রটি হলঃ
ভলিউম ওসিলেটর = (ShortEMA - LongEMA) / LongEMA * 100
এখানে শর্টইএমএ এবং লংইএমএ যথাক্রমে স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী ইএমএ বোঝায়। যখন শর্টইএমএ লংইএমএ অতিক্রম করে, সূচকটি ইতিবাচক হয়ে যায়, যার অর্থ ট্রেডিংয়ের পরিমাণ বাড়ছে। যখন শর্টইএমএ লংইএমএর নীচে অতিক্রম করে, সূচকটি নেতিবাচক হয়ে যায়, যার অর্থ ট্রেডিংয়ের পরিমাণ সংকুচিত হচ্ছে।
অস্থিরতা হ্রাস করার জন্য, এই কৌশলটি শূন্য স্তরের সাথে তার ক্রসওভার ব্যবহার করে। এটি দীর্ঘ হয় যখন অস্থিরতা নেতিবাচক থেকে ইতিবাচক হয়ে যায়, অর্থাৎ শূন্য স্তরের উপরে অতিক্রম করে এবং ইতিবাচক থেকে নেতিবাচক হয়ে যায়, অর্থাৎ শূন্য স্তরের নীচে অতিক্রম করে। এটি ট্রেডিং ভলিউমের গতির রূপান্তরকে প্রতিফলিত করে।
এছাড়াও, কৌশলটি নির্দিষ্ট দিকনির্দেশগুলি নির্ধারণের জন্য পূর্ববর্তী উচ্চ এবং নিম্ন মূল্যগুলিকেও অন্তর্ভুক্ত করে। অর্থাৎ যখন দোলক শূন্য স্তরের উপরে অতিক্রম করে, যদি পূর্ববর্তী উচ্চ মূল্য পূর্ববর্তী নিম্ন মূল্যের পরম মানের চেয়ে বেশি হয়, তবে এটি একটি দীর্ঘ সংকেত বোঝায়, অন্যথায় একটি সংক্ষিপ্ত সংকেত। এই বৈশিষ্ট্যটি ভলিউম সম্প্রসারণের শক্তি বিচার করতে সহায়তা করে।
এই কৌশল নিম্নলিখিত সুবিধাগুলি আছেঃ
ট্রেডিং ভলিউমকে বেস ইনডিকেটর হিসেবে ব্যবহার করা বাজারের অংশগ্রহণকারীদের ইচ্ছাকে কার্যকরভাবে নির্ধারণ করতে পারে এবং এটি খুবই ব্যবহারিক।
দীর্ঘমেয়াদী এবং স্বল্পমেয়াদী ইএমএ উভয়ই অন্তর্ভুক্ত করা মিডল-লং মেয়াদী প্রবণতা এবং স্বল্পমেয়াদী গতি একই সাথে ধরা দিতে পারে।
নির্দেশক এবং শূন্য স্তর দ্বারা গঠিত ক্রসিং সংকেত সিদ্ধান্ত গ্রহণের জন্য সহজ এবং পরিষ্কার।
ট্রেডিং ভলিউমের গতির আকারের ভাল ব্যবহার করতে পারে।
কৌশলগত যুক্তি সহজ, পরামিতিগুলি সামঞ্জস্যের জন্য নমনীয় এবং এটির তুলনামূলকভাবে শক্তিশালী অভিযোজনযোগ্যতা রয়েছে।
এই কৌশলটির কিছু ঝুঁকি উল্লেখ করা প্রয়োজনঃ
ভলিউম সূচকটি বাজারের মিথ্যা ব্রেকআউটের দ্বারা প্রভাবিত হতে পারে, যা ভুল সংকেত তৈরি করে। ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস সেট করা উচিত।
পরিসীমা-বান্ধব বাজারে, ভলিউম ক্রসওভারগুলি প্রায়শই ঘটতে পারে। সূচকের টার্নিং পয়েন্টগুলির যথাযথ নিশ্চিতকরণের প্রয়োজন।
পূর্ববর্তী উচ্চ এবং নিম্ন মাত্রা শুধুমাত্র সাম্প্রতিক সম্প্রসারণকে প্রতিফলিত করে এবং এর টেকসইতা নির্ধারণ করতে পারে না।
বিভিন্ন পণ্য এবং সময়কালের জন্য পরামিতিগুলির পৃথক অপ্টিমাইজেশান প্রয়োজন। সর্বজনীনতা সীমিত।
ভলিউম সূচকটি উচ্চ ফ্রিকোয়েন্সির অ্যালগরিদমিক ট্রেডিংয়ে ধীরে ধীরে প্রতিক্রিয়া দেখায়, সম্ভবত সেরা প্রবেশের সময়টি মিস করে।
কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ
মিথ্যা সংকেত এড়াতে ফিল্টার যোগ করা, যেমন মূল্য সূচক দিয়ে নিশ্চিত করা।
বিভিন্ন পণ্যের বৈশিষ্ট্যগুলির সাথে মেলে দীর্ঘ ও স্বল্পমেয়াদী ইএমএগুলির সময়কালের অপ্টিমাইজেশন।
একটি সময়ের সর্বোচ্চ এবং সর্বনিম্ন মূল্য ব্যবহার করার জন্য পূর্ববর্তী সর্বোচ্চ এবং সর্বনিম্ন সময়ের জন্য প্যারামিটার সেট করা।
অতিরিক্ত লেনদেন এড়ানোর জন্য একটি স্তরের পরিবর্তে সূচকের টার্নিং এলাকার জন্য একটি পরিসীমা নির্ধারণ করা।
একক ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস কৌশল যোগ করা।
ভিআরপি-র মতো অন্যান্য ভলিউম ভিত্তিক সূচক অন্তর্ভুক্ত করা।
মেশিন লার্নিং পদ্ধতি ব্যবহার করে স্বয়ংক্রিয়ভাবে প্যারামিটার অপ্টিমাইজ করা।
সংক্ষেপে, ভলিউম দোলক দীর্ঘ স্বল্পমেয়াদী চলমান গড় ক্রসওভার কৌশল ভলিউম বিপরীত বৈশিষ্ট্যগুলির ভাল ব্যবহার করে এবং প্রবণতার প্রাথমিক পর্যায়ে শক্তিশালী বিচার ক্ষমতা রয়েছে। দিকনির্দেশ নির্ধারণের জন্য পূর্ববর্তী উচ্চ এবং নিম্ন যোগ করা ট্রেডিং সিদ্ধান্তগুলিকে আরও নির্ভুল করে তোলে। মিথ্যা সংকেত থেকে ক্ষতি রোধে ঝুঁকি নিয়ন্ত্রণও গুরুত্বপূর্ণ। এই কৌশলটির প্যারামিটার টিউনিং এবং সংমিশ্রণ সূচকগুলির মতো দিকগুলিতে অপ্টিমাইজেশনের জন্য প্রচুর জায়গা রয়েছে, যাতে এর ট্রেডিং বিলম্ব এবং বাজারের পরিবর্তনের প্রতিক্রিয়া সময়কে সংক্ষিপ্ত করা যায়।
/*backtest start: 2022-12-05 00:00:00 end: 2023-03-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("SB_Volume_oscillator_Prev_high_low", overlay=true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100) shortlen = input(5, minval=1) longlen = input(10, minval=1) short = ema(volume, shortlen) long = ema(volume, longlen) osc = 100 * (short - long) / long //hline(0, title="Zero") //plot(osc) zero=input(0.0) low_val=input(0.0) high_val=input(0.0) prev_high_val=input(0.0) prev_low_val=input(0.0) where=input(0) where:=nz(where[1]) low_val:=nz(low_val[1]) high_val:=nz(high_val[1]) prev_high_val:=nz(prev_high_val[1]) prev_low_val:=nz(prev_low_val[1]) if(crossover(osc,zero)) high_val:=osc where:=1 prev_low_val:=low_val low_val:=osc if(crossunder(osc,zero)) low_val:=osc where:=-1 prev_high_val:=high_val high_val:=osc if(where==1) if(high_val<osc) high_val:=osc if(where==-1) if(low_val>osc) low_val:=osc if (crossover(osc,zero)) if(prev_high_val<=abs(prev_low_val)) strategy.entry("My Long Entry Id", strategy.long) if(prev_high_val>abs(prev_low_val)) strategy.entry("My Short Entry Id", strategy.short) if (crossunder(osc,zero)) if(prev_high_val<=abs(prev_low_val)) strategy.entry("My Long Entry Id", strategy.long) if(prev_high_val>abs(prev_low_val)) strategy.entry("My Short Entry Id", strategy.short)