এমএসিডি রোবট ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

এই কৌশলটিকে এমএসিডি রোবট ট্রেডিং কৌশল বলা হয়। এটি এমএসিডি সূচকের দ্রুত লাইন এবং ধীর লাইনের মধ্যে সম্পর্ক গণনা করে বাজারে কেনা বেচা করার সময় নির্ধারণ করে এবং ঝুঁকি নিয়ন্ত্রণের জন্য ট্রেলিং স্টপ লস গ্রহণ করে।

কৌশল নীতি

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

এই কৌশলটিতে, দ্রুত লাইন এবং ধীর লাইনটি যথাক্রমে ইএমএ অ্যালগরিদম ব্যবহার করে গণনা করা হয় এবং সময়কালগুলি কাস্টমাইজ করা যায়। সংকেতের গুণমান উন্নত করার জন্য, একটি সংকেত লাইন যুক্ত করা হয়, যা এমএসিডি মানটি আবার মসৃণ করতে ইএমএ অ্যালগরিদম ব্যবহার করে।

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

বিক্রয়ের সময় নির্ধারণের সময়, দ্রুত এবং ধীর লাইনগুলির মৃত্যু ক্রস এবং সংকেত লাইনটি একই সময়ে ইতিবাচক হওয়া প্রয়োজন, তারপরে অবস্থানটি বন্ধ করার জন্য একটি বিক্রয় সংকেত জারি করা হয়।

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

এই কৌশলটির নিম্নলিখিত সুবিধা রয়েছে:

  1. উচ্চ নির্ভরযোগ্যতার সাথে ট্রেডিং সংকেত নির্ধারণের জন্য MACD সূচক ব্যবহার করে
  2. সিগন্যাল লাইনের বৃদ্ধি সিগন্যালের গুণমান উন্নত করে
  3. ট্রেলিং স্টপ লস কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে
  4. কাস্টমাইজযোগ্য ক্রয় লাইন কৌশল সংবেদনশীলতা সামঞ্জস্য করে
  5. সমস্ত শর্তগুলি সূচক গণনার উপর ভিত্তি করে, বাহ্যিক কারণগুলির দ্বারা প্রভাবিত হয় না

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

এই কৌশলের কিছু ঝুঁকিও রয়েছে:

  1. এমএসিডি সূচক পিছিয়ে আছে, স্বল্পমেয়াদী ট্রেডিং সুযোগ মিস করতে পারে
  2. স্টপ লস পয়েন্টের ভুল সেটিং অপ্রয়োজনীয় ক্ষতি হতে পারে
  3. প্যারামিটার টিউনিং পরীক্ষা এবং সমন্বয় জন্য অনেক সময় প্রয়োজন
  4. লেনদেনের খরচ এবং স্লিপিংয়ের প্রভাব

পরামিতিগুলি যথাযথভাবে সামঞ্জস্য করে, অন্যান্য সূচকগুলিকে একত্রিত করে ইত্যাদি এই ঝুঁকিগুলি হ্রাস করা যেতে পারে।

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

কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ

  1. KDJ, RSI ইত্যাদির মতো সংকেতগুলি ফিল্টার করতে অন্যান্য সূচকগুলির সাথে একত্রিত করুন।
  2. প্রবেশ এবং প্রস্থান পয়েন্ট নির্ধারণের জন্য মেশিন লার্নিং অ্যালগরিদম যোগ করুন
  3. স্ট্যাটিক স্টপ লসের পরিবর্তে ডাইনামিক স্টপ লস ব্যবহার করুন
  4. ম্যাকডি পরামিতি এবং কিনুন লাইন পরীক্ষা এবং অপ্টিমাইজ করুন
  5. কৌশল সামঞ্জস্য করার জন্য লেনদেনের খরচ প্রভাব বিবেচনা

সিদ্ধান্ত

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


/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle = "GBPUSD MACD", title = "GBPUSD MACD")
fastMA = input(title="Fast moving average",  defval = 12, minval = 7)
slowMA = input(title="Slow moving average",  defval = 26, minval = 7)
lastColor = yellow
[currMacd,_,_] = macd(close[0], fastMA, slowMA, 9)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9)
plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red
plot(currMacd, style = histogram, color = plotColor, linewidth = 3)
plot(0, title = "Zero line", linewidth = 1, color = gray)

//MACD
// Getting inputs
fast_length = input(title="Fast Length",  defval=12)
slow_length = input(title="Slow Length",  defval=26)
src = input(title="Source", defval=close)
signal_length = input(title="Signal Smoothing",  minval = 1, maxval = 50, defval =9)
sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// 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(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
///END OF MACD

//Long and Close Long Lines
linebuy = input(title="Enter Long", type=float, defval=-0.00045)
linesell = input(title="Close Long", type=float, defval=0.0001)

//Plot Long and Close Long Lines
plot(linebuy,color=green),plot(linesell,color=red)


//Stop Loss Input
sl_inp = input(0.05, title='Stop Loss %', type=float)/100


//Order Conditions
longCond = crossover(currMacd, linebuy)
exitLong = crossover(currMacd, signal) and signal > 0
stop_level = strategy.position_avg_price * (1 - sl_inp)


//Order Entries
strategy.entry("long", strategy.long,  when=longCond==true)
strategy.close("long", when=exitLong==true)
strategy.exit("Stop Loss", stop=stop_level)

আরো