
এই কৌশলটি একটি চলমান গড় সূচক, একটি বুলিন ব্যান্ড সূচক এবং একটি ট্র্যাফিক ওজনযুক্ত গড় মূল্য সূচককে একত্রিত করে, স্বর্ণ ফর্ক গঠনের শর্তে প্রবেশের বিচার করে, একটি সংক্ষিপ্ত গড় লাইন দীর্ঘ গড় লাইন অতিক্রম করে। কৌশলটি বুলিন ব্যান্ডের চ্যানেলটিও ব্যবহার করে, কেবলমাত্র যখন দামগুলি বুলিন ব্যান্ডের নীচের ট্র্যাককে স্পর্শ করে তখনই প্রবেশের বিষয়টি বিবেচনা করে, যাতে বাজারের অস্থিরতার সময় ঘন ঘন প্রবেশ করা যায়।
এই কৌশলটি মূলত গড়রেখার সূচকের মাধ্যমে প্রবণতা দিক নির্ধারণ করে, ব্রিনের মাধ্যমে অবস্থানের ওঠানামা পরিসীমা বেছে নেওয়ার জন্য একটি ক্রয় পয়েন্ট ব্যবহার করে। বিশেষত, কৌশলটিতে নিম্নলিখিত কয়েকটি মূল নিয়ম রয়েছেঃ
50 দিনের ইএমএ এবং 200 দিনের ইএমএ ব্যবহার করে গোল্ডফোর্ক বিচার ব্যবস্থা তৈরি করা, যখন দ্রুত চলমান গড়ের উপর ধীর চলমান গড় অতিক্রম করা হয় তখন এটি একটি বহু-উত্তর প্রবণতা বলে মনে করা হয়;
VWAP-এর চেয়ে দাম বেশি হলে, দাম বাড়ার পর্যায়ে থাকার কথা ভাবুন, যা বেশি পজিশন তৈরির পক্ষে সহায়ক হবে;
যখন দামগুলি ব্রিনের নীচের লাইনের সাথে সংযুক্ত হয় বা অতিক্রম করে, তখন এটি ইঙ্গিত দেয় যে শেয়ারের দাম সম্ভবত বিপর্যয় পয়েন্টের কাছাকাছি রয়েছে, যার জন্য একটি ভাল সুযোগ রয়েছে;
মাল্টি-হোল্ডিং পজিশনে প্রবেশের পরে, দামটি বুলিনের চেয়ে বেশি হয়ে যায় এবং সময়মতো বন্ধ হয়ে যায়।
এই নিয়মগুলির সংমিশ্রণ দ্বারা, এই কৌশলটি একটি বুল মার্কেটে উপযুক্ত ক্রয়-বিক্রয় বেছে নিতে সক্ষম করে এবং লাভের জন্য একটি স্টপ-ড্রপ সেট করে।
গোল্ড ফর্কের মূল্যায়ন পদ্ধতি ব্যবহার করে বড় প্রবণতার দিকনির্দেশনা নির্ধারণ করুন এবং ঝড়ের সময় ছোট জয়-পরাজয় এড়িয়ে চলুন।
ভিডাব্লুএপি সূচকটি দামের দিকনির্দেশনা নির্ধারণ করে এবং ক্রয় স্থানটি আরও সুনির্দিষ্ট করে তোলে;
ব্রিন-ব্যান্ডের সূচকগুলি ক্রয়-বিক্রয়কে আরও দৃঢ় করে তোলে এবং লাভের জন্য একটি স্টপ-ড্রপ সেট করে।
বিভিন্ন সূচক একে অপরকে যাচাই করে, যা কৌশলগত সিদ্ধান্তকে আরও নির্ভুল এবং নির্ভরযোগ্য করে তোলে।
গোল্ডফোর্ক বিচার ব্যবস্থা ভুল সংকেত দিতে পারে, যথাযথভাবে সমান্তরাল চক্রের দৈর্ঘ্য সংক্ষিপ্ত করা উচিত এবং অন্যান্য সূচক যাচাইয়ের সাথে কাজ করা উচিত;
ভুলভাবে বুলিং-ব্যান্ড প্যারামিটার সেট করা হলে, কৌশলটি কার্যকর হবে না। বুলিং-ব্যান্ডের সময়কাল এবং স্ট্যান্ডার্ড ডিফারেনশিয়াল প্যারামিটারগুলি সামঞ্জস্য করা উচিত।
স্টপ লস পয়েন্ট সেট করা খুব হালকা, যা ক্ষতিকে কার্যকরভাবে নিয়ন্ত্রণ করতে পারে না। স্টপ লস রেঞ্জ যথাযথভাবে কঠোর করা উচিত, যাতে ঝুঁকি নিয়ন্ত্রণযোগ্য হয়।
গোল্ডেন ফর্কের সমান্তরাল সংমিশ্রণটি অপ্টিমাইজ করুন, বিভিন্ন সমান্তরাল প্যারামিটার পরীক্ষা করুন এবং সর্বোত্তম প্যারামিটারটি সন্ধান করুন;
বিভিন্ন পর্যায়ের ব্রিনের প্যারামিটারগুলি পরীক্ষা করে, যাতে সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পাওয়া যায়, যেমন মাত্রা এবং বিচ্ছিন্নতা;
পরীক্ষা এবং ক্ষতির পরিসীমা অপ্টিমাইজ করুন যাতে ঝুঁকিগুলি কার্যকরভাবে নিয়ন্ত্রণ করা যায় এবং খুব সহজেই ট্রিগার করা যায় না।
এই কৌশলটি সমান্তরাল সিস্টেম, ব্রিনব্যান্ড এবং ভিডাব্লুএপি সূচকগুলিকে প্রবেশের সময় নির্ধারণের জন্য ব্যবহার করে, আবিষ্কারের সুযোগ এবং নিয়ন্ত্রণের ঝুঁকির মধ্যে ভারসাম্য বজায় রাখে। পরবর্তী প্যারামিটার অপ্টিমাইজেশন এবং নিয়ম সংশোধনের মাধ্যমে, শিল্প এবং বাজারে স্থায়ী সুবিধাগুলি লক করার আশা করা হচ্ছে।
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © mohanee
//@version=4
strategy(title="VWAP and BB strategy [$$]", overlay=true,pyramiding=2, default_qty_value=1, default_qty_type=strategy.fixed, initial_capital=10000, currency=currency.USD)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 6, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 8, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
// Calculate start/end date and time condition
DST = 1 //day light saving for usa
//--- Europe
London = iff(DST==0,"0000-0900","0100-1000")
//--- America
NewYork = iff(DST==0,"0400-1300","0500-1400")
//--- Pacific
Sydney = iff(DST==0,"1300-2200","1400-2300")
//--- Asia
Tokyo = iff(DST==0,"1500-2400","1600-0100")
//-- Time In Range
timeinrange(res, sess) => time(res, sess) != 0
london = timeinrange(timeframe.period, London)
newyork = timeinrange(timeframe.period, NewYork)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = time >= startDate and time <= finishDate
is_price_dipped_bb(pds,source1) =>
t_bbDipped=false
for i=1 to pds
t_bbDipped:= (t_bbDipped or close[i]<source1) ? true : false
if t_bbDipped==true
break
else
continue
t_bbDipped
is_bb_per_dipped(pds,bbrSrc) =>
t_bbDipped=false
for i=1 to pds
t_bbDipped:= (t_bbDipped or bbrSrc[i]<=0) ? true : false
if t_bbDipped==true
break
else
continue
t_bbDipped
// variables BEGIN
shortEMA = input(50, title="fast EMA", minval=1)
longEMA = input(200, title="slow EMA", minval=1)
//BB
smaLength = input(7, title="BB SMA Length", minval=1)
bbsrc = input(close, title="BB Source")
strategyCalcOption = input(title="strategy to use", type=input.string, options=["BB", "BB_percentageB"], defval="BB")
//addOnDivergence = input(true,title="Add to existing on Divergence")
//exitOption = input(title="exit on RSI or BB", type=input.string, options=["RSI", "BB"], defval="BB")
//bbSource = input(title="BB source", type=input.string, options=["close", "vwap"], defval="close")
//vwap_res = input(title="VWAP Resolution", type=input.resolution, defval="session")
stopLoss = input(title="Stop Loss%", defval=1, minval=1)
//variables END
longEMAval= ema(close, longEMA)
shortEMAval= ema(close, shortEMA)
ema200val = ema(close, 200)
vwapVal=vwap(close)
// Drawings
//plot emas
plot(shortEMAval, color = color.green, linewidth = 1, transp=0)
plot(longEMAval, color = color.orange, linewidth = 1, transp=0)
plot(ema200val, color = color.purple, linewidth = 2, style=plot.style_line ,transp=0)
//bollinger calculation
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(bbsrc, smaLength)
dev = mult * stdev(bbsrc, smaLength)
upperBand = basis + dev
lowerBand = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
bbr = (bbsrc - lowerBand)/(upperBand - lowerBand)
//bollinger calculation
//plot bb
//plot(basis, "Basis", color=#872323, offset = offset)
p1 = plot(upperBand, "Upper", color=color.teal, offset = offset)
p2 = plot(lowerBand, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=#198787, transp=95)
plot(vwapVal, color = color.purple, linewidth = 2, transp=0)
// Colour background
//barcolor(shortEMAval>longEMAval and close<=lowerBand ? color.yellow: na)
//longCondition= shortEMAval > longEMAval and close>open and close>vwapVal
longCondition= ( shortEMAval > longEMAval and close>open and close>vwapVal and close<upperBand ) //and time_cond // and close>=vwapVal
//Entry
strategy.entry(id="long", comment="VB LE" , long=true, when= longCondition and ( strategyCalcOption=="BB"? is_price_dipped_bb(10,lowerBand) : is_bb_per_dipped(10,bbr) ) and strategy.position_size<1 ) //is_price_dipped_bb(10,lowerBand)) //and strategy.position_size<1 is_bb_per_dipped(15,bbr)
//add to the existing position
strategy.entry(id="long", comment="Add" , long=true, when=strategy.position_size>=1 and close<strategy.position_avg_price and close>vwapVal) //and time_cond)
barcolor(strategy.position_size>=1 ? color.blue: na)
strategy.close(id="long", comment="TP Exit", when=crossover(close,upperBand) )
//stoploss
stopLossVal = strategy.position_avg_price * (1-(stopLoss*0.01) )
//strategy.close(id="long", comment="SL Exit", when= close < stopLossVal)
//strategy.risk.max_intraday_loss(stopLoss, strategy.percent_of_equity)