
এটি একটি গতিশীল ট্রেডিং কৌশল যা আরএসআই এবং ইএমএ সূচকগুলির উপর ভিত্তি করে, একাধিক সময়কালের প্রযুক্তিগত বিশ্লেষণ পদ্ধতির সাথে মিলিত। এই কৌশলটি আরএসআই ওভারব্রিড ওভারসেল সংকেত এবং ইএমএ ট্রেন্ড নিশ্চিতকরণের মাধ্যমে ট্রেড করে এবং একটি পজিশন ডায়নামিক অ্যাডজাস্টমেন্ট মেকানিজম ব্যবহার করে। কৌশলটির কেন্দ্রবিন্দু হ’ল সংক্ষিপ্ত আরএসআই (২) (চক্র) এবং মধ্যবর্তী আরএসআই (চক্র 14) সংকেতগুলিকে সংযুক্ত করা এবং একই সাথে তিনটি ভিন্ন চক্রের ইএমএ (৫০ / ১০০ / ২০০) ব্যবহার করে বাজারের প্রবণতার দিকনির্দেশ নিশ্চিত করা।
কৌশলটি একাধিক স্তরের যাচাইকরণ ব্যবস্থার সাথে লেনদেনের সিদ্ধান্ত গ্রহণ করে। একাধিক শর্তের জন্য আরএসআই 14 এর চেয়ে কম 31 এবং আরএসআই 2 এর চেয়ে বেশি 10 টির প্রয়োজন, এবং ইএমএ 50, ইএমএ 100 এবং ইএমএ 200 এর শূন্য সারি প্রয়োজন। শূন্য শর্তের জন্য আরএসআই 14 এর চেয়ে বেশি 69 এবং আরএসআই 2 এর চেয়ে কম 90 এবং ইএমএ 50, ইএমএ 100 এবং ইএমএ 200 এর চেয়ে বেশি শূন্য সারি প্রয়োজন। কৌশলটিতে আরএসআই সূচকের উপর ভিত্তি করে একটি স্টপ-আপ ব্যবস্থাও রয়েছে, যখন আরএসআই চূড়ান্ত হয় এবং পজিশনের পক্ষে মূল্য সুবিধাজনক হয় তখন স্বয়ংক্রিয়ভাবে পজিশন সমতল হয়। কৌশলটি অ্যাকাউন্ট-ভিত্তিক ডায়নামিক পজিশন ম্যানেজমেন্ট সিস্টেম ব্যবহার করে।
এটি একটি গতিশীল ট্রেডিং এবং ট্রেন্ড ট্র্যাকিং বৈশিষ্ট্য সমন্বিত কৌশল যা একাধিক প্রযুক্তিগত সূচকগুলির সমন্বিত ব্যবহারের মাধ্যমে লেনদেনের নির্ভরযোগ্যতা বাড়ায়। যদিও কিছু ঝুঁকিপূর্ণ পয়েন্ট রয়েছে, তবে প্রস্তাবিত অপ্টিমাইজেশনের দিকটি কৌশলটির স্থিতিশীলতা আরও বাড়িয়ে তুলতে পারে। কৌশলটির সর্বাধিক বৈশিষ্ট্য হ’ল স্বল্প ও মাঝারি মেয়াদী প্রযুক্তিগত সূচকগুলিকে সংযুক্ত করে, গতিশীল পজিশন ম্যানেজমেন্টের সাথে মিলিত করে, একটি সম্পূর্ণ ট্রেডিং সিস্টেম গঠন করে। যুক্তিসঙ্গত ঝুঁকি ব্যবস্থাপনা এবং পরামিতি অপ্টিমাইজেশনের মাধ্যমে, কৌশলটি বাস্তব লেনদেনের ক্ষেত্রে স্থিতিশীল পারফরম্যান্সের সম্ভাবনা রয়েছে।
/*backtest
start: 2024-11-21 00:00:00
end: 2024-11-28 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Custom RSI EMA Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)
// Definování vstupních podmínek
rsi_14 = ta.rsi(close, 14)
rsi_2 = ta.rsi(close, 2)
ema_50 = ta.ema(close, 50)
ema_100 = ta.ema(close, 100)
ema_200 = ta.ema(close, 200)
// Pákový efekt
leverage = 20
// Podmínky pro long pozici
longCondition = (rsi_14[1] < 31) and ta.crossover(rsi_2, 10) and (ema_50 < ema_100) and (ema_100 < ema_200)
// Podmínky pro short pozici
shortCondition = (rsi_14[1] > 69) and ta.crossunder(rsi_2, 90) and (ema_50 > ema_100) and (ema_100 > ema_200)
// Definování průměrné ceny pozice
var float long_avg_price = na
var float short_avg_price = na
// Sledujeme, zda se velikost pozice změnila
var float last_position_size = na
// Přerušení průměrné ceny pozice při změně pozice
if (last_position_size != strategy.position_size)
long_avg_price := na
short_avg_price := na
// Aktualizace průměrné ceny pozice
if (strategy.position_size > 0)
long_avg_price := strategy.position_avg_price
short_avg_price := na
else if (strategy.position_size < 0)
short_avg_price := strategy.position_avg_price
long_avg_price := na
// Uložení aktuální velikosti pozice pro příští bar
last_position_size := strategy.position_size
// Podmínky pro take profit
takeProfitLongCondition = (rsi_14 > 69) and (rsi_2 > 90) and (long_avg_price < close)
takeProfitShortCondition = (rsi_14 < 31) and (rsi_2 < 10) and (short_avg_price > close)
// Velikost pozice
new_position_size = strategy.position_size == 0 ? na : math.abs(strategy.position_size) * 2
// Úprava velikosti pozice s ohledem na pákový efekt
position_value = strategy.equity * leverage
trade_qty = position_value / close
// Vstup do long pozice s dvojnásobkem aktuální pozice nebo standardní velikostí při první pozici
if (longCondition)
strategy.entry("Long", strategy.long, qty=new_position_size == na ? trade_qty : new_position_size)
// Vstup do short pozice s dvojnásobkem aktuální pozice nebo standardní velikostí při první pozici
if (shortCondition)
strategy.entry("Short", strategy.short, qty=new_position_size == na ? trade_qty : new_position_size)
// Výstup z long pozice při splnění podmínek pro take profit
if (takeProfitLongCondition)
strategy.close("Long")
// Výstup z short pozice při splnění podmínek pro take profit
if (takeProfitShortCondition)
strategy.close("Short")
// Zvýraznění části grafu, kde platí podmínky pro long
highlightLongCondition = (ema_50 < ema_100) and (ema_100 < ema_200)
bgcolor(highlightLongCondition ? color.new(color.green, 90) : na)
// Zvýraznění části grafu, kde platí podmínky pro short
highlightShortCondition = (ema_50 > ema_100) and (ema_100 > ema_200)
bgcolor(highlightShortCondition ? color.new(color.red, 90) : na)
// Přidání bodů pozic do grafu
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="L")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="S")
// Vykreslení průměrné ceny pozice pro long a short
plot(long_avg_price, title="Long Avg Price", color=color.blue, linewidth=2)
plot(short_avg_price, title="Short Avg Price", color=color.orange, linewidth=2)