বলিঙ্গার ব্যান্ড এবং কাল্কিন চ্যানেলের উপর ভিত্তি করে মোমেন্টাম স্কুইজ কৌশল


সৃষ্টির তারিখ: 2024-01-30 17:33:49 অবশেষে সংশোধন করুন: 2024-01-30 17:33:49
অনুলিপি: 0 ক্লিকের সংখ্যা: 869
1
ফোকাস
1617
অনুসারী

বলিঙ্গার ব্যান্ড এবং কাল্কিন চ্যানেলের উপর ভিত্তি করে মোমেন্টাম স্কুইজ কৌশল

ওভারভিউ

এটি একটি পরিমাণগত ট্রেডিং কৌশল যা LazyBear এর গতিশীল এক্সট্রুশন সূচকগুলির উপর ভিত্তি করে তৈরি করা হয়েছে। এই কৌশলটি ব্রিনব্যান্ড, ক্যালকিন চ্যানেল এবং গতিশীল সূচকগুলিকে একত্রিত করে, বিভিন্ন প্রযুক্তিগত সূচকগুলির সমন্বয় দ্বারা উচ্চ-উত্পাদনশীল গতিশীল বিরতি ট্রেডিংয়ের জন্য।

কৌশল নীতি

এই কৌশলটির কেন্দ্রীয় সূচকটি হল LazyBear এর গতিশীলতা এক্সট্রুশন সূচক। এটি নির্ধারণ করে যে বুলিন বন্ডটি ক্যালকিন চ্যানেলের দ্বারা চাপা পড়েছে কিনা। যখন চাপা পড়ে, তখন বাজারটি একটি সম্ভাব্য বিস্ফোরণ পয়েন্টে প্রবেশ করে। গতিশীলতা সূচকের দিকনির্দেশের সাথে মিলিত হওয়ার পরে, এক্সট্রুশনটি প্রকাশের সময় বাজারের বিস্ফোরণটি ক্যাপচার করা যায়।

বিশেষত, এই কৌশলটি প্রথমে 21 টি চক্রের ব্রিনের ব্যান্ডটি গণনা করে, যা দামের স্ট্যান্ডার্ড ব্যবধানের দ্বিগুণ ব্যাপ্তিযুক্ত। একই সাথে 20 টি চক্রের ক্যালকন চ্যানেলের ব্যাপ্তিটি দামের ওভারল্যাপের 1.5 গুণ। যখন ব্রিনের ব্যান্ডটি ক্যালকন চ্যানেলের ক্যানেলের সাথে ঘিরে থাকে, তখন একটি এক্সট্রুশন সংকেত দেওয়া হয়।

মাঠের বাইরে, যখন গতিশীলতার সূচক রঙ ধূসর হয়ে যায়, পজিশনটি সমতল করে দেয়, যা এক্সট্রুশন স্ট্যাটাসের সমাপ্তি বোঝায়, প্রবণতাটি বিপরীত হতে পারে।

কৌশলগত সুবিধা

  1. ট্রেডিং সিদ্ধান্তের সঠিকতা বাড়াতে একাধিক প্রযুক্তিগত সূচক একীভূত করা

এই কৌশলটি বুলিন-ব্যান্ড, ক্যালকিন-চ্যানেল এবং গতিশীলতার সূচকগুলিকে একত্রিত করে, এবং এই সূচকগুলির মধ্যে সমন্বিত সম্পর্কগুলি বিচার করে, ট্রেডিং সিদ্ধান্তের নির্ভুলতা বাড়াতে এবং ভুল লেনদেনের সম্ভাবনা হ্রাস করতে পারে।

  1. ডাইভিং এক্সট্রুশন পয়েন্টগুলি সঠিক, সম্ভাব্য লাভের সুযোগ রয়েছে

গতিশীল এক্সট্রুশন কৌশলগুলি বাজারের বিস্ফোরণের মূল পয়েন্টগুলিকে ক্যাপচার করতে পারে, এই পয়েন্টগুলি প্রায়শই বাজারগুলি গুরুত্বপূর্ণ দিকনির্দেশের সিদ্ধান্ত নেওয়ার জন্য বাঁক পয়েন্ট হয়, যদি সঠিকভাবে বিচার করা হয় তবে পরবর্তী ট্রেন্ডটি দীর্ঘতর চলতে পারে, তাই কৌশলটির সম্ভাব্য লাভের জায়গা রয়েছে।

  1. সফলতার উচ্চ হারের সঙ্গে একটি বিরাট চুক্তি

