এফএনজিইউ-এর বোলিংজার ব্যান্ড এবং আরএসআই-র উপর ভিত্তি করে পরিমাণগত ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-01-29 14:53:47
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটিকে বলা হয় FNGU Quantitative Trading Strategy Based on Bollinger Bands and RSI। এটি একটি দীর্ঘ-কেবল কৌশল যা বিশেষভাবে FNGU স্টকগুলির জন্য ডিজাইন করা হয়েছে। কৌশলটি মূলত ক্রয় এবং বিক্রয় সংকেত তৈরি করতে স্টকগুলির অতিরিক্ত ক্রয় এবং oversold শর্তগুলি সনাক্ত করতে বোলিংজার ব্যান্ড এবং RSI সূচকগুলি ব্যবহার করে।

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

এই কৌশলটির মূল যুক্তি বোলিংজার ব্যান্ড এবং আরএসআই সূচকগুলির সংমিশ্রণে ভিত্তি করে।

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

এই কৌশলটিতে, বোলিংজার ব্যান্ডের মাঝারি রেখার সময়ের দৈর্ঘ্য ২৩৫ দিন এবং প্যারামিটার কে মান ২। এটি যখন দাম বোলিংজার নিম্ন রেখার নীচে পড়ে বা মাঝারি রেখার উপরে অতিক্রম করে তখন ক্রয় সংকেত তৈরি করে এবং যখন দাম বোলিংজার উপরের রেখার উপরে উঠে যায় তখন বিক্রয় সংকেত তৈরি করে।

দ্বিতীয়ত, আরএসআই সূচক একটি স্টক এর অতিরিক্ত ক্রয় / অতিরিক্ত বিক্রয় স্তরকে প্রতিফলিত করে। 70 এর উপরে আরএসআই অতিরিক্ত ক্রয়ের অবস্থা, যখন 30 এর নীচে অতিরিক্ত বিক্রয়ের অবস্থা প্রস্তাব করে। এই কৌশলটিতে আরএসআইয়ের পরামিতি সময়ের দৈর্ঘ্য 2।

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

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

এই কৌশল নিম্নলিখিত সুবিধাগুলি আছেঃ

  1. বোলিংজার ব্যান্ড এবং আরএসআই এর সংমিশ্রণ ক্রয়/বিক্রয় সংকেতকে আরো সঠিক এবং নির্ভরযোগ্য করে তোলে।
  2. বোলিংজার ব্যান্ডগুলি অতিরিক্ত ক্রয় / অতিরিক্ত বিক্রয় মূল্য অঞ্চলগুলি চিহ্নিত করে, যখন আরএসআই মিথ্যা সংকেতগুলি ফিল্টার করে। দুটি একে অপরের পরিপূরক।
  3. এটি শুধুমাত্র লং ট্রেডিং পরিচালনা করে, শর্ট ট্রেডিং ঝুঁকি বিবেচনা করার প্রয়োজন নেই।
  4. অপ্টিমাইজড প্যারামিটারগুলি এটিকে বিশেষভাবে অত্যন্ত উদ্বায়ী FNGU স্টকগুলির জন্য উপযুক্ত করে তোলে।
  5. এটি স্বয়ংক্রিয় স্টপ লস বাস্তবায়ন করে যাতে ক্ষতির ঝুঁকি কম হয়।
  6. কোডিং বাস্তবায়ন সহজ এবং পরিষ্কার, সহজেই বোঝা এবং সংশোধন করা যায়।

ঝুঁকি এবং সমাধান

এই কৌশলটির সাথে কিছু ঝুঁকিও জড়িতঃ

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

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

এই কৌশলকে আরও উন্নত করার জন্য বেশ কয়েকটি দিক রয়েছেঃ

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

সিদ্ধান্ত

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


/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by EMKM)", shorttitle="1Min Killer", overlay=true)

///////////// RSI
RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length
RSIoverSold = 50
RSIoverBought = 50
price = close
vrsi = rsi(price, RSIlength)

///////////// Bollinger Bands
BBlength = input(235, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length
BBmult = 2
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
BBtarget38 = BBbasis + 0.38 * BBdev  // Line at 38% of Bollinger Band width
BBtarget50 = BBbasis + 0.50 * BBdev  // Line at 50% of Bollinger Band width

///////////// EMA
emaLength = input(20, title="EMA Period Length")
ema = ema(close, emaLength)

source = close
buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band
sellEntry = crossunder(source, BBupper)

///////////// Plotting
plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line")
plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line")
plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line")
plot(BBtarget38, color=color.blue, linewidth=2, title="SMA at 38% of BB width")  // Line at 38%
plot(BBtarget50, color=color.green, linewidth=2, title="SMA at 50% of BB width")  // Line at 50%
plot(ema, color=color.orange, title="EMA")  // Plot EMA

///////////// RSI + Bollinger Bands Strategy
longCondition = crossover(vrsi, RSIoverSold) and buyEntry
sellCondition = crossunder(vrsi, RSIoverBought) and close > BBupper

close_long = close > BBbasis
close_short = close < BBbasis

if (not na(vrsi))
    if longCondition
        strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy")
    else
        strategy.cancel(id="Buy")
        
    if close_long
        strategy.close("Buy")

if (sellCondition)
    strategy.entry("Sell", strategy.short, qty=10, stop=BBupper, comment="Sell")
else
    strategy.cancel(id="Sell")

if close_short
    strategy.close("Sell")


আরো