বর্তমান প্রবণতা কৌশল অনুসরণ প্রবণতা

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

সারসংক্ষেপ

PresentTrend কৌশল একটি অনন্য কাস্টম ট্রেন্ড-পরবর্তী কৌশল। এই সমন্বয় কৌশল উভয় স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী বাজার প্রবণতা সুবিধা নিতে পারবেন, এটি বিভিন্ন বাজার অবস্থার জন্য উপযুক্ত করে তোলে।

কিভাবে কাজ করে

এই কৌশল দুটি অংশ নিয়ে গঠিত:

  1. কাস্টম আরএসআই বা এমএফআই সূচকঃ এই সূচকটি আরএসআই বা এমএফআই-র উপর ভিত্তি করে একটি বর্তমান ট্রেন্ড মান গণনা করে, ক্রসওভার এবং ক্রসওন্ডারের উপর ভিত্তি করে ক্রয় এবং বিক্রয় সংকেত উত্পন্ন করে, সম্ভাব্য প্রবণতা বিপরীত নির্দেশ করে।

  2. ATR সূচকঃ গড় সত্যিকারের পরিসীমা (ATR) ব্যবহার করে একটি জনপ্রিয় প্রবণতা অনুসরণকারী সূচক।

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

সুবিধা

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

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

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

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

  • ক্ষতির নিয়ন্ত্রণের জন্য স্টপ লস মেকানিজম যুক্ত করুন
  • মিথ্যা লেনদেন হ্রাস করার জন্য অতিরিক্ত সূচক দিয়ে সংকেত ফিল্টার করুন
  • অপ্টিমাম খুঁজে পেতে বিভিন্ন হোল্ডিং সময়ের পরামিতি পরীক্ষা করুন
  • স্বয়ংক্রিয় পরামিতি অপ্টিমাইজেশান জন্য মেশিন লার্নিং অন্বেষণ
  • অর্ডার প্রবাহ তথ্য মত আরো তথ্য উত্স অন্তর্ভুক্ত করুন
  • কার্যকরকরণের দক্ষতা উন্নত করার জন্য কৌশল কোড অপ্টিমাইজ করুন

সিদ্ধান্ত

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


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 2h
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/
// © PresentTrading

//@version=5

// Define the strategy settings
strategy('PresentTrend - Strategy [presentTrading]' , overlay=true, precision=3, default_qty_type=strategy.cash, 
 commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1, 
  currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital= 10000)

// Define the input parameters
priceSource  = input.source(title='Source', defval=hlc3, group='PresentTrend') // The price source to use
lengthParam  = input.int(title='Length', defval=14, group='PresentTrend') // The length of the moving average
multiplier = input.float(title='Multiplier', defval=1.618, step=0.1, group='PresentTrend') // The multiplier for the ATR
indicatorChoice  = input.bool(title='Whether to use RSI or MFI', defval=false, group='PresentTrend') // Whether to use RSI or MFI

// Add a parameter for choosing Long or Short
tradeDirection = input.string(title="Trade Direction", defval="Both", options=["Long", "Short", "Both"])

// Calculate the ATR and the upT and downT values
ATR = ta.sma(ta.tr, lengthParam)
upperThreshold = low - ATR * multiplier 
lowerThreshold  = high + ATR * multiplier 

// Initialize the PresentTrend indicator
PresentTrend = 0.0

// Calculate the PresentTrend indicator
PresentTrend := (indicatorChoice ? ta.rsi(priceSource, lengthParam) >= 50 : ta.mfi(hlc3, lengthParam) >= 50) ? upperThreshold < nz(PresentTrend[1]) ? nz(PresentTrend[1]) : upperThreshold : lowerThreshold > nz(PresentTrend[1]) ? nz(PresentTrend[1]) : lowerThreshold

// Calculate the buy and sell signals
longSignal  = ta.crossover(PresentTrend, PresentTrend[2])
shortSignal  = ta.crossunder(PresentTrend, PresentTrend[2])

// Calculate the number of bars since the last buy and sell signals
barsSinceBuy = ta.barssince(longSignal)
barsSinceSell = ta.barssince(shortSignal)
previousBuy = ta.barssince(longSignal[1])
previousSell = ta.barssince(shortSignal[1])

// Initialize the direction variable
trendDirection = 0

// Calculate the direction of the trend
trendDirection := longSignal and previousBuy > barsSinceSell ? 1 : shortSignal and previousSell > barsSinceBuy ? -1 : trendDirection[1]

// Check the trade direction parameter before entering a trade
if (trendDirection == 1 and (tradeDirection == "Long" or tradeDirection == "Both"))
    strategy.entry("Buy", strategy.long) 
if (trendDirection == -1 and (tradeDirection == "Short" or tradeDirection == "Both"))
    strategy.entry("Sell", strategy.short) 

// Add a stop mechanism when the tradeDirection is one-sided
if (tradeDirection == "Long" and trendDirection == -1)
    strategy.close("Buy")
if (tradeDirection == "Short" and trendDirection == 1)
    strategy.close("Sell")

// Visualization
plot(PresentTrend, color=color.blue, title="PresentTrend")
plotshape(series=longSignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=shortSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")


আরো