ভিডাব্লুএমএ-এডিএক্স বিটকয়েন দীর্ঘ কৌশল গতি এবং প্রবণতার উপর ভিত্তি করে

VWMA ADX DMI SMA EMA RMA WMA HMA SMMA
সৃষ্টির তারিখ: 2024-04-03 17:47:49 অবশেষে সংশোধন করুন: 2024-04-03 17:47:49
অনুলিপি: 8 ক্লিকের সংখ্যা: 951
1
ফোকাস
1617
অনুসারী

ভিডাব্লুএমএ-এডিএক্স বিটকয়েন দীর্ঘ কৌশল গতি এবং প্রবণতার উপর ভিত্তি করে

ওভারভিউ

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

কৌশল নীতি

  1. 9 এবং 14 তারিখের ভিডাব্লুএমএ ব্যবহার করে মাল্টি-হেড ট্রেন্ডের বিচার করা হয়, যখন একটি স্বল্পমেয়াদী গড় লাইন দীর্ঘমেয়াদী গড় লাইন অতিক্রম করে তখন একটি মাল্টি-হেড সংকেত তৈরি হয়।
  2. ট্রেন্ড ফিল্টার হিসাবে 89 দিনের সর্বোচ্চ এবং সর্বনিম্ন মূল্যের ভিডাব্লুএমএ দ্বারা নির্মিত একটি স্বনির্ধারিত গড় লাইন প্রবর্তন করা হয়েছে, কেবলমাত্র যখন বন্ধের দাম বা খোলার দাম গড়ের চেয়ে বেশি হয় তখনই পজিশন খোলার বিষয়টি বিবেচনা করা হয়।
  3. ADX এবং DMI সূচক দ্বারা প্রবণতার শক্তি নিশ্চিত করার জন্য, প্রবণতাটি কেবল তখনই যথেষ্ট শক্তিশালী বলে বিবেচিত হয় যখন ADX 18 এর চেয়ে বড় এবং + ডিআই এবং -ডিআই এর পার্থক্য 15 এর চেয়ে বড়।
  4. লেনদেনের শতকরা ফাংশন ব্যবহার করে লেনদেনের পরিমাণ 60% থেকে 95% এর মধ্যে থাকা বার লাইনগুলি ফিল্টার করুন, লেনদেনের পরিমাণ খুব কম হওয়ার সময়গুলি এড়িয়ে চলুন।
  5. স্টপ লসটি পূর্ববর্তী K-লাইন উচ্চতার 0.96 থেকে 0.99 গুণ এবং সময় ফ্রেমের সাথে ক্রমবর্ধমান হ্রাস করে ঝুঁকি নিয়ন্ত্রণের জন্য সেট করা হয়েছে।
  6. পজিশন ধরে রাখার নির্ধারিত সময় পূরণ হলে বা দাম স্ব-অনুকূলিত গড় রেখার নীচে নেমে গেলে পজিশন খালি করা।

সামর্থ্য বিশ্লেষণ

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

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

  1. মার্কেট যখন অস্থির বা প্রবণতা অস্পষ্ট হয়, তখন এই কৌশলটি আরো ভুয়া সংকেত তৈরি করতে পারে।
  2. স্টপ লস অবস্থান তুলনামূলকভাবে কাছাকাছি, বাজারে বড় ধরনের অস্থিরতা থাকলে স্টপ লস খুব তাড়াতাড়ি ট্রিগার করা হতে পারে, যার ফলে ক্ষতির পরিমাণ বাড়তে পারে।
  3. “ব্ল্যাক সোয়ান” ইভেন্টের ক্ষেত্রে, ম্যাক্রো-অর্থনৈতিক পরিস্থিতি এবং গুরুত্বপূর্ণ ইভেন্টগুলির প্রতি বিবেচনার অভাব কার্যকর হতে পারে না।
  4. প্যারামিটার সেটিং তুলনামূলকভাবে স্থির, স্বনির্ধারণের অভাব, বিভিন্ন বাজার পরিবেশে কর্মক্ষমতা অস্থির হতে পারে।

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

  1. বাজারের পরিস্থিতি চিত্রিত করার জন্য আরও সূচক যেমন তুলনামূলকভাবে দুর্বল সূচক (আরএসআই), ব্রিন ব্যান্ড ইত্যাদি প্রবর্তন করা, সংকেতের নির্ভরযোগ্যতা বাড়ায়।
  2. স্টপ পজিশনের গতিশীল অপ্টিমাইজেশান, যেমন ATR বা শতাংশ স্টপ ব্যবহার করে বিভিন্ন বাজারের অস্থিরতার সাথে মোকাবিলা করা।
  3. ম্যাক্রো-অর্থনৈতিক তথ্য এবং মনোভাব বিশ্লেষণের সাথে যুক্ত, কৌশলটির ঝুঁকি নিয়ন্ত্রণ মডিউলটি উন্নত করা হয়েছে।
  4. মেশিন লার্নিং অ্যালগরিদম ব্যবহার করে প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করা হয়, যা কৌশলগুলির অভিযোজনযোগ্যতা এবং স্থায়িত্ব বাড়ায়।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Q_D_Nam_N_96

