MACD মুভিং এভারেজ ক্রসওভার কৌশল


সৃষ্টির তারিখ: 2023-09-14 17:03:47 অবশেষে সংশোধন করুন: 2023-09-14 17:03:47
অনুলিপি: 0 ক্লিকের সংখ্যা: 725
1
ফোকাস
1617
অনুসারী

কৌশল নীতি

এই কৌশলটি MACD সূচক এবং চলমান গড় সূচককে একত্রিত করে, যখন উভয়ই সমান্তরাল সংকেত দেয় তখন একাধিক লেনদেন করা হয়।

লেনদেনের লজিকঃ

  1. FAST MACD মান গণনা করুন, সাধারণত 12 দিনের সূচকীয় চলমান গড় গ্রহণ করে

  2. SLOW MACD মান গণনা করুন, সাধারণত 26 দিনের সূচকীয় চলমান গড় গ্রহণ করে

  3. MACD মান হল FAST বিয়োগ SLOW

  4. MACD এর সংকেত লাইন গণনা করুন, সাধারণত 9 দিনের চলমান গড় গ্রহণ করে

  5. 9 এবং 26 দিনের চলমান গড় গণনা করুন

  6. MACD-এর উপর সিগন্যাল লাইন কেটে ফেলার সময় অতিরিক্ত কাজ করার কথা ভাবুন

  7. যখন ৯ তারিখের গড় রেখা ২৬ তারিখের গড় রেখায় থাকে, তখন বেশি কাজ করা হয়

  8. যখন MACD সিগন্যাল লাইন অতিক্রম করে এবং 9 দিনের গড় লাইন অতিক্রম করে 26 দিনের গড় লাইন অতিক্রম করে, প্লেইন পজিশন

এই কৌশলটি MACD-এর ওভারবয় ওভারসেল বিচার এবং গড়রেখার প্রবণতা ট্র্যাকিংয়ের ক্ষমতাকে পুরোপুরি কাজে লাগায়, যা সফলতার হার বাড়ানোর জন্য ট্রেডিংয়ের জন্য ব্যবহার করা হয়।

কৌশলগত সুবিধা

  • MACD ওভারবয় ওভারসেল, গড় লাইন ট্রেন্ড

  • এই দুইয়ের সংমিশ্রণ যাচাইকরণ, উচ্চ সম্ভাবনা প্রদান করে

  • সুস্পষ্ট এবং সহজেই বাস্তবায়িত নিয়মাবলী

কৌশলগত ঝুঁকি

  • সর্বোত্তম প্যারামিটার নির্ধারণের জন্য পুনরাবৃত্তিমূলক পরীক্ষা প্রয়োজন

  • শুধু অতিরিক্ত কাজ করা, খালি সুযোগের সুযোগ না পাওয়া

  • এই প্রবণতা বাড়ার সাথে সাথে ক্ষতির পরিমাণ বাড়তে পারে

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-09-06 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4
strategy("MACD Cross+MA", overlay=true)
//@version=4
// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"


// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//plot
plot(sma(close,9),color=color.red)
plot(sma(close,26),color=color.green)
//Condition
BMacdcondition= (macd>signal)
SMacdcondition= (macd<signal)
longCondition = crossover(sma(close, 9), sma(close, 26))
shortCondition = crossunder(sma(close, 9), sma(close, 26))
//entry
if (BMacdcondition) and window()
    (longCondition)
    strategy.entry("LONG", strategy.long)
if (shortCondition) and window()
    (SMacdcondition)
    strategy.close("LONG", qty_percent=100 , comment="หนีตาย")