মাল্টি-ইন্ডিকেটর গোল্ডেন সুইং ট্রেডিং কৌশল

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

এই ট্রেডিং কৌশলটি ট্রেডিং সিগন্যাল তৈরির জন্য আরএসআই, স্টোকাস্টিক, বোলিংজার ব্যান্ড এবং সুপারট্রেন্ড সহ একাধিক সূচককে একত্রিত করে।

বিশেষত, এটি 50 এর উপরে আরএসআই এবং ডি এর উপরে স্টোকাস্টিক কে মানকে উত্থান সংকেত হিসাবে বিবেচনা করে। সুপারট্রেন্ডের নীচে মূল্য একটি আপট্রেন্ডকে উপস্থাপন করে এবং বিবি মাঝারি ব্যান্ডের নীচে সুপারট্রেন্ড দীর্ঘ সংকেত গঠন করে।

বিপরীতভাবে, 50 এর নিচে আরএসআই এবং ডি এর নিচে স্টোকাস্টিক কে হ্রাস সংকেত দেয়। সুপারট্রেন্ডের উপরে দাম একটি হ্রাসের প্রবণতা দেখায় এবং বিবি মাঝারি ব্যান্ডের উপরে সুপারট্রেন্ড শর্ট সংকেত তৈরি করে।

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

তবে, সূচকগুলি একত্রিত করাও বিলম্বের পরিচয় দেয়, সম্ভাব্য অনুকূল এন্ট্রিগুলি অনুপস্থিত। সামগ্রিক অর্থনৈতিক প্রভাবগুলির পর্যবেক্ষণের পাশাপাশি প্যারামিটারগুলির লাইভ টিউনিং এখনও প্রয়োজনীয়। দীর্ঘমেয়াদী স্থিতিশীল মুনাফার জন্য বিস্তৃত ঝুঁকি ব্যবস্থাপনা অত্যন্ত গুরুত্বপূর্ণ।


/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-10 00:00:00
period: 45m
basePeriod: 5m
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/
// © rajm14

//@version=5
strategy(title = "Golden Swing Strategy - Souradeep Dey", shorttitle = "GSS", overlay = true, process_orders_on_close = true, default_qty_type = strategy.cash, default_qty_value=100000, currency = currency.USD)

// Indicator - RSI - 20
rsiSrc = input(defval = close, title = "RSI Source")
rsiLen = input.int(defval = 20, title = "RSI Length", minval = 0, maxval = 200, step = 1)
rsi = ta.rsi(rsiSrc, rsiLen)
//plot(rsi)

// Indicator - Stochastic (55,34,21)
kLength = input.int(defval = 55, title="Stoch %K Length", minval=1)
kSmooth = input.int(defval = 34, title="Stoch %K Smoothing", minval=1)
dLength = input.int(defval = 21, title="Stoch %D Smoothing", minval=1)
kLine = ta.sma(ta.stoch(close, high, low, kLength), kSmooth)
dLine = ta.sma(kLine, dLength)
// plot(kLine, color=color.red)
// plot(dLine, color=color.green)

// Indicator - ATR(5)
atrLength = input(5, "ATR Length")
atr = ta.atr(5)
// plot(atr)

// Indicator - SuperTrend(10,2)
atrPeriod = input(10, "SuperTrend ATR Length")
stSrc = hl2
stfactor = input.float(2.0, "SuperTrend Multiplier", step = 0.1)
stAtr = ta.atr(atrPeriod)
[supertrend, direction] = ta.supertrend(stfactor, atrPeriod)
bodyMiddle = (open + close) / 2
upTrend = direction < 0 ? supertrend : na
downTrend = direction < 0? na : supertrend
// plot(bodyMiddle, display=display.none)
// plot(upTrend)
// plot(downTrend)


// Indicator - Bollinger Bands (20,2)
bblength = input.int(defval = 20, title = "BB Length")
bbsource = input(defval = close, title = "BB Source")
bbStdDev = input.float(defval = 2.0, title = "BB Std Dev", step = 0.1)
bbmultiplier = bbStdDev * ta.stdev(bbsource, bblength)
bbMband = ta.sma(bbsource, bblength)
bbUband = bbMband + bbmultiplier
bbLband = bbMband - bbmultiplier
// plot (bbUband, color = color.red, linewidth = 2)
// plot (bbMband, color = color.black, linewidth = 2)
// plot (bbLband, color = color.green, linewidth = 2)

// Trade Entry

LongEntry = rsi >= 50 and kLine > dLine and low < supertrend and direction < 0 and supertrend < bbMband
ShortEntry = rsi <= 50 and kLine < dLine and high > supertrend and direction > 0 and supertrend > bbMband
plotshape(LongEntry, style = shape.triangleup,  text = "Long", location = location.belowbar, size = size.large, color = color.green)
plotshape(ShortEntry, style = shape.triangledown,  text = "Short", location = location.abovebar, size = size.large, color = color.red)

//Trade execution
if LongEntry
    strategy.entry(id = "Buy", direction = strategy.long, limit = close * .5 * atr)

closelong = close >= strategy.position_avg_price * 2.2 * atr
stoplong = close <=  strategy.position_avg_price * 1.1 * atr

if closelong
    strategy.close(id = "Buy")
    
if stoplong
    strategy.close(id = "Buy")
    
if ShortEntry
    strategy.entry(id = "Sell", direction = strategy.long, limit = close * .5 * atr)

closeshort = close <= strategy.position_avg_price * 2.2 * atr
stopshort = close >=  strategy.position_avg_price * 1.1 * atr

if closeshort
    strategy.close(id = "Sell")
    
if stopshort
    strategy.close(id = "Sell")



আরো