বিটকয়েন ভোলাটিলিটি ব্যান্ড রিভার্সন কৌশল

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

সারসংক্ষেপ

এই কৌশলটি উচ্চ অস্থিরতার সাথে সিকিউরিটিজগুলির জন্য ডিজাইন করা একটি পুলব্যাক সিস্টেম, তাই স্বাভাবিকভাবেই বিটকয়েন এটির ব্যবসায়ের জন্য একটি দুর্দান্ত পছন্দ। এটি একটি দৈনিক চার্টে বা কম সময়সীমার উপর উভয়ই ব্যবহার করা যেতে পারে (আমি 3 ঘন্টা সময়সীমার উপর ভাল ফলাফল পেয়েছি তবে 1 ঘন্টার নিচে কোনও কিছুর উপর এটি পরীক্ষা করি নি) ।

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

কৌশলটি পূর্ববর্তী 2টি মোমবাতিগুলির বন্ধের দামের পরিবর্তনের তুলনা করে অস্থিরতা গণনা করে এবং চলমান গড় তৈরি করতে এই দামের পরিবর্তনটি ব্যবহার করে। অভ্যন্তরীণ ব্যান্ডের জন্য 1 এবং বাইরের ব্যান্ডের জন্য 2 এর মান বিচ্যুতি সহ চলমান গড়ের চারপাশে একটি ব্যান্ড মোড়ানো হয়। যদি দাম একটি পূর্বনির্ধারিত এমএ (চলমান গড়) ফিল্টারের উপরে থাকে তবে এটি নির্ধারিত হয় যে আমরা একটি আপট্রেন্ডে আছি তাই কৌশলটি একটি সংকেত জারি করবে যখন আমরা একটি আপট্রেন্ডে থাকি এবং একটি pullback থাকে যা নিম্ন অভ্যন্তরীণ বিচ্যুতি ব্যান্ডকে স্পাইক করে তোলে, তবে যদি দাম অব্যাহত থাকে এবং বাইরের বিচ্যুতি ব্যান্ডের মধ্য দিয়ে পড়ে তবে একটি ক্রয় সংকেত প্রকাশিত হবে না কারণ এই সমস্যাটি অস্থিরতা স্পাইকটি খুব বড়। আপনি একটি স্পাইক দেখতে পারেন ক্রয় ইভেন্টটি যেখানে সবুজ রঙের হয় সেই সূচকটিতে ঘটে। তারপরে একটি শর্ট / বিক্রয় জন্য আমরা অভ্যন্তরীণ ব্যাকগ্রাউন্ডের

ব্যবহারকারী তারা পরীক্ষা করতে চান তারিখ পরিসীমা, অস্থিরতা ট্র্যাকিং এবং অভ্যন্তরীণ এবং বাইরের ব্যান্ড বিচ্যুতি জন্য চলমান গড় সময়কাল পরিবর্তন করতে পারেন। বিটিসিতে আমি অভ্যন্তরীণ বিচ্যুতি এবং বাইরের বিচ্যুতি ব্যান্ডগুলি স্ট্যান্ডার্ড সেটিংসে রেখেছি তবে 3 সময়ের অস্থিরতা ট্র্যাকিং 1 দিনের চার্ট ট্রেডিংয়ের জন্য ভাল এবং 5 সময়ের অস্থিরতা ট্র্যাকিং 3 ঘন্টা চার্টের জন্য ভাল বলে পেয়েছি। যেহেতু এটি একটি কিনুন এবং ধরে রাখার কৌশল নয়, তাই ট্রেডিংয়ের জন্য আপনি সম্ভবত সর্বাধিক তরল মুদ্রাগুলির সাথে আটকে থাকতে চান যাতে আপনি যে কোনও এক্সচেঞ্জে খুব দ্রুত প্রবেশ করতে এবং বেরিয়ে আসতে পারেন। আপনি যদি কম অস্থির বাজারে এটি ট্রে করতে চান তবে অভ্যন্তরীণ বিচ্যুতি ব্যান্ডটি ~ 0.75 এ পরিবর্তন করা বিভিন্ন সম্ভাব্য স্টক বাজারেও ঠিক কাজ করবে। লাভ এবং স্টপ লস স্তরগুলি গত 7 মোমবাতি ফিরে তাকিয়ে একাধিক ট্রেডিং পরিসরের উপর ভিত্তি করে।

