নোরোর বোলিংজার ট্র্যাকিং কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৩-১১-২৮ ১৬ঃ৫৭ঃ২৮
ট্যাগঃ

img

সারসংক্ষেপ

এটি বোলিংজার ব্যান্ডের উপর ভিত্তি করে একটি গতি ট্র্যাকিং কৌশল। এটি বাজারের প্রবণতা এবং বিপরীত পয়েন্টগুলি বিচার করার জন্য বোলিংজার ব্যান্ডগুলিকে একত্রিত করে এবং বাজারের ওঠানামা ট্র্যাক করার জন্য দীর্ঘ এবং সংক্ষিপ্ত অবস্থানগুলি সেট করে।

নীতিমালা

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

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

সুবিধা বিশ্লেষণ

এই কৌশলটি বোলিংজার ব্যান্ডের ওভারকুপ / ওভারসোল্ড বৈশিষ্ট্যগুলি বিপরীত পয়েন্ট বিচারের সাথে একত্রিত করে। এটি বিভিন্ন ধরণের ট্রেডিং সুযোগগুলি ক্যাপচার করে ট্রেন্ডিং এবং রেঞ্জিং উভয় বাজারে প্রয়োগ করতে সক্ষম করে। স্টপ লস প্রস্থান সেটিংটি ক্ষতির প্রসারিত হতে বাধা দেয়। এছাড়াও, দীর্ঘ এবং সংক্ষিপ্ত উভয়ই বাণিজ্য করার ক্ষমতা কৌশলটির প্রয়োগযোগ্যতা বাড়ায়।

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

ঝুঁকি বিশ্লেষণ

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

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

অপ্টিমাইজেশান নির্দেশাবলী

এই কৌশলটি অপ্টিমাইজ করার প্রধান দিকগুলির মধ্যে রয়েছেঃ

  1. Bollinger Bands এর পরামিতিগুলি বিভিন্ন বাজার অনুযায়ী সামঞ্জস্য করা যেতে পারে যাতে সর্বোত্তম সমন্বয় পাওয়া যায়।
  2. বিচ্যুতির মাত্রা এবং গড় মানের গণনা অন্যান্য বিকল্পগুলির সাথে পরীক্ষা করা যেতে পারে।
  3. প্রবেশের সংকেতগুলি বিচার করতে এবং মিথ্যা ইতিবাচক হ্রাস করতে আরও ফিল্টার যুক্ত করুন।
  4. ট্রেইল স্টপ লস এর মত অন্যান্য স্টপ লস পদ্ধতি পরীক্ষা করুন।
  5. নির্দিষ্ট পণ্য এবং সময়সীমার জন্য পরামিতিগুলি অপ্টিমাইজ করা যেতে পারে।

সিদ্ধান্ত

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


/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.3", shorttitle = "Bollinger str 1.3", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")

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")
showbands = input(true, defval = true, title = "Show Bollinger Bands")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body
body = abs(close - open)
abody = ema(body, 30)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0 
up1 = bar == -1 and ohlc4 >= basis and ohlc4 < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and ohlc4 <= basis and ohlc4 > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2

//Trading
if up1 or up2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

আরো