বলিঙ্গার ব্যান্ড স্বল্পমেয়াদী রিভার্সাল কোয়ান্টিটেটিভ স্ট্র্যাটেজি মুভিং এভারেজের উপর ভিত্তি করে


সৃষ্টির তারিখ: 2023-12-19 16:17:47 অবশেষে সংশোধন করুন: 2023-12-19 16:17:47
অনুলিপি: 0 ক্লিকের সংখ্যা: 665
1
ফোকাস
1621
অনুসারী

বলিঙ্গার ব্যান্ড স্বল্পমেয়াদী রিভার্সাল কোয়ান্টিটেটিভ স্ট্র্যাটেজি মুভিং এভারেজের উপর ভিত্তি করে

ওভারভিউ

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

কৌশল নীতি

  1. গড়রেখা এবং মানক পার্থক্য গণনা করুন। sma () ফাংশন ব্যবহার করে sma গড়রেখা গণনা করুন, stdev () ফাংশন ব্যবহার করে মানক পার্থক্য গণনা করুন।

  2. গড় এবং মানদণ্ডের পার্থক্যের উপর ভিত্তি করে বুলিন বন্ডের আপ-ডাউন ট্র্যাকিং। উপরের ট্র্যাকিং লাইনটি হল মূল্য + মানদণ্ডের পার্থক্য*১, নিম্নরেখা হল মূল্য-মানক বৈষম্য*1。

  3. যখন দাম উর্ধ্বমুখী বা নিম্নমুখী হয়, তখন আমরা সিদ্ধান্ত নিই যে আমরা বিপরীত দিকে ট্রেড করব।

  4. বিশেষ করে, যদি দাম নিম্নরেখার নিচে থাকে, আমরা মাল্টিহেড ট্রেড করি; যদি দাম উচ্চরেখার উপরে থাকে, আমরা শূন্যহেড ট্রেড করি।

সামর্থ্য বিশ্লেষণ

  1. বিউরিন ব্যান্ডেজ চ্যানেল ব্যবহার করে মূল্যের অস্বাভাবিকতা নির্ণয় করা হয়, যা বিপরীত ট্রেডিংয়ের জন্য ভিত্তি প্রদান করে।

  2. সমান্তরাল ফ্যাক্টর সহ, আংশিক শব্দ লেনদেন কার্যকরভাবে ফিল্টার করা যেতে পারে।

  3. স্ট্যান্ডার্ড ডিফারেনশিয়াল ফ্যাক্টর (এসডিএফ) প্রবর্তন করা হয়েছে, যা বুলিনকে আরও গতিশীল করে তোলে এবং মূল্যের অস্বাভাবিকতার বিষয়ে আরও ভাল বিচার করতে সহায়তা করে।

  4. এই কৌশলটি একটি ছোট এবং স্থিতিশীল প্রত্যাহার।

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

  1. ব্রিন ব্যান্ডের সূচকগুলি মূল্যের অস্বাভাবিকতার বিষয়ে সম্পূর্ণরূপে বিচার করতে পারে না, যেখানে দামের মিথ্যা ব্রেক হতে পারে।

  2. ট্রেডিং ফ্রিকোয়েন্সি খুব বেশি হতে পারে, তাই ট্রেডিং ফ্রিকোয়েন্সি নিয়ন্ত্রণের জন্য প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করার পরামর্শ দেওয়া হচ্ছে।

  3. বুলিন ব্যান্ডেজ ভেঙে নেমে আসা সংকেতটি সম্ভবত দীর্ঘ সময় নেয় এবং আরও ভাল বিপরীত প্রভাবের জন্য প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করতে হবে।

  4. ঝুঁকি নিয়ন্ত্রণের জন্য যথাযথভাবে স্টপ লস প্রবর্তন করা।

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

  1. গড়রেখার সময়কাল এবং স্ট্যান্ডার্ড ডিভেরিয়েন্টের প্যারামিটারগুলিকে অপ্টিমাইজ করা হয়েছে, যাতে আরও যুক্তিসঙ্গত বুলিন বেন্ডের পথ তৈরি করা যায়।
  2. ইএমএ এবং এমএসিডি এর মতো সহায়ক উপাদান যুক্ত করুন, আংশিক সংকেত ফিল্টার করুন।
  3. স্টপ লস এবং পজিশন কন্ট্রোল ব্যবস্থা চালু করা।
  4. পজিশনের আকার এবং পজিশনের নিয়ন্ত্রণের ব্যবস্থা অপ্টিমাইজ করা।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("BCE Version of EMA, SMA Mean Reversion", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
 
// Inputs
st_yr_inp = input(defval=2017, title='Backtest Start Year')
st_mn_inp = input(defval=01, title='Backtest Start Month')
st_dy_inp = input(defval=01, title='Backtest Start Day')
en_yr_inp = input(defval=2025, title='Backtest End Year')
en_mn_inp = input(defval=01, title='Backtest End Month')
en_dy_inp = input(defval=01, title='Backtest End Day')
sma_lookback = input(defval=100, title="Lookback Period For SMA")
ema_lookback = input(defval=10, title="Lookback Period For EMA")
long_diff_perc = input(defval=6, title="Percentage Deviation From SMA to go Long")/100
short_diff_perc = input(defval=20, title="Percentage Deviation From SMA to go Short")/100
ema_filter_bars = input(defval=4, title="The number of bars the EMA must rise/fall")
lng_allwd = input(defval=true, title="Allow Longs?")
srt_allwd = input(defval=true, title="Allow Shorts?")
use_stop = input(defval=true, title="Use Stoploss?")
stop_perc = input(defval=30, title="Stop Loss Percentage")/100
 
// Dates
start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp,00,00)
end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp,00,00)
can_trade = time >= start and time <= end
// Indicators Setup
sma = sma(close, sma_lookback)
ema = ema(close, ema_lookback)
 
// Strategy Calcuations
close_stdev = stdev(close, sma_lookback)
sd1_upper = close + (close_stdev * 1)
sd1_lower = close - (close_stdev * 1)
close_diff = (close - sma) / sma
 
// Entries and Exits
longCondition = close > sma and open > sma
if (time >= start and time <= end)
    if (longCondition)
        strategy.entry("Long", strategy.long)
    if use_stop
        stop_price = close * (1 - stop_perc)
        strategy.order("Long Stoploss", false, stop=stop_price)
 
shortCondition = close < sma and open < sma
if (shortCondition)
//    strategy.entry("Short", strategy.short)
//    if use_stop
//        stop_price = close * (1 + stop_perc)
//        strategy.order("Short Stoploss", true, stop=stop_price)
//if (time >= start)    
    strategy.close("Long", when=close < sma and open < sma)
//strategy.cancel("Long Stoploss", when=sma < sma[1])
//    strategy.close("Short", when=close > sma and open > sma)
//strategy.cancel("Short Stoploss", when=close_diff<=0)
 
// Plotting
sma_col = sma > sma[1] ? green : red
ema_fill = close_diff <= -long_diff_perc ? lime : close_diff >= short_diff_perc ? maroon : aqua
p_sma = plot(sma, color=sma_col, linewidth=3)
p_ema = plot(ema, color=black, linewidth=2)
p_sd1 = plot(sd1_upper, color=black, linewidth=1, transp=85)
p_sd2 = plot(sd1_lower, color=black, linewidth=1, transp=85)
fill(p_sd1, p_sd2, title='STDEV Fill', color=silver, transp=80)
fill(p_sma, p_ema, title='EMA > Mean Percentage', color=ema_fill, transp=80)