
এই কৌশলটি শেয়ারের ট্রেন্ড ট্র্যাকিং ট্রেডিংয়ের জন্য দীর্ঘ অবস্থানের প্রবেশ এবং প্রস্থান শর্তগুলি নির্ধারণ করে, দামের 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)