এই কৌশলটি বুলিন বেল্ট এবং কালকিন চ্যানেলের মধ্যে একটি এক্সট্রুশন পয়েন্টে প্রবেশের জন্য নির্বাচিত হয়েছে, যা সূচকগুলির সমন্বয় দ্বারা বিচার করা হয়, যা র্যান্ডম ব্রেক-আউট ব্যবসায়ের তুলনায় ব্যবসায়ের সাফল্যের উচ্চতর হার।

কৌশলগত ঝুঁকি

  1. ব্রিন বন্ড এবং ক্যালকিন চ্যানেল প্যারামিটার সেটিং ঝুঁকি

ব্রিনব্যান্ড এবং ক্যালকিন চ্যানেলের সময়কালের প্যারামিটার এবং ব্যান্ডউইথ প্যারামিটার সেটিংগুলি কৌশলগত লেনদেনের ফলাফলের উপর ব্যাপক প্রভাব ফেলে। যদি প্যারামিটারগুলি ভুলভাবে সেট করা হয় তবে এটি ভুল সিদ্ধান্তের দিকে পরিচালিত করে। এটির জন্য প্রচুর পরিমাণে পুনরাবৃত্তির মাধ্যমে সর্বোত্তম প্যারামিটারগুলি খুঁজে বের করতে হবে।

  1. ব্যর্থতার ঝুঁকি

যে কোন বিপর্যয়মূলক লেনদেনের ব্যর্থতার ঝুঁকি রয়েছে, এবং যখন দামটি কৌশলটির নির্বাচিত পয়েন্টটি অতিক্রম করে, তখন আবারও পুনঃনির্ধারণ করা এবং ক্ষতির কারণ হতে পারে।

  1. ট্রেন্ড রিভার্সাল ঝুঁকি

যখন এক্সট্রুশন অবস্থা শেষ হয়, তখন এই কৌশলটি সমস্ত অবস্থানকে সমতল করে দেয়। তবে কখনও কখনও দামের প্রবণতা এখনও অব্যাহত থাকতে পারে, যা কৌশলটি তাড়াতাড়ি চলে যাওয়ার ঝুঁকি তৈরি করে। এটির জন্য আউটসোর্সিং রায়ের যুক্তিটি অপ্টিমাইজ করা দরকার।

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

  1. অপ্টিমাইজেশন প্যারামিটার সেটিং

আরও বেশি সংখ্যক রিটার্নিং ডেটা পরীক্ষা-ভ্রান্তির মাধ্যমে, কৌশলগত কার্যকারিতা বাড়ানোর জন্য ব্রিনব্যান্ড এবং ক্যালকিন চ্যানেলের জন্য আরও ভাল প্যারামিটার পিরিয়ড এবং ব্যান্ডউইথ সেটিং সন্ধান করা যেতে পারে।

  1. স্টপ লস বাড়ান

মুভিং স্টপ বা ওসিল্যান্ট স্টপ সেট করা যেতে পারে, যখন দাম বিপরীত হয় তখন দ্রুত স্টপ করা হয়, যাতে কৌশলটি সর্বাধিক প্রত্যাহার নিয়ন্ত্রণ করতে পারে।

  1. পুনরায় ভর্তির শর্ত বাড়ানো হয়েছে

যখন কৌশলটি পজিশন থেকে বেরিয়ে যায়, তখন পুনরায় প্রবেশের জন্য নির্দিষ্ট শর্তগুলি সেট করা যায় এবং যদি প্রবণতা অব্যাহত থাকে তবে আবার মাঠে প্রবেশ করা যায়।

  1. আরও সূচক যুক্ত করুন

সিদ্ধান্ত গ্রহণের সঠিকতা বাড়ানোর জন্য একটি সমন্বিত কৌশল তৈরি করার জন্য আরও বিভিন্ন ধরণের সূচক যেমন অন্যান্য অস্থিরতা সূচক, লেনদেনের পরিমাণ সূচক ইত্যাদির সাথে একত্রিত করার চেষ্টা করা যেতে পারে।

