ভরবেগ সূচক এবং চলমান গড় সমন্বয় করে একটি দীর্ঘ কৌশল


সৃষ্টির তারিখ: 2024-02-29 11:57:18 অবশেষে সংশোধন করুন: 2024-02-29 11:57:18
অনুলিপি: 7 ক্লিকের সংখ্যা: 536
1
ফোকাস
1617
অনুসারী

ভরবেগ সূচক এবং চলমান গড় সমন্বয় করে একটি দীর্ঘ কৌশল

ওভারভিউ

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

মূলনীতি

এই কৌশলটির এন্ট্রিগুলি MACD এবং DMI সূচকগুলির উপর নির্ভর করেঃ

  • যখন MACD ধনাত্মক হয় (MACD লাইনটি সিগন্যাল লাইনের উপরে থাকে), তখন বাজারে অস্থিরতা বৃদ্ধি পায়
  • ডিএমআইতে ডিআই+ ডিআই-এর চেয়ে বেশি হলে, বাজারটি একটি উচ্চতর ট্রেন্ডিং পর্যায়ে রয়েছে

যখন উপরের দুটি শর্ত একই সাথে পূরণ করা হয়, তখন অতিরিক্ত পজিশন খোলার জন্য।

Position exits এর দুটি মানদণ্ড রয়েছেঃ

  • স্থির স্টপঃ close মূল্য বৃদ্ধি সেট করা স্টপের শতাংশে পৌঁছেছে
  • অস্থিরতা ট্র্যাকিং স্টপ লসঃ এটি একটি গতিশীল সমন্বয় স্টপ অবস্থান গণনা করে ATR এবং সাম্প্রতিক সর্বোচ্চ মূল্য ব্যবহার করে। এটি বাজারের অস্থিরতার উপর নির্ভর করে trailing stop loss করতে পারে

সুবিধা

  • MACD এবং DMI এর সংমিশ্রণটি বাজারের প্রবণতার দিকনির্দেশকে আরও নির্ভরযোগ্যভাবে নির্ধারণ করতে পারে এবং ভুল অপারেশনগুলি হ্রাস করতে পারে
  • স্টপ-অফ শর্তগুলি ফিক্সড স্টপ-অফ এবং ভোল্টেবল স্টপ-অফের সমন্বয় করে যা নমনীয়ভাবে মুনাফা লক করতে পারে

ঝুঁকি

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

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

  • অন্যান্য সূচক যুক্ত করার বিষয়টি বিবেচনা করা যেতে পারে, যেমন কেডিজে সূচক ব্যবহার করে ওভারবাইট বা ওভারসোল্ডের বিষয়টি নির্ধারণ করা
  • বিভিন্ন পরামিতি পরীক্ষা করা যেতে পারে ভাল স্টপস্টপ ক্ষতির জন্য
  • চলমান গড়ের মতো প্যারামিটারগুলি নির্দিষ্ট লেনদেনের জাতের সাথে সামঞ্জস্য করতে পারে, সিস্টেমটি অনুকূলিতকরণ করে

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 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/
//@version=4
strategy(shorttitle='(MACD + DMI Scalping with Volatility Stop',title='MACD + DMI Scalping with Volatility Stop by (Coinrule)', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)

// Works better on 3h, 1h, 2h, 4h

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true

// DMI and MACD inputs and calculations

[pos_dm, neg_dm, avg_dm] = dmi(14, 14)
[macd, macd_signal, macd_histogram] = macd(close, 12, 26, 9)


Take_profit= ((input (3))/100)

longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

length = input(20, "Length", minval = 2)
src = input(close, "Source")
factor = input(2.0, "vStop Multiplier", minval = 0.25, step = 0.25)
volStop(src, atrlen, atrfactor) =>
    var max     = src
    var min     = src
    var uptrend = true
    var stop    = 0.0
    atrM        = nz(atr(atrlen) * atrfactor, tr)
    max         := max(max, src)
    min         := min(min, src)
    stop        := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src)
    uptrend     := src - stop >= 0.0
    if uptrend != nz(uptrend[1], true)
        max    := src
        min    := src
        stop   := uptrend ? max - atrM : min + atrM
    [stop, uptrend]

[vStop, uptrend] = volStop(src, length, factor)


closeLong = close > longTakeProfit or crossunder(close, vStop)


//Entry 
strategy.entry(id="long", long = true, when = crossover(macd, macd_signal) and pos_dm > neg_dm and window())


//Exit
strategy.close("long", when = closeLong and window())