ডাবল এমএ ট্রেন্ড ব্রেকআউট কৌশল

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

img

সারসংক্ষেপ

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

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

কৌশলটি নিম্নলিখিত প্রধান অংশগুলির সমন্বয়ে গঠিতঃ

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

এন্ট্রি ফিল্টারিং: 5 পিরিয়ডের এমএ গণনা করে, যা দ্রুত এমএ হিসাবে সংজ্ঞায়িত করা হয়। কেবলমাত্র যখন দাম ধীর এমএ এবং দ্রুত এমএ উভয়ই ভেঙে যায়, তখন ট্রেডিং সিগন্যালটি ট্রিগার হয়। এই নকশাটি মূলত মিথ্যা ব্রেকআউটের সম্ভাবনাকে আরও ফিল্টার করে।

মোমবাতি ফিল্টারিং: বর্তমান মোমবাতিটি হ্রাসের সময় কেবল দীর্ঘ হয়, বা বর্তমান মোমবাতিটি উত্থানের সময় শর্ট হয়। এটি বিবেচনা করে যে প্রবেশের জন্য বিপরীত বারগুলি ব্যবহার করে উচ্চতর সাফল্যের হার অর্জন করা যায়। এটি অতিরিক্ত ক্রয় বা oversold অঞ্চলে প্রবেশ এড়ানোর জন্য দ্রুত আরএসআই সূচকটিও একত্রিত করে।

পিরামিড ফিল্টার: ক্রিপ্টোকারেন্সি বাজারের জন্য, কৌশলটিতে উল্লেখযোগ্য হ্রাসের প্রবণতার ক্ষেত্রে অতিরিক্ত বিক্রির সুযোগগুলি ক্যাপচার করার জন্য তিনগুণ অস্থিরতা ব্রেকআউট শর্ত অন্তর্ভুক্ত রয়েছে।

হারানো বন্ধ করুন: কৌশলটি চলমান স্টপ লসকে সমর্থন করে। পজিশন খোলার পরে, স্টপ লস সেট শতাংশের ভিত্তিতে রিয়েল-টাইমে আপডেট করা হবে।

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

এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ

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

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

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

  1. রেঞ্জ-বান্ধব ডাবল এমএ সময়কালে, একাধিক ছোট জয় এবং ক্ষতি হবে।
  2. বিপরীত বার এন্ট্রি কিছু সময়সীমার মধ্যে কম জয় হার থাকতে পারে.
  3. ক্রিপ্টো মার্কেটে উচ্চ অস্থিরতা এবং স্টপ লস হওয়ার সম্ভাবনা বেশি।
  4. উচ্চ রিটার্ন অস্থিরতার সাথে ওভারসোল্ড পিরামিডিং সুযোগগুলি খুব বেশি নয়।

এই ঝুঁকিগুলি মোকাবেলা করার জন্য নিম্নলিখিত দিকগুলিতে অপ্টিমাইজেশন করা যেতে পারেঃ

  1. অকার্যকর whipsaws এড়ানোর জন্য আরো প্রবেশের শর্ত যোগ করুন;
  2. সময়সীমা সামঞ্জস্য করুন বা ফিল্টারিংয়ের জন্য অন্যান্য সূচক যোগ করুন;
  3. স্টপ লস অ্যালগরিদমকে মধ্যরেখার কাছাকাছি ট্র্যাক করার জন্য অপ্টিমাইজ করুন;
  4. অতিরিক্ত বিক্রিত পিরামিডিং কৌশলগুলির প্রকৃত কর্মক্ষমতা মূল্যায়ন করুন।

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

এই কৌশলটি অপ্টিমাইজ করার জন্য প্রধান দিকগুলির মধ্যে রয়েছেঃ

  1. প্যারামিটার অপ্টিমাইজেশন: ঝুঁকি-সমন্বিত রিটার্ন উন্নত করার জন্য সর্বোত্তম দ্রুত এবং ধীর এমএ সময়ের সমন্বয় খুঁজে পেতে পদ্ধতিগতভাবে ব্যাকটেস্ট।

  2. প্যাটার্ন স্বীকৃতি: আরও নির্ভরযোগ্য বিপরীতমুখী সংকেত চিহ্নিত করতে KDJ, MACD এর মতো অন্যান্য সূচক যুক্ত করুন।

  3. স্টপ লস অপ্টিমাইজেশন: থামার সম্ভাবনা কমাতে ফ্লোটিং বা ট্রেলিং স্টপ লস অ্যালগরিদম তৈরি করুন।

  4. মেশিন লার্নিং: মেশিন মেশিন ব্যবহার করে স্বয়ংক্রিয়ভাবে ট্রেডিং নিয়ম তৈরি করার জন্য আরো ঐতিহাসিক তথ্য সংগ্রহ এবং লেবেল করুন।

  5. অবস্থান আকার: বাজারের অবস্থার উপর ভিত্তি করে অবস্থানের আকারকে গতিশীলভাবে সামঞ্জস্য করুন।

সিদ্ধান্ত

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


/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's Trend MAs Strategy v2.0 +CB", shorttitle = "Trend MAs str 2.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, "long")
needshort = input(true, "short")
needstops = input(false, "stops")
stoppercent = input(5, defval = 5, minval = 1, maxval = 50, title = "Stop, %")
useohlc4 = input(false, defval = false, title = "Use OHLC4")
usefastsma = input(true, "Use fast MA Filter")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period")
slowlen = input(21, defval = 20, minval = 2, maxval = 200, title = "slow MA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")
needbg = input(false, defval = false, title = "Need trend Background?")
needarr = input(false, defval = false, title = "Need entry arrows?")
needex = input(true, defval = true, title = "Need extreme? (crypto/fiat only!!!)")

src = useohlc4 == true ? ohlc4 : close

//PriceChannel 1
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

//PriceChannel 2
lasthigh2 = highest(src, fastlen)
lastlow2 = lowest(src, fastlen)
center2 = (lasthigh2 + lastlow2) / 2

//Trend
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend[1]

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//CryptoBottom
mac = sma(close, 10)
len = abs(close - mac)
sma = sma(len, 100)
max = max(open, close)
min = min(open, close)
up3 = close < open and len > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0

//Signals
up = trend == 1 and (low < center2 or usefastsma == false) and (redbars == 1) ? 1 : 0
dn = trend == -1 and (high > center2 or usefastsma == false) and (greenbars == 1) ? 1 : 0

up2 = high < center and high < center2 and bar == -1 ? 1 : 0
dn2 = low > center and low > center2 and bar == 1 ? 0 : 0

//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "Slow MA")
plot(center2, color = red, linewidth = 3, transp = 0, title = "PriceChannel 2")

//Arrows
plotarrow(up == 1 and needarr == true ? 1 : 0, colorup = black, colordown = black, transp = 0)
plotarrow(dn == 1 and needarr == true ? -1 : 0, colorup = black, colordown = black, transp = 0)

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 90)

//Alerts
alertcondition(up == 1, title='buy', message='Uptrend')
alertcondition(dn == 1, title='sell', message='Downtrend')

//Trading
stoplong = up == 1 and needstops == true ? close - (close / 100 * stoppercent) : stoplong[1]
stopshort = dn == 1 and needstops == true ? close + (close / 100 * stoppercent) : stopshort[1]

longCondition = up == 1 or (up2 == 1 and needex == true) or up3 == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
    strategy.exit("Stop Long", "Long", stop = stoplong)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    strategy.exit("Stop Short", "Short", stop = stopshort)

আরো