রিসোর্স লোড হচ্ছে... লোডিং...

গড় বিপরীত এবং প্রবণতা অনুসরণকারী সমন্বিত পরিমাণগত কৌশল

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

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

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

কৌশলটি মূলত ট্রেডিং সিগন্যাল তৈরির জন্য সিম্পল মুভিং এভারেজ এবং আরএসআই সূচক ব্যবহার করেঃ

  1. যখন মূল্য 200-পরিয়ডের এসএমএ এর নিচে থাকে, তখন এটি বর্তমান বাজারকে ডাউনট্রেন্ড হিসেবে বিবেচনা করে।

  2. যখন RSI 20 এর নিচে থাকে, তখন এটি counter-trend mean reversal trades নেয়।

  3. যখন মূল্য 200-পরিয়ডের এসএমএ-র উপরে থাকে, তখন এটি বর্তমান বাজারকে আপট্রেন্ড হিসেবে বিবেচনা করে।

  4. যখন দাম এসএমএ এর উপরে চলে যায়, তখন ট্রেন্ড অনুসরণ করে ট্রেড করা প্রয়োজন।

  5. যখন RSI ৮০ অতিক্রম করে বা দাম নির্দিষ্ট শতাংশে SMA এর নিচে পড়ে তখন Exits ট্রিগার হয়।

  6. গড় বিপরীতমুখী এবং প্রবণতা অনুসরণকারী অবস্থানের আকার পৃথকভাবে সামঞ্জস্য করা যেতে পারে।

কৌশলটি গড় বিপরীতমুখী এবং প্রবণতা অনুসরণকারী কৌশলগুলিকে একত্রিত করে এবং বিভিন্ন বাজারের পর্যায়ে তাদের প্রয়োগ করে।

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

এর প্রধান সুবিধাগুলো হল:

  1. দুটি কৌশলকে একত্রিত করা কৌশলগত অভিযোজনযোগ্যতা উন্নত করে।

  2. এটি ট্রেন্ডিং বাজার এবং বিভিন্ন বাজারে ট্রেডিংয়ের সুযোগ খুঁজে পেতে পারে।

  3. পজিশনের আকার সংশোধন করে ঝুঁকি নিয়ন্ত্রণ করা যায়।

  4. সহজ প্যারামিটার সেটিংস এটি বাস্তবায়ন করা সহজ করে তোলে।

III. সম্ভাব্য ঝুঁকি

যাইহোক, ঝুঁকিগুলি হলঃ

  1. এসএএমএ এবং আরএসআই এর মতো সূচকগুলি মিথ্যা ব্রেকআউটের জন্য সংবেদনশীল।

  2. দুটি মোডের মধ্যে স্যুইচিং বিলম্ব হতে পারে।

  3. দীর্ঘমেয়াদী লাভের জন্য কিছু হ্রাস সহ্য করতে হবে।

IV. সংক্ষিপ্ত বিবরণ

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


/*backtest
start: 2022-09-07 00:00:00
end: 2023-04-05 00:00:00
period: 1d
basePeriod: 1h
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/
// © I11L

//@version=5
strategy("Mean Reversion and Trendfollowing", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false)

// Input for the starting date
start_date = input(timestamp("1 Feb 2000 12:00"), title="Starting Date")
enableMeanReversion = input.bool(true)
enableTrendfollowing = input.bool(true)
trendPositionFactor = input.float(1)
meanReversionPositionFactor = input.float(0.5)

// Convert the input string to a timestamp
start_ts = timestamp(year(start_date), month(start_date), dayofmonth(start_date), 0, 0)

// Check if the current bar's time is greater than or equal to the start timestamp
start_condition = time >= start_ts

var tradeOrigin = ""

sma200 = ta.sma(close,200)
rsi2 = ta.rsi(close,2)

isMeanReversionMode = close < sma200 or not(enableTrendfollowing)
isTrendfollowingMode = close > sma200 or not(enableMeanReversion)

isRsiBuy = rsi2 < 20 and enableMeanReversion
isRsiClose = rsi2 > 80 and enableMeanReversion

isSmaBuy = close > sma200 and enableTrendfollowing
isSmaClose = close < sma200 * 0.95 and enableTrendfollowing

isBuy = (isMeanReversionMode and isRsiBuy) or (isTrendfollowingMode and isSmaBuy)

positionSizeFactor = isSmaBuy ? trendPositionFactor : meanReversionPositionFactor

// Only execute the strategy after the starting date
if (start_condition)
    if (isBuy and strategy.opentrades == 0)
        tradeOrigin := isSmaBuy ? "SMA" : "RSI"
        strategy.entry("My Long Entry Id", strategy.long, qty=(strategy.equity / close) * positionSizeFactor, comment=str.tostring(positionSizeFactor))
    isClose = tradeOrigin == "SMA" ? isSmaClose : isRsiClose
    if (isClose)
        strategy.exit("Exit", limit = close)

plot(sma200)
plot(sma200 * 0.95, color=color.orange)

আরো