সারসংক্ষেপ

এই কৌশলটি ব্রিনব্যান্ড, ক্যালকিন চ্যানেল এবং গতিশীলতার সূচকগুলিকে সংহত করে এবং এই সূচকগুলির মধ্যে সম্পর্কগুলি বিচার করে উচ্চ সাফল্যের হারযুক্ত প্রবেশের স্থানটি বেছে নেয়। প্যারামিটার অপ্টিমাইজেশন, স্টপড্যাম্প কৌশল, পুনরায় প্রবেশের শর্তাদি এবং যৌগিক সূচকগুলির সংহতকরণের মতো একাধিক দিকের মধ্যে অপ্টিমাইজেশনের জায়গা রয়েছে, যা কৌশলটির কার্যকারিতা আরও বাড়িয়ে তুলতে পারে।

কৌশল সোর্স কোড
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//All credits to LazyBear. All I did was turn it into a strategy!

strategy(title = "SQZMOM STRAT", overlay=false)

// --- GENERAL INPUTS ---
FromMonth = input(defval = 4, title = "From Month", minval = 1, maxval = 12)
FromYear  = input(defval = 2020, title = "From Year", minval = 2012)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)
FromDay   = 1
ToDay     = 1
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

get_round(value, precision) => round(value * (pow(10, precision))) / pow(10, precision)
trade_leverage = input(1, title = "Trade - Leverage", step = 0.25)
trade_risk     = input(100, title = "Trade - Risk Percent", type = input.float, step = 0.1, minval = 0.1, maxval = 100)
tradeType   = input("LONG", title="What trades should be taken : ", options=["LONG", "SHORT", "BOTH"])

// --- SQZMOM CODE

length = input(21, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")

useTrueRange = input(true, title="Use TrueRange (KC)", type=input.bool)

// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC

sqzOn  = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz  = (sqzOn == false) and (sqzOff == false)

val = linreg(source  -  avg(avg(highest(high, lengthKC), lowest(low, lengthKC)),sma(close,lengthKC)), lengthKC,0)

bcolor = color.gray
if (val > 0 and val > nz(val[1]))
    bcolor := color.green
if (val < 0 and val < nz(val[1]))
    bcolor := color.red

scolor = noSqz ? color.blue : sqzOn ? color.black : color.gray 
plot(val, color=bcolor, style=plot.style_histogram, linewidth=4)
plot(0, color=scolor, style=plot.style_cross, linewidth=2)

// --- VWMA CODE ---
useVWMA        = input(false, title = "Use VWMA to selectively long/short?", type = input.bool)
lengthVWMA=input(42, title = "VWMA Length", step = 1, minval = 1)
useCV=input(false, type=input.bool, title="Use Cumulative Volume for VWMA?")
nbfs = useCV ? cum(volume) : sum(volume, lengthVWMA)
medianSrc=close

calc_evwma(price, lengthVWMA, nb_floating_shares) => data = (nz(close[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume*price/nb_floating_shares)

m=calc_evwma(medianSrc, lengthVWMA, nbfs)


// ---STRATEGY---
if ((tradeType == "LONG" or tradeType == "BOTH") and (m>0 or useVWMA == false))
    longCondition = (val > 0 and noSqz == 0 and sqzOn == 0 and sqzOn[1] == 1)
    if (longCondition)
        contracts = get_round((strategy.equity * trade_leverage / close) * (trade_risk / 100), 4)
        strategy.entry("LONG", strategy.long, qty = contracts, when = window())
        
if((tradeType == "SHORT" or tradeType == "BOTH") and (m<0 or useVWMA == false))
    shortCondition = (val < 0 and noSqz == 0 and sqzOn == 0 and sqzOn[1] == 1)
    if (shortCondition)
        contracts = get_round((strategy.equity * trade_leverage / close) * (trade_risk / 100), 4)
        strategy.entry("SHORT", strategy.short, qty = contracts, when = window())

if (bcolor == color.gray)
    strategy.close("LONG")
    strategy.close("SHORT")