মাল্টি-টাইমফ্রেম বোলিংজার ব্যান্ডস ক্রিপ্টো কৌশল

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

img

সারসংক্ষেপ

এই কৌশলটি ক্রিপ্টোকারেন্সির মূল্যের গতিবিধি বিশ্লেষণ করতে 1 মিনিট, 3 মিনিট, 5 মিনিট এবং 15 মিনিটের সময়সীমা জুড়ে বোলিংজার ব্যান্ড সূচক প্রয়োগ করে, যাতে কেনা বেচা সুযোগগুলি সনাক্ত করা যায়। এটি বিটকয়েনের 5 মিনিটের দামগুলি সামগ্রিক ক্রিপ্টোকারেন্সি বাজারের আবেগকে বেঞ্চমার্ক হিসাবে ব্যবহার করে। যখন বিটকয়েনের দাম উপরের ব্যান্ডের উপরে ভেঙে যায়, তখন বাজারকে উত্থান বলে মনে করা হয়। যখন দামটি নীচের ব্যান্ডের নীচে ভেঙে যায়, তখন বাজারকে মন্দা বলে মনে করা হয়। কৌশলটি বিভিন্ন ক্রিপ্টো এবং সময়সীমার মধ্যে উপরের বা নীচের ব্যান্ডের ব্রেকআউটের সন্ধান করে। এই ব্রেকআউট প্যাটার্নগুলি সাধারণত বাজার আবেগ এবং প্রবণতাগুলির পরিবর্তনকে বোঝায়, এইভাবে প্রবেশ এবং প্রস্থান সংকেত সরবরাহ করে।

কৌশলগত যুক্তি

কৌশলটি একযোগে 1 মিনিট, 3 মিনিট, 5 মিনিট এবং 15 মিনিটের সময়সীমার উপর বোলিংজার ব্যান্ড গণনা করে। বোলিংজার ব্যান্ডগুলি একটি এন-দিনের (ডিফল্ট 20 দিনের) চলমান গড় এবং এর উপরে এবং নীচে বেশ কয়েকটি স্ট্যান্ডার্ড ডিভিয়েশন (ডিফল্ট 1.5x) নিয়ে গঠিত। চলমান গড়টি একটি নির্দিষ্ট সময়ের মধ্যে ক্রিপ্টোর গড় মূল্যকে উপস্থাপন করে এবং স্ট্যান্ডার্ড ডিভিয়েশনটি অস্থিরতা পরিমাপ করে। যখন দামগুলি উপরের ব্যান্ডের উপরে পৌঁছায় বা ভেঙে যায়, তখন এটি বাজারকে ওভারস্ট্রেটেড এবং অস্থিরতা প্রসারিত হচ্ছে, যা সম্ভাব্য বিপরীতমুখী হওয়ার সংকেত দেয়। যখন দামগুলি নীচের ব্যান্ডের নীচে পৌঁছায় বা ভেঙে যায়, তখন এটি বাজারকে ওভারসোল্ডিংয়ের সাথে প্রসারিত করে এবং সম্ভাব্য আপসোর্স রিভার্সালের সংকেত দেয়।

বোলিংজার ব্যান্ডের এই বৈশিষ্ট্যটি কাজে লাগিয়ে, কৌশলটি বিভিন্ন সময় দিগন্ত - ১ মিনিট, ৩ মিনিট, ৫ মিনিট এবং ১৫ মিনিটের সর্বশেষ বাজার উন্নয়নগুলি বিচার করে। যখন ৩ মিনিট বা ৫ মিনিটের সময় ফ্রেমে উপরের বা নীচের ব্যান্ডের ব্রেকআউট হয়, প্লাস ১ মিনিট এবং ১৫ মিনিটের সময় ফ্রেমে সংকেতগুলি নিশ্চিত করে, কৌশলটি একটি সর্বশেষ ক্রয় বা বিক্রয় সংকেত ট্রিগার করে। তদতিরিক্ত, কৌশলটি সমগ্র ক্রিপ্টো বাজারে সামগ্রিক বাজার প্রবণতা এবং আবেগ (বুলিশ / হ্রাস প্রবণতা) পরিমাপ করতে বিটকয়েনের ৫ মিনিটের দামকেও বোঝায়। এই কারণগুলির উপর ভিত্তি করে কৌশলটি সিদ্ধান্ত নেয় যে দীর্ঘ বা সংক্ষিপ্ত যেতে হবে কিনা।

ট্রেড প্রবেশ করার পরে, কৌশলটি লাভ গ্রহণ এবং স্টপ লস শর্তগুলিও সেট করে। যদি প্রবেশ মূল্য 25% বৃদ্ধি পায় বা কমে যায় তবে লাভ গ্রহণ করা হবে। যদি দাম প্রবেশের দিকের বিরুদ্ধে 25% এর বেশি চলে যায় তবে স্টপ লস ট্রিগার হবে।