কৌশলটির সুবিধা

  • বাজারের টার্নিং পয়েন্টগুলি ক্যাপচার করার জন্য অস্থিরতা ট্রেডিং ব্যবহার করে
  • লম্বা এবং ছোট উভয় ট্রেডিং, উপার্জন এবং ডাউন বাজারে মুনাফা
  • সহজ স্ট্যান্ডার্ড প্যারামিটার সেটিংস ব্যবহার করা সহজ
  • প্যারামিটারগুলি সহজেই বিভিন্ন অন্তর্নিহিত জন্য অপ্টিমাইজ করা যেতে পারে
  • যুক্তিসঙ্গত স্টপ লস এবং লাভ গ্রহণের সেটিংস লাভকে লক করতে সহায়তা করে

কৌশলটির ঝুঁকি

  • উচ্চ অস্থিরতার অন্তর্নিহিত ঝুঁকিগুলি বৃহত্তর ক্ষতির ঝুঁকি
  • ঘন ঘন লং/শর্ট স্যুইচিংয়ের ফলে ট্রেডিংয়ের খরচ বেশি হয়
  • স্বল্পমেয়াদী লেনদেনের জন্য ঘনিষ্ঠ বাজার পর্যবেক্ষণ প্রয়োজন
  • বাজারের তরলতা কম হলে ক্ষতি বন্ধ করা কঠিন
  • প্যারামিটারগুলিকে খারাপভাবে সামঞ্জস্য করা অত্যধিক ট্রেডিংয়ের কারণ হতে পারে

ঝুঁকি কমানোর পদ্ধতিঃ

  1. উপযুক্ত উদ্বায়ী অন্তর্নিহিত নির্বাচন করুন, নিয়ন্ত্রণ অবস্থান আকার।

  2. অপ্রয়োজনীয় ট্রেড হ্রাস করার জন্য প্যারামিটার অপ্টিমাইজ করুন।

  3. স্টপ লস ব্যবহার করুন এবং মুনাফা নিন, কঠোর অর্থ ব্যবস্থাপনা।

  4. এক্সিকিউশন দক্ষতা উপর ফোকাস, তরল underlyings চয়ন.

  5. বিভিন্ন অন্তর্নিহিত বৈশিষ্ট্য অনুসারে পরামিতিগুলি সামঞ্জস্য করুন।

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

কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ

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

  2. ভোল্টেবিলিটি ব্যান্ড প্যারামিটারগুলিকে নির্দিষ্ট অন্তর্নিহিত ভোল্টেবিলিটি ব্যাপ্তির সাথে আরও ভালভাবে খাপ খাইয়ে নেওয়ার জন্য সামঞ্জস্য করুন।

  3. সিগন্যালগুলোকে আরো ভালভাবে প্রমাণ করার জন্য ভলিউম স্পাইক এর মত অন্যান্য ফিল্টার যোগ করুন।

  4. অভিযোজনযোগ্যতার জন্য প্যারামিটারগুলিকে গতিশীলভাবে অনুকূল করতে মেশিন লার্নিং কৌশল ব্যবহার করুন।

  5. আরো বেশি ট্রেডিং সুযোগ ক্যাপচার করার জন্য উচ্চতর ফ্রিকোয়েন্সি সময়সীমার উপর পরীক্ষা।

  6. মুনাফা আরও লক করার জন্য স্টপ লস/টেক লাভ ট্র্যাকিং যুক্ত করুন।

  7. পরিমাণগত পোর্টফোলিও কৌশল তৈরি করতে অন্যান্য সূচক বা মডেলের সাথে একত্রিত করুন।

