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


সৃষ্টির তারিখ: 2024-02-27 14:13:39 অবশেষে সংশোধন করুন: 2024-02-27 14:13:39
অনুলিপি: 1 ক্লিকের সংখ্যা: 857
1
ফোকাস
1617
অনুসারী

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

ওভারভিউ

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

কৌশল নীতি

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

এই কৌশলটি বিভিন্ন সময়রেখায় (১ মিনিট, ৩ মিনিট, ৫ মিনিট এবং ১৫ মিনিট) বাজারের সাম্প্রতিক অগ্রগতি নির্ধারণের জন্য ব্রিন-ব্যান্ড সূচকের এই বৈশিষ্ট্যটি ব্যবহার করে। যখন 3 মিনিট বা 5 মিনিটের সময়রেখায় দামগুলি ব্রিন-ব্যান্ডকে ট্র্যাক বা ট্র্যাক থেকে বের করে দেয় এবং 1 মিনিট এবং 15 মিনিটের সময়রেখায়ও সংশ্লিষ্ট লক্ষণ দেখা দেয়, তখন কৌশলটি সিদ্ধান্ত নেয় যে বাজারটি সর্বশেষ ক্রয়-বিক্রয় সংকেত জারি করেছে। উপরন্তু, কৌশলটি বিটকয়েনের 5 মিনিটের সময়রেখাকেও উল্লেখ করে, পুরো ক্রিপ্টোকারেন্সি বাজারের সামগ্রিক গতি এবং বাজার মনোভাবের জন্য এবং একটি রেফারেন্স সংকেত হিসাবে ((অতিরিক্ত বায়ুমণ্ডল)) । এই কারণগুলিকে একত্রিত করে, কৌশলটি সিদ্ধান্ত নেয় যে কেনা বা বিক্রি করা উচিত।

পজিশন খোলার পরে, কৌশলটি স্টপ লস স্টপ শর্তও সেট করে। যদি পজিশনের দাম 25% বৃদ্ধি বা হ্রাস পায় তবে স্টপ স্টপ সেট করুন; যদি দাম বিপরীত দিক থেকে 25% বাড়ে বা হ্রাস পায় তবে স্টপ লস সেট করুন।

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

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

  2. এই কৌশলটি একই সাথে বুলিন-রেঞ্জের মাঝারি, উপরের এবং নীচের রেলের উপর দৃষ্টি নিবদ্ধ করে যাতে কেনা-বেচা করার সুযোগগুলি মিস না করা যায়।

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

  4. স্টপ লস কন্ডিশন সেট করা হয়েছে, যা ঝুঁকিকে কার্যকরভাবে নিয়ন্ত্রণ করতে পারে।

কৌশলগত ঝুঁকি

  1. বুলিনের ব্যাটিং ফর্মে কিছুটা পিছিয়ে পড়েছে এবং সম্ভবত সেরা সময়টি মিস করেছে।

  2. যদি পাসওয়ার্ডের মতো ব্ল্যাক সোয়ান ইভেন্টের মতো সিস্টেমিক ঝুঁকি ক্রিপ্টোকারেন্সি মার্কেটের সামগ্রিকভাবে ঘটে, তবে এই কৌশলটি কার্যকরভাবে মোকাবেলা করা কঠিন হবে।

  3. যদিও স্টপ লস সেট করা আছে, তবে স্টপ লসের মাত্রা অতিক্রম করার কারণে ঘটে যাওয়া অপ্রত্যাশিত ঘটনাগুলি আরও বেশি ক্ষতির কারণ হতে পারে।

  4. কৌশলগত পরামিতি যেমন সময়কাল, স্ট্যান্ডার্ড ডিফারেনশিয়াল গুণক ইত্যাদি ভুলভাবে সেট করা হয়েছে, যার ফলে ট্রেডিং সিগন্যালের গুণমান হ্রাস পেয়েছে।

এই সমস্যা সমাধানের উপায়ঃ

  1. আরও কিছু সূচকের সাহায্যে সেরা সময় নির্ধারণ করা হয়েছে।

  2. বাজার সংক্রান্ত সিস্টেমিক ঝুঁকির মূল্যায়ন বাড়ানো।

  3. প্রতিটি লেনদেনের পজিশনের আকার এবং স্টপ লসকে যথাযথভাবে সংক্ষিপ্ত করুন।

  4. অপ্টিমাইজেশান প্যারামিটার সেট করুন, রিটার্নিং যাচাই করুন।

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

  1. আরও সময়সীমা যুক্ত করুন, যেমন ৩০ মিনিট বা ৬০ মিনিটের ব্রিন বন্ড।

  2. বিভিন্ন মুদ্রার বৈশিষ্ট্য অনুসারে, আরও উপযুক্ত ব্রিনের প্যারামিটার নির্বাচন করুন, যা সূচকের কার্যকারিতা বাড়িয়ে তুলবে।

  3. ট্রেডিং ভলিউম বৃদ্ধি ইত্যাদির মতো সূচকগুলি বিচার করুন। যেহেতু লেনদেনের পরিমাণ দামের পরিবর্তনের নির্ভরযোগ্যতা যাচাই করতে পারে।

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

  5. বিভিন্ন মুদ্রার মধ্যে দামের গতি এবং সম্পর্কগুলি তুলনা করুন, এবং সবচেয়ে কার্যকর স্থানটি বেছে নিন।

  6. স্টপ-অফ স্টপ লস কৌশলকে অনুকূলিতকরণ, পরিসংখ্যানগত বিশ্লেষণের মাধ্যমে সর্বোত্তম প্যারামিটারগুলি নির্ধারণ করা।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*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)