সুবিধা

  1. এই কৌশলটি স্বল্প ও মাঝারি মেয়াদী উভয় বাজারের দৃষ্টিভঙ্গি অন্তর্ভুক্ত করে - সর্বশেষ আপডেটের জন্য 1 মিনিট এবং 5 মিনিট, মাঝারি মেয়াদী প্রবণতার জন্য 15 মিনিট, সাময়িক বাজারের ওঠানামা দ্বারা বিভ্রান্ত হওয়া এড়ানো।

  2. এই কৌশলটি মধ্যম, উপরের এবং নীচের অংশে ব্রেকআউটগুলি পর্যবেক্ষণ করে, মিস করা সুযোগগুলিকে হ্রাস করে।

  3. বিটকয়েন সামগ্রিক বাজার পরিস্থিতি এবং অনুভূতির জন্য একটি বেঞ্চমার্ক এবং ব্যারোমিটার হিসাবে কাজ করে, সিদ্ধান্তের নির্ভুলতা বাড়ায়।

  4. মুনাফা গ্রহণ এবং স্টপ লস প্রক্রিয়া কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে।

ঝুঁকি

  1. বোলিংজার ব্যান্ডের ব্রেকআউটের কিছু পিছনের বৈশিষ্ট্য রয়েছে এবং সেরা প্রবেশের সময়টি মিস করতে পারে।

  2. এই কৌশলটি বাজারের সর্বব্যাপী সিস্টেমিক ঝুঁকি যেমন পাসওয়ার্ড ব্ল্যাক সোয়ান ইভেন্টের জন্য সংবেদনশীল।

  3. লাভ গ্রহণ এবং স্টপ লস সত্ত্বেও, অপ্রত্যাশিত পরিস্থিতিতে ক্ষতি স্টপ লসের মার্জিন অতিক্রম করতে পারে।

  4. সময়সীমা, স্ট্যান্ডার্ড ডিভিয়েশন মাল্টিপ্লাইয়ারের মতো অনুপযুক্ত প্যারামিটার সেটিংস খারাপ সংকেতের মানের দিকে পরিচালিত করতে পারে।

সংশ্লিষ্ট সমাধানঃ

  1. সর্বোত্তম প্রবেশের সময় নির্ধারণের জন্য আরও সূচক অন্তর্ভুক্ত করুন।

  2. বাজার পর্যায়ে সিস্টেমিক ঝুঁকিগুলির মূল্যায়ন উন্নত করা।

  3. প্রতিটি ট্রেডের জন্য পজিশনের আকার এবং স্টপ লস মার্জিন কমানো।

  4. ব্যাকটেস্টিং এর মাধ্যমে প্যারামিটার সেটিং অপ্টিমাইজ করুন।

উন্নতির সুযোগ

  1. ৩০ মিনিট বা ৬০ মিনিটের বোলিংজার ব্যান্ডের মত আরো সময়সীমা যোগ করুন।

  2. প্রতিটি ক্রিপ্টোর বৈশিষ্ট্যগুলির সাথে আরও উপযুক্ত বোলিংজার ব্যান্ডের পরামিতি নির্বাচন করুন।

  3. ফলাফল যাচাইয়ের জন্য ট্রেডিং ভলিউম অন্তর্ভুক্ত করুন, কারণ ট্রেডিং ভলিউম মূল্য আন্দোলনের নির্ভরযোগ্যতা যাচাই করে।

  4. স্টক আরএসআই, এমএসিডি এর মতো অন্যান্য সূচককে একত্রিত করুন সিদ্ধান্তের নির্ভুলতা উন্নত করতে। এই সূচকগুলি প্রকৃত বাজার চলাচলের বিচারকে উল্লেখযোগ্যভাবে উন্নত করতে পারে।

  5. ক্রিপ্টোর মধ্যে মূল্যের গতিবিধি এবং সম্পর্ক তুলনা করুন এবং সর্বাধিক গতিবিধি সহগুলি চয়ন করুন।

  6. অপ্টিমাইজ করুন লাভ গ্রহণ এবং স্টপ লস প্রক্রিয়া ঐতিহাসিক কর্মক্ষমতা পরিসংখ্যানগত বিশ্লেষণ দ্বারা সর্বোত্তম সেটিংস নির্ধারণ করতে।

সিদ্ধান্ত

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


/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(shorttitle="Crypto BB", title="Multi-Interval Bollinger Band Crypto Strategy", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1.5, minval=0.001, maxval=50, title="StdDev")

interval1m = request.security(syminfo.tickerid, '1', src)
interval3m = request.security(syminfo.tickerid, '3', src)
interval5m = request.security(syminfo.tickerid, '5', src)
interval15m = request.security(syminfo.tickerid, '5', src)
btcinterval5m = request.security("BTC_USDT:swap", "5", src)
bitcoinSignal = 'flat'

var entryPrice = 0.000

ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