সংক্ষিপ্তসার

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


/*backtest
start: 2023-09-11 00:00:00
end: 2023-10-11 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gary_trades
//This script is designed to be used on volatile securities/tickers so is best suited for day charts on Crypto (particularly good for BTC).
//It takes both long and short trades and the main indicator settings can be changed by the use so they can test for ideal settings for ticker of interest.

//@version=4

strategy("BTC Volatility Band Strategy", shorttitle="Vol Band Strategy", overlay=false, margin_long=100, margin_short=100)

//VOLATILTY
CandleChange = ((close - close[1])/close)*100         //OR CandleChange = ((close[2] - close[1])/close)*100
plot(CandleChange, color=color.red, linewidth = 1)

//VOLATILITY BANDS 
MAlen = input(7, minval=3, maxval=30, title=" MA Length")
MAout = sma(CandleChange, MAlen)
plot(MAout, color=color.black, display=display.none)

InnerBand = input(1.0, minval=0.5, maxval=5, title="Inner Band")
OuterBand = input(2.00, minval=0.5, maxval=10, title="Outer Band")
devInner = InnerBand * stdev(CandleChange, MAlen)
devOuter = OuterBand * stdev(CandleChange, MAlen)

upper1 = MAout + devInner
lower1 = MAout - devInner
b1 = plot(upper1, "Upper Inner", color=color.gray)
b2 = plot(lower1, "Lower Inner", color=color.gray)
upper2 = MAout + devOuter
lower2 = MAout - devOuter
b3 = plot(upper2, "Upper Outer", color=color.gray)
b4 = plot(lower2, "Lower Outer", color=color.gray)
fill(b1, b3, color.rgb(250,145,175,70), title="Background")
fill(b2, b4, color.rgb(250,145,175,70), title="Background")

band1 = hline(25, "Upper Band", color=color.gray, linestyle=hline.style_dotted, linewidth=2)
band0 = hline(-25, "Lower Band", color=color.gray, linestyle=hline.style_dotted, linewidth=2)

//LONG FILTER
VolFilterL = CandleChange <= lower1 and CandleChange > lower2
SMAFilterL = close[1] > sma(close[1], 50)
PriceFilterL = close > lowest(close,7)
LongFilter = VolFilterL and SMAFilterL and PriceFilterL
bgcolor(LongFilter ? color.new(color.green, 80) : na)

//SHORT FILTER
VolFilterS = CandleChange >= upper1 and CandleChange < upper2
SMAFilterS = close[1] < sma(close[1], 50)
PriceFilterS = close < highest(close,7)
ShortFilter = VolFilterS and SMAFilterS and PriceFilterS
bgcolor(ShortFilter ? color.new(color.red, 80) : na)

//SETTING BACK TEST INPUTS
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2100, title = "To Year", minval = 1970)

startDate = timestamp("America/New_York", fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp("America/New_York", toYear, toMonth, toDay, 00, 00)
time_condition = time >= startDate and time <= finishDate

//ORDER DETAILS
Risk = (high[7] - low[7])/ 7
Profit = Risk*1.15
Loss = Risk*0.65

AlertMSG = "New stategy position" + tostring(strategy.position_size)

if (time_condition) 
    strategy.entry("Long", strategy.long, when = LongFilter, alert_message=AlertMSG)
    if (LongFilter)
        LongStop = strategy.position_avg_price - Loss
        LongProfit = strategy.position_avg_price + Profit 
        strategy.exit("TP/SL", "Long", stop=LongStop, limit=LongProfit)

if (time_condition)
    strategy.entry("Short", strategy.short, when = ShortFilter, alert_message=AlertMSG)
    if (ShortFilter)
        ShortStop = strategy.position_avg_price + Loss
        ShortProfit = strategy.position_avg_price - Profit 
        strategy.exit("TP/SL", "Short", stop=ShortStop, limit=ShortProfit)




আরো