
এই কৌশলটি বাজার সংকোচন এবং মুক্তির জন্য একাধিক সূচক যেমন ব্রিনের বেন্ড, কেসি চ্যানেল এবং স্ট্রিংয়ের রঙের উপর ভিত্তি করে এবং প্রতিষ্ঠানের প্রবণতা নির্ধারণের জন্য সমান্তরাল দিকের সাথে মিলিত হয়, যখন প্রবণতার দিকটি পরিবর্তিত হয় তখন কাজ করা হয়।
বুলিন-ব্যান্ডের জন্য একটি সরল চলমান গড় গণনা করুন। বুলিন-ব্যান্ডের মধ্যবর্তী ট্র্যাকটি N দিনের সমাপ্তি মূল্য, উপরের ট্র্যাকটি N দিনের প্রকৃত তরঙ্গের M গুণ মধ্যবর্তী ট্র্যাক + কেসি চ্যানেল, এবং নীচের ট্র্যাকটি N দিনের প্রকৃত তরঙ্গের M গুণ মধ্যবর্তী ট্র্যাক-কেসি চ্যানেল।
KC চ্যানেলের জন্য গণনা করুন। KC চ্যানেলের মধ্যম ট্র্যাকটি N দিনের ক্লোজ-আপ মূল্যের একটি সরল চলমান গড়, উপরের ট্র্যাকটি মধ্যম ট্র্যাক + N দিনের প্রকৃত তরঙ্গের M গুণ, এবং নিম্ন ট্র্যাকটি মধ্যম ট্র্যাক-N দিনের প্রকৃত তরঙ্গের M গুণ।
সংক্ষেপণ এবং মুক্তি নির্ধারণ করুন। যখন বুলিনের উপরের রেলটি কেসির উপরের রেলের চেয়ে কম এবং বুলিনের নীচের রেলটি কেসির নীচের রেলের চেয়ে বেশি হয় তখন সংক্ষেপণ করা হয়। যখন বুলিনের উপরের রেলটি কেসির উপরের রেলের চেয়ে বেশি এবং বুলিনের নীচের রেলটি কেসির নীচের রেলের চেয়ে কম হয় তখন মুক্তি দেওয়া হয়।
প্রতিষ্ঠানের প্রবণতা গণনা করুন। N-দিনের সমাপ্তি মূল্য - N-দিনের সর্বোচ্চ এবং সর্বনিম্ন মূল্যের গড় মূল্যের ইনপুট হিসাবে, N-দিনের লিনিয়ার রিগ্রেশন গণনা করুন, যার মান 0 এর চেয়ে বড় প্রতিষ্ঠানের উত্থান প্রবণতা এবং 0 এর চেয়ে ছোট প্রতিষ্ঠানের পতন প্রবণতা।
ট্রেডিং সিগন্যালঃ প্রতিষ্ঠানের উত্থানের সময়, সংক্ষিপ্ত সূর্যের লাইন এবং মুক্তি একটি মাল্টি-সিগন্যাল; প্রতিষ্ঠানের পতনের সময়, সংক্ষিপ্ত সূর্যের লাইন এবং সংকোচন একটি ফাঁকা সংকেত।
একাধিক সূচক বিচার, সংকেত নির্ভুলতা বৃদ্ধি │ বুলিন ব্যান্ড, কেসি চ্যানেল এবং স্ট্রিংয়ের সাথে একত্রিত হয়ে বাজারের গতিবিধি বিচার করুন, মিথ্যা সংকেত এড়িয়ে চলুন │
প্রতিষ্ঠানের প্রবণতা মূল্যায়ন, প্রবণতা অনুযায়ী লেনদেন করুন। প্রতিষ্ঠানের মূল্যায়ন প্রধান প্রবণতা ব্যবহার করুন, বিপরীতমুখী অপারেশন এড়িয়ে চলুন।
স্বয়ংক্রিয় স্টপ, ঝুঁকি নিয়ন্ত্রণ। যখন দাম স্টপ লাইন স্পর্শ করে তখন স্বয়ংক্রিয়ভাবে পজিশন বন্ধ করে দেয়।
ব্রিনব্যান্ড এবং কেসি চ্যানেলের প্যারামিটারগুলি ভুলভাবে সেট করা হয়েছে, যা সংক্ষেপণ এবং মুক্তির বিচারের ত্রুটি হতে পারে।
এই প্রবণতা সম্পর্কে অবগত না হওয়া পর্যন্ত, প্রতিষ্ঠানের প্রবণতা নির্ধারণে পিছিয়ে থাকা এবং প্রবণতা পাল্টাতে পারে এমন একটি পয়েন্ট মিস করা।
হঠাৎ ঘটনার ফলে বিপুল পরিমাণ ক্ষতির সম্ভাবনা রয়েছে।
অপ্টিমাইজেশান পদ্ধতিঃ ব্রিনব্যান্ড এবং কেসি চ্যানেলের প্যারামিটারগুলি সামঞ্জস্য করুন, এডিএক্স এবং অন্যান্য সূচক সহ বিচার করুন; সময়মতো প্রতিষ্ঠানের গড় লাইন চক্র আপডেট করুন, পিছিয়ে পড়া হ্রাস করুন; স্টপ লস লাইন সেট করার সময় একটি বাফার জোন যুক্ত করুন।
আরও প্রযুক্তিগত সূচকগুলির সাথে মিলিত হয়ে, গুদাম সিগন্যালের নির্ভুলতা উন্নত করা হয়েছে। যেমন কেডিজে, এমএসিডি ইত্যাদি।
নতুন প্রবণতা ধরার জন্য প্রতিষ্ঠানের গড়ের সময়কালের প্যারামিটারগুলিকে অপ্টিমাইজ করা হয়েছে।
ট্রেডিং ভলিউম ইন্ডিকেটর যোগ করুন যাতে ভুয়া ব্রেকডাউন এড়ানো যায়। যেমন শক্তি জোয়ার ইন্ডিকেটর, Accumulation/Distribution ইত্যাদি।
দীর্ঘ ও সংক্ষিপ্ত লাইন সংকেতের মধ্যে পার্থক্য করুন।
এআই অপ্টিমাইজেশান প্যারামিটার, সার্চড এন্ট্রি এবং সার্চড সর্বোত্তম প্যারামিটার সমন্বয়। কম ওভারফিট।
এই কৌশলটির মূল ধারণাগুলি হ’লঃ ব্রিনব্যান্ড ব্যবহার করে বাজারের সংকোচন এবং মুক্তি নির্ধারণ করা; প্রতিষ্ঠানের প্রবণতা ব্যবহার করে মূল প্রবণতার দিক নির্ধারণে সহায়তা করা; সংকোচনের মুক্তির মোড়ক পয়েন্টে বিরোধী প্রতিষ্ঠানের দিকে পরিচালনা করা। কৌশলটির সুবিধা হ’ল সংকেত সঠিক, স্টপ লস, মিথ্যা সংকেত এড়ানো। কৌশলটি অনুকূলিতকরণের দিক রয়েছেঃ একাধিক সূচক সমন্বয়, প্রবণতা বিচার প্যারামিটার অপ্টিমাইজেশন, যোগ পরিমাণ শক্তি সূচক, বহু সময়কাল বিচার, এআই সুবিধার সন্ধান ইত্যাদি। সামগ্রিকভাবে, এই কৌশলটি বাজারের স্ব-সমতুল্যতা এবং পর্যায়ক্রমিক অপারেশন আইনগুলির উপর ভিত্তি করে, সূচকগুলির মাধ্যমে বাজারের গতির পরিবর্তন চিত্রিত করে, যখন বাজার শক্তি সঞ্চয় থেকে শক্তি মুক্তির মূল পয়েন্টে স্থানান্তরিত হয়, তখন ট্রেডিংয়ের একটি সাধারণ কৌশল।
/*backtest
start: 2024-01-17 00:00:00
end: 2024-01-24 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2017
//@version=2
strategy(shorttitle = "Squeeze str 1.1", title="Noro's Squeeze Momentum Strategy v1.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
lev = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
length = input(20, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
useTrueRange = true
mode2 = input(true, defval = true, title = "Mode 2")
usecolor = input(true, defval = true, title = "Use color of candle")
usebody = input(true, defval = true, title = "Use EMA Body")
needbg = input(false, defval = false, title = "Show trend background")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
// 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 = iff( val > 0, iff( val > nz(val[1]), lime, green), iff( val < nz(val[1]), red, maroon))
scolor = noSqz ? blue : sqzOn ? black : gray
trend = val > 0 ? 1 : val < 0 ? -1 : 0
//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)
//Body
body = abs(close - open)
abody = sma(body, 10) / 3
//Indicator
bcol = iff( val > 0, iff( val > nz(val[1]), lime, green), iff( val < nz(val[1]), red, maroon))
scol = noSqz ? blue : sqzOn ? black : gray
plot(val, color=bcol, style=histogram, linewidth=4)
plot(0, color=scol, style=cross, linewidth=2)
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up1 = trend == 1 and (bar == -1 or usecolor == false) and (body > abody or usebody == false) and mode2 == false
dn1 = trend == -1 and (bar == 1 or usecolor == false) and (body > abody or usebody == false) and mode2 == false
up2 = trend == 1 and val < val[1] and mode2
dn2 = trend == -1 and val > val[1] and mode2
exit = (strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price) and mode2
//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * lev : lot[1]
if up1 or up2
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if dn1 or dn2
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if exit
strategy.close_all()