bitcoinBasis = ma(btcinterval5m, length, maType)
bitcoinDev = ta.stdev(btcinterval5m, length)
bitcoinUpper = bitcoinBasis + bitcoinDev
bitcoinLower = bitcoinBasis - bitcoinDev

basis1m = ma(interval1m, length, maType)
basis3m = ma(interval3m, length, maType)
basis5m = ma(interval5m, length, maType)
basis15m = ma(interval5m, length, maType)
dev1m = mult * ta.stdev(interval1m, length)
dev3m = mult * ta.stdev(interval3m, length)
dev5m = mult * ta.stdev(interval5m, length)
upper1m = basis1m + dev1m
lower1m = basis1m - dev1m
upper3m = basis3m + dev3m
lower3m = basis3m - dev3m
upper5m = basis5m + dev5m
lower5m = basis5m - dev5m
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis3m, "Basis 3 minute", color=#2962FF, offset = offset)
p3upper = plot(upper3m, "Upper", color=#2962FF, offset = offset)
p3lower = plot(lower3m, "Lower", color=#2962FF, offset = offset)

//Exit protocols
if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Buy'
    entryPrice := strategy.opentrades.entry_price(0)
    if ((interval1m - entryPrice)/entryPrice) * 30 > .25
        strategy.close('Buy', comment='Take Profit on Buy')
    if ((interval1m - entryPrice)/entryPrice) * 30 < -.25
        strategy.close('Buy', comment='Stop Loss on Buy')

if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Sell'
    entryPrice := strategy.opentrades.entry_price(0)
    if ((entryPrice - interval1m)/entryPrice) * 30 > .25
        strategy.close('Sell', comment='Take Profit on Sell')
    if ((entryPrice - interval1m)/entryPrice) * 30 < -.25
        strategy.close('Sell', comment='Stop Loss on Sell')

//Bitcoin Analysis
if (btcinterval5m < bitcoinUpper and btcinterval5m[1] > bitcoinUpper[1] and btcinterval5m[2] < bitcoinUpper[2] and btcinterval5m[3] < bitcoinUpper[3])
    bitcoinSignal := 'Bear'
if (btcinterval5m > bitcoinUpper and btcinterval5m[1] < bitcoinUpper[1] and btcinterval5m[2] > bitcoinUpper[2] and btcinterval5m[3] > bitcoinUpper[3])
    bitcoinSignal := 'Bull'

//Short protocols
if (interval3m < basis3m and interval3m[1] > basis3m[1] and interval3m[2] < basis3m[2] and interval3m[3] < basis3m[3]) or 
 (interval5m < basis5m and interval5m[1] > basis5m[1] and interval5m[2] < basis5m[2] and interval5m[3] < basis5m[3]) 
  and strategy.opentrades.entry_id(0) != 'Sell'
   and src < basis1m and src < basis15m
    if strategy.opentrades.entry_id(0) == 'Buy'
        strategy.close('Buy', 'Basis Band Bearish Reversal')
    //strategy.order('Sell', strategy.short, comment = 'Basis band fractal rejection', stop = (upper1m + basis1m)/2)

if (interval3m < upper3m and interval3m[1] > upper3m[1] and interval3m[2] < upper3m[2] and interval3m[3] < upper3m[3]) or 
 (interval5m < upper5m and interval5m[1] > upper5m[1] and interval5m[2] < upper5m[2] and interval5m[3] < upper5m[3]) 
  and strategy.opentrades.entry_id(0) != 'Sell' and bitcoinSignal == 'Bear' and src < upper1m  and src < basis15m
    if strategy.opentrades.entry_id(0) == 'Buy'
        strategy.close('Buy', 'Bearish Trend Reversal')
    strategy.order('Sell', strategy.short, comment = 'Upper band fractal rejection', stop = (upper1m + basis1m)/2)

if (interval3m > basis3m and interval3m[1] < basis3m[1] and interval3m[2] > basis3m[2] and interval3m[3] > basis3m[3]) or 
 (interval5m > basis5m and interval5m[1] < basis5m[1] and interval5m[2] > basis5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy' 
  and src > basis1m  and src > basis15m
    if strategy.opentrades.entry_id(0) == 'Sell'
        strategy.close('Sell', 'Basis Band Bullish Reversal')
    //strategy.order('Buy', strategy.long, comment = 'Basis band fractal rejection', stop = (lower1m + basis1m)/2)

if (interval3m > lower3m and interval3m[1] < lower3m[1] and interval3m[2] > lower3m[2] and interval3m[3] > lower3m[3]) or 
 (interval5m > lower5m and interval5m[1] < lower5m[1] and interval5m[2] > lower5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy' 
  and src > lower1m  and src > basis15m and bitcoinSignal == 'Bull' 
    if strategy.opentrades.entry_id(0) == 'Sell'
        strategy.close('Sell', 'Bullish Trend Reversal')
    strategy.order('Buy', strategy.long, comment = 'Lower band fractal rejection', stop = (lower1m + basis1m)/2)

আরো