এই কৌশলটি মূল্যের ATR অস্থিরতা গণনা করে এবং স্টক ট্রেন্ড ট্রেডিংয়ের জন্য দীর্ঘ প্রবেশ এবং প্রস্থান শর্ত নির্ধারণের জন্য বিভিন্ন সময়কালের ভিডাব্লুএপি একত্রিত করে।
এই কৌশলটি মূলত স্টক পণ্যগুলির প্রবণতা ট্র্যাকিংয়ের জন্য ব্যবহৃত হয়। এটির অস্থিরতা গণনা করে এবং বিভিন্ন সময়ের ভিডাব্লুএপি দামগুলি একত্রিত করে, এটি প্রবণতা বিচার এবং ট্র্যাক করার জন্য ক্রয় এবং বিক্রয় শর্ত নির্ধারণ করে। কৌশলটি দীর্ঘমেয়াদী এবং স্বল্পমেয়াদী মধ্যে স্যুইচ করার জন্য যথেষ্ট নমনীয়, মাঝারি এবং দীর্ঘমেয়াদী প্রবণতা ক্যাপচার করার জন্য উপযুক্ত।
কৌশলটি মূল্যের অস্থিরতা গণনা করতে এটিআর সূচক ব্যবহার করে এবং দামটি অস্থিরতার চ্যানেলটি ভেঙেছে কিনা তার উপর ভিত্তি করে প্রবণতা দিকটি বিচার করে। একই সাথে এটি দীর্ঘ ও স্বল্পমেয়াদী প্রবণতার ধারাবাহিকতা নির্ধারণের জন্য বিভিন্ন চক্রের ভিডাব্লুএপি দামগুলি প্রবর্তন করে। নির্দিষ্ট যুক্তিটি নিম্নরূপঃ
উপরের কৌশলটির মূল যুক্তি। এটিআর অস্থিরতা স্বল্পমেয়াদী প্রবণতা এবং ভিডাব্লুএপি মূল্য দীর্ঘমেয়াদী প্রবণতা বিচার করে। উভয়ই প্রবণতার ধারাবাহিকতা নির্ধারণ করতে এবং এইভাবে ট্রেডিং সংকেত তৈরি করতে একত্রিত হয়।
কৌশলটি এটিআর অস্থিরতা এবং ভিডাব্লুএপি এর দ্বৈত নিশ্চিতকরণের মাধ্যমে স্টক ট্রেন্ড ট্র্যাকিং উপলব্ধি করে। পরামিতিগুলি সামঞ্জস্য করে বা অন্যান্য প্রযুক্তিগত সূচকগুলি অন্তর্ভুক্ত করে অপ্টিমাইজেশনের জন্য প্রচুর জায়গা রয়েছে। সামগ্রিকভাবে, কৌশল যুক্তি মধ্যম থেকে দীর্ঘমেয়াদী প্রবণতা ট্র্যাকিংয়ের জন্য পরিষ্কার এবং শক্তিশালী।
/*backtest start: 2023-12-17 00:00:00 end: 2024-01-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=4 strategy(title="VWAP MTF STOCK STRATEGY", overlay=true ) // high^2 / 2 - low^2 -2 h=pow(high,2) / 2 l=pow(low,2) / 2 o=pow(open,2) /2 c=pow(close,2) /2 x=(h+l+o+c) / 4 y= sqrt(x) source = y useTrueRange = false length = input(27, minval=1) mult = input(0, step=0.1) ma = sma(source, length) range = useTrueRange ? tr : high - low rangema = sma(range, length) upper = ma + rangema * mult lower = ma - rangema * mult crossUpper = crossover(source, upper) crossLower = crossunder(source, lower) bprice = 0.0 bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1]) sprice = 0.0 sprice := crossLower ? low -syminfo.mintick : nz(sprice[1]) crossBcond = false crossBcond := crossUpper ? true : na(crossBcond[1]) ? false : crossBcond[1] crossScond = false crossScond := crossLower ? true : na(crossScond[1]) ? false : crossScond[1] cancelBcond = crossBcond and (source < ma or high >= bprice ) cancelScond = crossScond and (source > ma or low <= sprice ) longOnly = true fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true srcX = input(ohlc4) t = time("W") start = na(t[1]) or t > t[1] sumSrc = srcX * volume sumVol = volume sumSrc := start ? sumSrc : sumSrc + sumSrc[1] sumVol := start ? sumVol : sumVol + sumVol[1] vwapW= sumSrc / sumVol //crossUpper = crossover(source, upper) //crossLower = crossunder(source, lower) shortCondition = close < vwap and time_cond and (close < vwapW) longCondition = close > vwap and time_cond and (close > vwapW) if(longOnly and time_cond) if (crossLower and close < vwapW ) strategy.close("long") if (crossUpper and close>vwapW) strategy.entry("long", strategy.long, stop=bprice)