
এই কৌশলটি একাধিক মুভিং এভারেজ এবং একটি অপেক্ষাকৃত দুর্বল সূচক (RSI) একত্রিত করে ট্রেডিং সিগন্যাল তৈরি করে। এটি চারটি ভিন্ন চক্রের মুভিং এভারেজ ব্যবহার করে, যার মধ্যে ৯, ২১, ২৫ এবং ৯৯ তারিখের তারিখগুলি রয়েছে, এবং তাদের মধ্যে ক্রস করে ট্রেন্ডের দিকনির্দেশনা দেয়। একই সাথে, এই কৌশলটি RSI সূচককে একটি সহায়ক বিচার হিসাবে প্রবর্তন করে, যখন বাজারটি অতিরিক্ত ক্রয় বা অতিরিক্ত বিক্রয় হয় তখন অতিরিক্ত ট্রেডিং সিগন্যাল সরবরাহ করে।
এই কৌশলটির মূল ধারণাগুলি হ’ল বিভিন্ন পিরিয়ডের চলমান গড়ের প্রবণতার বৈশিষ্ট্যগুলি ব্যবহার করা, তাদের মাল্টি-হেড এবং ফাঁকা-হেড সারিগুলির মাধ্যমে বাজারের মূল প্রবণতা নির্ধারণ করা। স্বল্পমেয়াদী গড়ের উপরে দীর্ঘমেয়াদী গড়ের উপরে একটি উজ্জ্বল সংকেত হিসাবে দেখা হয়, বিপরীতে এটি একটি নেতিবাচক সংকেত হিসাবে দেখা হয়। আরএসআই সূচকটি বাজারের আবেগ নির্ধারণের জন্য ব্যবহৃত হয়, যখন বাজারটি ওভারবাইট বা ওভারসোল হয় তখন একটি বিপরীতমুখ সংকেত সরবরাহ করে।
এই কৌশলটি বিভিন্ন চক্রের চলমান গড় এবং আরএসআই সূচকগুলিকে একত্রিত করে একটি ট্রেডিং কৌশল তৈরি করে যা প্রবণতা ট্র্যাকিং এবং সংবেদনশীল বিচার করে। এর সুবিধা হ’ল লজিক পরিষ্কার, অভিযোজনযোগ্য এবং বহু-সমতুল্য সমন্বয়ের মাধ্যমে বাজারের প্রবণতা আরও ভালভাবে ধরে রাখতে পারে। তবে একই সাথে প্যারামিটার সংবেদনশীলতা, প্রবণতা সনাক্তকরণ পিছিয়ে পড়া, অস্থির বাজার দুর্বল পারফরম্যান্স ইত্যাদির মতো ঝুঁকিও রয়েছে। ভবিষ্যতে প্যারামিটার অপ্টিমাইজেশন, সংকেত ফিল্টারিং, পজিশন ম্যানেজমেন্ট, স্টপ লস ট্রিগার ইত্যাদির উন্নতির মাধ্যমে কৌশলটির কার্যকারিতা এবং স্থিতিশীলতা আরও উন্নত করা যেতে পারে।
/*backtest
start: 2023-04-24 00:00:00
end: 2024-04-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estratégia de Médias Móveis e RSI (por Svitorino_trade)", shorttitle="Estratégia-Médias Móveis", overlay=true)
len1 = input.int(9, minval=1, title="Length 1")
len2 = input.int(21, minval=1, title="Length 2")
len3 = input.int(25, minval=1, title="Length 3")
len4 = input.int(99, minval=1, title="Length 4")
rsi_length = input.int(14, minval=1, title="RSI Length")
rsi_oversold = input.float(30, minval=0, maxval=100, title="RSI Oversold Level")
rsi_overbought = input.float(70, minval=0, maxval=100, title="RSI Overbought Level")
src = input(close, title="Source")
ama(src, length) =>
sum = 0.0
for i = 0 to length - 1
sum := sum + src[i]
sum / length
avg1 = ama(src, len1)
avg2 = ama(src, len2)
avg3 = ama(src, len3)
avg4 = ama(src, len4)
rsi_value = ta.rsi(src, rsi_length)
// Condições de entrada e saída para períodos de 9 e 21
cruzamento_9_21_acima = avg1 > avg2 and avg1[1] <= avg2[1]
cruzamento_9_21_abaixo = avg1 < avg2 and avg1[1] >= avg2[1]
// Condições de entrada e saída para períodos de 25 e 99
cruzamento_25_99_acima = avg3 > avg4 and avg3[1] <= avg4[1]
cruzamento_25_99_abaixo = avg3 < avg4 and avg3[1] >= avg4[1]
// Plotando os sinais de entrada e saída
plotshape(series=cruzamento_9_21_acima, style=shape.triangleup, color=color.green, size=size.small, location=location.belowbar)
plotshape(series=cruzamento_9_21_abaixo, style=shape.triangledown, color=color.red, size=size.small, location=location.abovebar)
plotshape(series=cruzamento_25_99_acima, style=shape.triangleup, color=color.green, size=size.small, location=location.belowbar)
plotshape(series=cruzamento_25_99_abaixo, style=shape.triangledown, color=color.red, size=size.small, location=location.abovebar)
// Entradas e saídas para períodos de 9 e 21
if cruzamento_9_21_acima and rsi_value > rsi_overbought
strategy.entry("Venda Curta", strategy.short)
if cruzamento_9_21_abaixo and rsi_value < rsi_oversold
strategy.entry("Compra Curta", strategy.long)
if cruzamento_9_21_acima
strategy.close("Compra Curta")
if cruzamento_9_21_abaixo
strategy.close("Venda Curta")
// Entradas e saídas para períodos de 25 e 99
if cruzamento_25_99_acima and rsi_value > rsi_overbought
strategy.entry("Compra Forte", strategy.long)
if cruzamento_25_99_abaixo and rsi_value < rsi_oversold
strategy.entry("Venda Forte", strategy.short)
if cruzamento_25_99_acima
strategy.close("Venda Forte")
if cruzamento_25_99_abaixo
strategy.close("Compra Forte")