বিটকয়েন মাল্টি-ফ্যাক্টর ট্রেডিং কৌশল

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

সারসংক্ষেপ

এটি একটি বিস্তৃত ট্রেডিং কৌশল যা বিটকয়েন এবং অন্যান্য ক্রিপ্টোকারেন্সিগুলির 15-মিনিটের সময়সীমার ব্যবসায়ের জন্য ডিজাইন করা হয়েছে। এটি ট্রিপল এক্সপোনেনশিয়াল মুভিং এভারেজ (টিইএমএ), গড় সত্য পরিসীমা (এটিআর) এবং হেইকিন-আশি মোমবাতি সহ কেনা এবং বিক্রয় সংকেত উত্পন্ন করার জন্য একাধিক সূচককে একত্রিত করে।

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

কৌশলটি নিম্নলিখিত সূচকগুলি ব্যবহার করেঃ

  • ট্রিপল এক্সপোনেনশিয়াল মুভিং এভারেজ (টিইএমএ): যথাক্রমে উচ্চ, নিম্ন এবং বন্ধ মূল্যের উপর ভিত্তি করে বিভিন্ন দৈর্ঘ্য এবং উত্সের তিনটি টিইএমএ লাইন।

  • Average True Range (ATR): volatility পরিমাপ করার জন্য EMA smoothing সহ কাস্টম ATR গণনা।

  • সুপারট্রেন্ডঃ ট্রেন্ডের দিকনির্দেশনা নির্ধারণের জন্য ATR এবং একটি গুণক ব্যবহার করে গণনা করা হয়।

  • সহজ চলমান গড় (এসএমএ): এর মানগুলি মসৃণ করতে সংক্ষিপ্ত টিইএমএ লাইনে প্রয়োগ করা হয়।

  • হেকিন-আশি ক্লোজঃ অতিরিক্ত প্রবণতা নিশ্চিতকরণের জন্য ব্যবহৃত হয়।

লং এন্ট্রি সিগন্যালটি তখনই সক্রিয় হয় যখন শর্ট টিইএমএ উভয় লং টিইএমএ লাইনের উপরে থাকে, সুপারট্রেন্ডটি উত্থানমুখী হয়, শর্ট টিইএমএ তার এসএমএ এর উপরে থাকে এবং হেইকিন-আশি বন্ধ পূর্ববর্তী বন্ধের চেয়ে বেশি হয়।

বিপরীত শর্ত পূরণ হলে শর্ট এন্ট্রি সিগন্যাল ট্রিগার হয়।

ট্যাক লাভ এবং স্টপ লস এন্ট্রি মূল্যের 1% এবং 3% এ নির্ধারিত হয়। কমিশনও বিবেচনা করা হয়।

সুবিধা বিশ্লেষণ

  • একাধিক কারণ সঠিকতা উন্নত করে প্রবণতা, অস্থিরতা এবং প্যাটার্ন সূচকগুলির সংমিশ্রণ সঠিকতা উন্নত করতে পারে এবং মিথ্যা সংকেতগুলি এড়াতে পারে।

  • স্টপ লস/টেক প্রফিট কন্ট্রোলের যুক্তিসঙ্গত ঝুঁকি ভালভাবে সেট করা স্টপ লস এবং লাভের স্তরগুলি লাভকে লক করে এবং ক্ষতির সীমা নির্ধারণ করে।

  • বড় প্যারামিটার অপ্টিমাইজেশান স্পেস পরিবর্তিত বাজারের সাথে মানিয়ে নিতে সূচক পরামিতিগুলি নমনীয়ভাবে সামঞ্জস্য করা যেতে পারে।

  • কমিশনের সাথে আরও বাস্তববাদী কমিশন বিবেচনা ব্যাকটেস্ট ফলাফল লাইভ পারফরম্যান্স কাছাকাছি করে তোলে।

ঝুঁকি বিশ্লেষণ

  • অতিরিক্ত অপ্টিমাইজেশনের কারণে ভুল মূল্যায়নের ঝুঁকি অনেকগুলি সংমিশ্রিত সূচকও ভুল মূল্যায়নের দিকে পরিচালিত করতে পারে। কার্যকারিতা মূল্যায়ন করা প্রয়োজন।

  • স্বল্পমেয়াদী ট্রেডিংয়ের ক্ষেত্রে ঝুঁকি বেশি দীর্ঘ সময়সীমার তুলনায়, ১৫ মিনিট সময় আকস্মিক ঘটনা এবং ঝুঁকিগুলির জন্য বেশি সংবেদনশীল।

  • কৌশলগত স্থিতিশীলতার আরও বৈধতা প্রয়োজন নির্ভরযোগ্যতা নিশ্চিত করার জন্য দীর্ঘ ইতিহাস এবং বাজারে আরও বিস্তৃত পরীক্ষার প্রয়োজন।

  • একাধিক পরামিতি সহ দীর্ঘ অপ্টিমাইজেশান অনেক প্যারামিটার প্রবর্তিত সমস্ত প্যারামিটার সমন্বয় অপ্টিমাইজ করার জন্য দীর্ঘ প্রক্রিয়া নেতৃত্ব দেয়।