//@version=5
strategy("Long BTC Strategy", overlay=true, 
     default_qty_type = strategy.percent_of_equity, 
     default_qty_value = 100, initial_capital = 1000, currency = currency.USD)

Volume_Quartile(vol) =>
    qvol1 = ta.percentile_linear_interpolation(vol, 60,15)
    qvol2 = ta.percentile_linear_interpolation(vol, 60,95)
    vol > qvol1 and vol < qvol2

smma(src, length) =>
	smma =  0.0
	smma := na(smma[1]) ? ta.sma(src, length) : (smma[1] * (length - 1) + src) / length
	smma

ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "RMA" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)
        "HMA" => ta.hma(source, length)
        "SMMA" => smma(source, length)

DMI(len, lensig) =>
    up = ta.change(high)
    down = -ta.change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    trur = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / trur)+11
    minus = fixnan(100 * ta.rma(minusDM, len) / trur)-11
    sum = plus + minus
    adx = 100 * ta.vwma(math.abs(plus - minus-11) / (sum == 0 ? 1 : sum), lensig)

    [adx, plus, minus]

cond1 = Volume_Quartile(volume*hlcc4)

ma1 = ma(close,9, "VWMA")
// plot(ma1, color = color.blue)
ma2 = ma(close,14, "VWMA")
// plot(ma2, color = color.orange)

n = switch timeframe.period
    "240" => 0.997
    => 0.995

ma3 = (0.1*ma(ta.highest(close,89),89, "VWMA") + 
     0.9*ma(ta.lowest(close,89),89, "VWMA"))*n

plot(ma3, color = color.white)

[adx, plus, minus] = DMI(7, 10)


cond2 = adx > 18 and plus - math.abs(minus) > 15

var int count = 0

if barstate.isconfirmed and strategy.position_size != 0
    count += 1
else
    count := 0

p_roc = 0
if timeframe.period == '240'
    p_roc := 14
else
    p_roc := 10

longCondition = ta.crossover(ma1, ma2) and (close > open ? close > ma3 : open > ma3) and ((ma3 - ma3[1])*100/ma3[1] >= -0.2) and ((close-close[p_roc])*100/close[p_roc] > -2.0)
float alpha = 0.0
float sl_src = high[1]
if (longCondition and cond1 and cond2 and strategy.position_size == 0)
    strategy.entry("buy", strategy.long)
    if timeframe.period == '240'
        alpha := 0.96
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+5, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == '30'
        alpha := 0.985
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == '45'
        alpha := 0.985
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == '60'
        alpha := 0.98
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == '120'
        alpha := 0.97
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == '180'
        alpha := 0.96
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == 'D'
        alpha := 0.95
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else 
        alpha := 0.93
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)

period = switch timeframe.period
    "240" => 90
    "180" => 59
    "120" => 35
    "30" => 64
    "45" => 40
    "60" => 66
    "D" => 22
    => 64

if (count > period or close < ma3)
    strategy.close('buy', immediately = true)