
এটি একটি প্রবণতা-অনুসরণ কৌশল যা একাধিক প্রযুক্তিগত সূচককে একত্রিত করে, প্রধানত এসএমএ (সিম্পল মুভিং এভারেজ), এমএসিডি (মোবাইল এভারেজ কনভার্সন স্প্রেডিশনাল ইন্ডিকেটর) এবং এডিএক্স (এভারেজ ট্রেন্ডিং ইন্ডিকেটর) এর মাধ্যমে তিনটি সূচকের সমন্বয় করে, ঘূর্ণিপথের স্তরে ট্রেডিং করে। এই কৌশলটি গতিশীল স্টপ লস মেশিন ব্যবহার করে, ঝুঁকি ব্যবস্থাপনাকে অপ্টিমাইজ করার জন্য এবং আরও সুনির্দিষ্ট পজিশন নিয়ন্ত্রণের জন্য সুইং লো (Swing Low) সনাক্তকরণের মাধ্যমে।
এই কৌশলটির কেন্দ্রীয় যুক্তিটি একটি ট্রিপল ভেরিফিকেশন পদ্ধতির উপর ভিত্তি করেঃ
এই কৌশলটি একাধিক প্রযুক্তিগত সূচকগুলির সমন্বয়মূলক কাজ করে একটি শক্তিশালী প্রবণতা ট্র্যাকিং সিস্টেম তৈরি করে। গতিশীল স্টপ লস প্রক্রিয়াটি ভাল ঝুঁকি নিয়ন্ত্রণ সরবরাহ করে, যা মাঝারি এবং দীর্ঘমেয়াদী প্রবণতা অনুসরণ করার জন্য উপযুক্ত। কৌশলটির প্রধান সুবিধা হ’ল উচ্চ সংকেত নির্ভরযোগ্যতা, ঝুঁকি ব্যবস্থাপনা উন্নত, তবে একই সাথে সংকেত বিলম্বের মতো চ্যালেঞ্জগুলির মুখোমুখি। প্যারামিটার স্ব-অনুকূলিতকরণ এবং বাজার পরিবেশের সনাক্তকরণের আরও অপ্টিমাইজেশনের মাধ্যমে এই কৌশলটি আরও ভাল পারফরম্যান্সের প্রত্যাশায় রয়েছে।
/*backtest
start: 2024-02-20 00:00:00
end: 2024-03-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Invest SMA|MACD|ADX Long Weekly Strategy (BtTL)", overlay=true)
// SMA Inputs
smaLength = input.int(30, title="SMA Länge")
// MACD Inputs
macdFastLength = input.int(9, title="MACD schnelle Periode")
macdSlowLength = input.int(18, title="MACD langsame Perside")
macdSignalLength = input.int(9, title="MACD Signal Smoothing")
//ADX Inputs
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Länge")
// SMA-Berechnung
smaValue = ta.sma(close, smaLength)
isAboveSMA = close > smaValue
isBelowSMA = close < smaValue
// MACD-Berechnung
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)
isMACDBuy = macdLine > signalLine and macdLine > 0
// Swing-Low Berechnung (5-Kerzen)
isSwingLow = low[2] > low[1] and low[3] > low[1] and low[1] < low and low[1] < low[4]
var float lastSwingLow = na
var float secondLastSwingLow = na
// Wenn ein neuer Swing-Low gefunden wird
if (isSwingLow[1])
secondLastSwingLow := lastSwingLow
lastSwingLow := low[1]
//ADX ermitteln
[pDI,mDI,ADX] = ta.dmi(dilen, adxlen)
IsInTrend = ADX > 25
// Einstiegskondition mit MACD und SMA
longCondition = isAboveSMA and isMACDBuy and IsInTrend
if (longCondition)
strategy.entry("Long", strategy.long)
// Ausstiegskondition am vorletzten Swing-Low
if (isBelowSMA and na(secondLastSwingLow) == false)
strategy.exit("Exit", from_entry="Long", stop=secondLastSwingLow)
// Reset bei Position schließen
if(strategy.position_size <= 0)
secondLastSwingLow := na
lastSwingLow := na
// Plots
plot(smaValue, title="SMA 30", color=#063eda, linewidth=2)
plot(na(lastSwingLow) ? na : lastSwingLow, title="Last Swing Low", color=#ffb13b, linewidth=1, style=plot.style_circles)
plot(na(secondLastSwingLow) ? na : secondLastSwingLow, title="Second Last Swing Low", color=color.red, linewidth=1, style=plot.style_circles)