উন্নতির দিকনির্দেশ

  • প্রতিটি সূচকের প্রকৃত প্রভাব মূল্যায়ন করুন প্রতিটি সূচকের প্রকৃত বর্ধিত সুবিধা যাচাই করার জন্য ব্যাকটেস্ট, অতিরিক্ততা এড়ানো।

  • স্থিতিশীলতা অনুকূল এবং পরীক্ষা করুন আরও বেশি বাজারে পরীক্ষার অপ্টিমাইজেশান ফলাফল নিশ্চিত করার জন্য।

  • স্টপ লস কৌশল অন্তর্ভুক্ত করুন যেমন ট্রেলিং স্টপ, ব্র্যাকেট অর্ডার স্টপ ঝুঁকি নিয়ন্ত্রণের জন্য।

  • আরো খরচ বিষয় বিবেচনা করুন ব্যাকটেস্টকে লাইভ পারফরম্যান্সের কাছাকাছি আনতে স্লিপিংয়ের মতো।

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

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


/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-09 00:00:00
period: 10m
basePeriod: 1m
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/
// © deperp
//@version=5
strategy('3kilos', shorttitle='3kilos BTC 15m', overlay=true, initial_capital=100000, max_bars_back=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.07, pyramiding=0)

short = input.int(50, minval=1)
srcShort = input(high, title='TEMA short')

long = input.int(100, minval=1)
srcLong = input(low, title='TEMA long 2')

long2 = input.int(350, minval=1)
srcLong2 = input(close, title='TEMA long 3')

atrLength = input.int(550, title='ATR Length', minval=1)
mult = input.float(3, title="Multiplier", minval=0.5, step=1)

smaPeriod = input.int(100, title="SMA Period", minval=1)

takeProfitPercent = input.float(1, title="Take Profit (%)", minval=0.1) / 100
stopLossPercent = input.float(3, title="Stop Loss (%)", minval=0.1) / 100


tema(src, length) =>
    ema1 = ta.ema(src, length)
    ema2 = ta.ema(ema1, length)
    ema3 = ta.ema(ema2, length)
    3 * (ema1 - ema2) + ema3

tema1 = tema(srcShort, short)
plot(tema1, color=color.new(color.red, 0), linewidth=2)

tema2 = tema(srcLong, long)
plot(tema2, color=color.new(color.blue, 0), linewidth=2)

tema3 = tema(srcLong2, long2)
plot(tema3, color=color.new(color.green, 0), linewidth=2)

// Custom ATR calculation with EMA smoothing
atr_ema(src, length) =>
    trueRange = math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
    emaTrueRange = ta.ema(trueRange, length)
    emaTrueRange

// Calculate ATR with EMA smoothing
atr = atr_ema(close, atrLength)

// Calculate Supertrend
var float up = na
var float dn = na
var bool uptrend = na
up := na(up[1]) ? hl2 - (mult * atr) : uptrend[1] ? math.max(hl2 - (mult * atr), up[1]) : hl2 - (mult * atr)
dn := na(dn[1]) ? hl2 + (mult * atr) : uptrend[1] ? hl2 + (mult * atr) : math.min(hl2 + (mult * atr), dn[1])
uptrend := na(uptrend[1]) ? true : close[1] > dn[1] ? true : close[1] < up[1] ? false : uptrend[1]

// Calculate SMA
sma = ta.sma(tema1, smaPeriod)

// Heikin-Ashi Close
haTicker = ticker.heikinashi(syminfo.tickerid)
haClose = request.security(haTicker, timeframe.period, close)


// Trend determination using Heikin-Ashi Close
longC = tema1 > tema2 and tema1 > tema3 and uptrend and tema1 > sma and haClose > haClose[1]
shortC = tema1 < tema2 and tema1 < tema3 and not uptrend and tema1 < sma and haClose < haClose[1]


alertlong = longC and not longC[1]
alertshort = shortC and not shortC[1]

useDateFilter = input.bool(true, title="Begin Backtest at Start Date",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2023"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

inTradeWindow = true

stopLossLevelLong = close - atr * mult
stopLossLevelShort = close + atr * mult
longTakeProfitLevel = close * (1 + takeProfitPercent)
longStopLossLevel = close * (1 - stopLossPercent)
shortTakeProfitLevel = close * (1 - takeProfitPercent)
shortStopLossLevel = close * (1 + stopLossPercent)



if inTradeWindow and longC
    strategy.entry('Long', strategy.long, comment='Long')
    strategy.exit("TP Long", "Long", limit=longTakeProfitLevel, stop=longStopLossLevel, comment="TP/SL Long")

if inTradeWindow and shortC
    strategy.entry('Short', strategy.short, comment='Short')
    strategy.exit("TP Short", "Short", limit=shortTakeProfitLevel, stop=shortStopLossLevel, comment="TP/SL Short")

// Alerts

alertcondition(longC, title='Long', message=' Buy Signal ')
alertcondition(shortC, title='Short', message=' Sell Signal ')

আরো