
এই কৌশলটি RSI সূচকগুলিকে বিভিন্ন সময়কালের সাথে সংযুক্ত করে, বর্তমান বাজারটি ওভারবাইট বা ওভারসোল্ড অবস্থায় রয়েছে তা নির্ধারণ করে এবং দামের সাথে মুভিং গড়ের সাথে সম্পর্কিত একটি কেনা এবং বিক্রয় সংকেত প্রেরণ করে। লক্ষ্যটি হ্রাসের সময় কেনা, উত্সাহের সময় বিক্রয় করা এবং পুনরুদ্ধারের সময় লাভ অর্জন করা।
5 মিনিট, 15 মিনিট এবং 1 ঘন্টা RSI এর মান গণনা করুন, যখন 5 মিনিট, 15 মিনিট এবং 1 ঘন্টা RSI একই সাথে 25 এর নীচে থাকে, তখন ওভারসোল হিসাবে বিচার করুন, একটি কেনার সংকেত তৈরি করুন; যখন 5 মিনিট, 15 মিনিট এবং 1 ঘন্টা RSI একই সাথে 75 এর উপরে থাকে, তখন ওভারসোল হিসাবে বিচার করুন, একটি বিক্রয় সংকেত তৈরি করুন।
দাম 21 তম চলমান গড়ের নীচে থাকলে, এটি একটি কেনার সংকেত দেয়; যদি দাম চলমান গড়ের উপরে থাকে তবে এটি একটি বিক্রয় সংকেত দেয়।
পজিশনের উপর নির্ভর করে, প্রথম লেনদেনের সংখ্যা এবং পজিশনের নিয়ম নির্ধারণ করুনঃ প্রথম পজিশনের জন্য 2 হাত, তারপরে প্রতিবার পজিশনের জন্য 1 হাত, যতক্ষণ না পজিশনের পরিমাণ 2 হাত না হয়।
যখন ক্ষতি 3% পৌঁছে যায় তখন বন্ধ হয়ে যায়। যখন মুনাফা 1% পৌঁছে যায় তখন বন্ধ হয়ে যায়।
মাল্টি-টাইম ফ্রেম আরএসআই সূচক সমন্বয় ব্যবহার করে ওভার-বয় ওভার-সোল্ডের বিচার করা হয়, যা সংকেতের নির্ভরযোগ্যতা বাড়ায়।
মুভিং গড়ের সংমিশ্রণে, এক্সচেঞ্জের সুযোগ বাড়ানোর জন্য এক্সচেঞ্জ সিগন্যাল তৈরি করা হয়।
পজিশন কন্ট্রোল এবং লাভ-ক্ষতির অনুপাতের জন্য স্টপ-স্টপ-লস নিয়ম সেট করুন, ঝুঁকি নিয়ন্ত্রণ করুন।
ক্যাটাগরি বাড়ানোর মাধ্যমে লাভের সুযোগ বাড়ানো।
আরএসআই সূচকটিতে একটি রিটার্ন ঝুঁকি রয়েছে, অর্থাৎ আরএসআই ওভারব্লড ওভারসোলের সমালোচনামূলক পয়েন্টে পৌঁছে যাওয়ার পরে, দামগুলি কিছু সময়ের জন্য চলতে পারে এবং বিপরীত দিকে না যায়। এই সময়ে যদি অন্ধভাবে আরএসআই সংকেত ট্রেডিং অনুসরণ করা হয় তবে ক্ষতি হতে পারে।
মুভিং এভারেজ থেকে প্রাপ্ত ট্রেডিং সিগন্যালগুলি বিভ্রান্তিকর হতে পারে। যখন দামগুলি তীব্রভাবে ওঠানামা করে, তখন মুভিং এভারেজ সময়মত দামের পরিবর্তনগুলি ট্র্যাক করতে পারে না।
পজিশনের আকার এবং লাভ-ক্ষতির অনুপাতের ভুল সেটআপের ফলে ঝুঁকি নিয়ন্ত্রণের ত্রুটি দেখা দিতে পারে।
যুক্তিসঙ্গতভাবে আমানতের শর্ত নির্ধারণ করা দরকার। যদি আমানতটি খুব বেশি খোলা থাকে তবে ক্ষতির বিস্তার হতে পারে।
আরএসআই প্যারামিটারগুলিকে সামঞ্জস্য করুন, বিভিন্ন আরএসআই চক্রের প্যারামিটারগুলির সংমিশ্রণ পরীক্ষা করুন এবং আরও নির্ভরযোগ্য ওভার-বই ওভার-বিক্রয় সংকেত সন্ধান করুন।
ট্রেডিং সিগন্যালের সহায়ক হিসাবে বিভিন্ন প্যারামিটার মুভিং গড় লাইন পরীক্ষা করুন। অন্যান্য প্রযুক্তিগত সূচকগুলিও পরীক্ষা করা যেতে পারে।
পজিশন কন্ট্রোল এবং স্টপ লস স্টপ নিয়মগুলিকে অপ্টিমাইজ করুন, আরও বৈজ্ঞানিক ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা সেট করুন।
আমানত বাড়ানোর শর্তগুলি অনুকূলিত করুন, যাতে আমানত বাড়ানো ক্ষতির পরিমাণ বাড়িয়ে না দেয়। বিকল্প আমানত পদ্ধতি বিবেচনা করা যেতে পারে, সূচকীয় আমানতের পরিবর্তে।
এই কৌশলটি আরএসআইয়ের মাল্টি টাইম ফ্রেম পোর্টফোলিও ব্যবহার করে ট্রেন্ডের সম্ভাব্যতা নির্ধারণ করে উচ্চতর বিজয়ী হার অর্জনের জন্য। একই সাথে, চলমান গড়ের সাহায্যে ট্রেডিং সিগন্যাল তৈরি করে, ট্রেডিংয়ের সুযোগ বাড়ায়। অবস্থান নিয়ন্ত্রণ, স্টপ লস স্টপ, কোয়ান্টামাইজড পজিশন ইত্যাদি নিয়মগুলি ব্যবহার করে ঝুঁকি নিয়ন্ত্রণের জন্য। সামগ্রিকভাবে, কৌশলটি প্রবণতা, বিপরীত পরিমাপকে সংহত করে, প্রবণতা অনুসরণ এবং কম শোষণকারী ট্রেডিং লজিকের সাথে সামঞ্জস্যপূর্ণ। তবে আরও পরীক্ষামূলক অপ্টিমাইজেশন প্রয়োজন, যাতে ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা আরও বৈজ্ঞানিকভাবে যুক্তিসঙ্গত হয়, যার ফলে আরও স্থিতিশীল ট্রেডিং পারফরম্যান্স পাওয়া যায়।
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("5M_RSI_Strategy", overlay=true, pyramiding = 1)
len =14
Initial_Trade_Size = 2
up = rma(max(change(close), 0), len)
down = rma(-min(change(close), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
RSI_1h = request.security(syminfo.tickerid, "60", rsi)
RSI_3h = request.security(syminfo.tickerid, "180", rsi)
RSI_15m = request.security(syminfo.tickerid, "15", rsi)
RSI_5m = request.security(syminfo.tickerid, "5", rsi)
RSI_1m = request.security(syminfo.tickerid, "1", rsi)
ema21_5 = ema(request.security(syminfo.tickerid, "5", close), 21)
ema21_15 = ema(request.security(syminfo.tickerid, "15", close), 21)
//(RSI_3h<=25) and (RSI_1h<=25) and (RSI_15m<=25) and
Positive = ((RSI_5m<=25) and (RSI_15m<=25) and (RSI_1h<=25))?true:false
//alertcondition(Positive, title='POS', message='POS')
//plotshape(Positive, style=shape.triangleup,location=location.belowbar, color=green,size =size.tiny)
Negative = (( RSI_5m>=75) and ( RSI_15m>=75) and ( RSI_1h>=75))?true:false
//alertcondition(Negative, title='NEG', message='NEG')
//plotshape(Negative, style=shape.triangledown,location=location.abovebar, color=red,size=size.tiny) Positive and Negative and
lastordersize = abs(strategy.position_size)>=Initial_Trade_Size?abs(strategy.position_size):Initial_Trade_Size
//lastordersize =1
// and ((ema21_15-low)/ema21_15) > 0.077
//Adding to position rules
if (abs(strategy.position_size) >= Initial_Trade_Size and (abs(close - strategy.position_avg_price)/abs(strategy.position_avg_price)>0.03))
if(strategy.position_avg_price > close and strategy.position_size > 0)
strategy.entry("Add", strategy.long , qty = lastordersize , when = true)
if(strategy.position_avg_price < close and strategy.position_size < 0)
strategy.entry("Add", strategy.short, qty = lastordersize , when = true)
if (strategy.position_size == 0)
if (Positive or ((ema21_5-low)/ema21_5) > 0.07)
strategy.entry("1St Entry", strategy.long , qty = lastordersize , when = true)
// and ((high-ema21_15)/ema21_15) > 0.077
if (Negative or ((high-ema21_5)/ema21_5) > 0.07)
strategy.entry("1St Entry", strategy.short, qty = lastordersize , when = true)
//lastordersize := lastordersize * 2
//or (strategy.openprofit / abs(strategy.position_size * close))>=0.01
if(cross(ema21_5, high) or cross(ema21_5, low))
strategy.close_all()