RSI EMA ক্রসওভার কৌশল

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

img

সারসংক্ষেপ

এই কৌশলটি প্রবেশ এবং প্রস্থানগুলির প্রবণতা দিক নির্ধারণের জন্য RSI সূচকের সাথে মিলিত এক্সপোনেনশিয়াল মুভিং মিডিয়ার (ইএমএ) ক্রসওভারের নীতি ব্যবহার করে।

কৌশলগত যুক্তি

কৌশলটি বিভিন্ন সময়ের সাথে 3 টি ইএমএ লাইন ব্যবহার করে - দ্রুত, মাঝারি এবং ধীর লাইন। যখন দ্রুত ইএমএ মাঝারি ইএমএর উপরে অতিক্রম করে তখন একটি ক্রয় সংকেত উত্পন্ন হয় এবং যখন দ্রুত ইএমএ মাঝারি ইএমএর নীচে অতিক্রম করে তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

কৌশলটি ওভারকোপড এবং ওভারসোল্ড শর্তগুলি পরিমাপ করার জন্য আরএসআই সূচককেও অন্তর্ভুক্ত করে। আরএসআই একটি সময়ের মধ্যে একটি সম্পদের আপেক্ষিক শক্তি দেখানোর জন্য গড় আপ দিনের গড় ডাউন দিনের অনুপাত গণনা করে। ওভারকোপড থ্রেশহোল্ডের উপরে মানগুলি ওভারকোপড শর্তগুলি নির্দেশ করে, যখন ওভারসোল্ড থ্রেশহোল্ডের নীচে মানগুলি ওভারসোল্ড শর্তগুলি নির্দেশ করে।

কৌশলটির ক্রয়ের শর্তাবলী হলঃ

  1. দ্রুত, মাঝারি এবং ধীর EMA লাইনের উপরে মূল্য ক্রসিং
  2. RSI ওভারসোল্ড থ্রেশহোল্ড অতিক্রম করে

বিক্রয় শর্তাবলী হল:

  1. মধ্যম EMA এর নিচে দ্রুত EMA ক্রসিং
  2. মধ্যম রেখার নিচে RSI ক্রসিং

ট্রেন্ডের দিক নির্ধারণের জন্য EMA ক্রসওভার ব্যবহার করে এবং স্বল্পমেয়াদী বিপরীতমুখী সুযোগগুলি সনাক্ত করার জন্য RSI এর সাথে মিলিত, এই কৌশলটি ট্রেন্ড অনুসরণ এবং গড় বিপরীতমুখী ধারণাগুলি উভয়ই ব্যবহার করে।

সুবিধা বিশ্লেষণ

এই কৌশলটি ইএমএ ক্রসওভার এবং আরএসআইকে একত্রিত করে প্রবণতা এবং অতিরিক্ত ক্রয় / অতিরিক্ত বিক্রয় উভয় স্তরকে পরিমাপ করে, মিথ্যা ব্রেকআউট এবং গোলমালযুক্ত ব্যবসায়গুলি ফিল্টার করে। 3 টি ইএমএ লাইন ব্যবহার করে একটি স্পষ্ট প্রবণতা পক্ষপাত দেয়।

আরএসআই সেটিংস কৌশলটিকে সুবিধাজনক ওভারকুপেড/ওভারসোল্ড এলাকায় প্রবেশ এবং প্রস্থান করার অনুমতি দেয়।

লেনদেন শুরু করার আগে দামের জন্য তিনটি ইএমএ লাইন ভেঙে ফেলা বাধ্যতামূলক।

ঝুঁকি বিশ্লেষণ

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

বিভিন্ন বাজারে, কৌশলটি মিথ্যা সংকেত তৈরি করতে পারে এবং ক্ষতির সম্মুখীন হতে পারে।

আরএসআই প্যারামিটারগুলির দুর্বল টিউনিং হুমকি বা মিথ্যা সংকেত হতে পারে।

উন্নতির সুযোগ

  1. গোলমাল এড়ানোর জন্য উচ্চতর সময়সীমার উপর বৈধতা যোগ করার বিষয়টি বিবেচনা করুন।

  2. সিগন্যাল যাচাই করার জন্য ট্রেড শুরু করার আগে ইএমএ লাইনের পুনরায় পরীক্ষার জন্য অপেক্ষা করুন।

  3. সংযুক্ত সংকেত নিশ্চিতকরণের জন্য ম্যাকডি, বোলিংজার ব্যান্ডের মতো অন্যান্য সূচক অন্তর্ভুক্ত করুন।

  4. মেশিন লার্নিং ব্যবহার করে দৃঢ়তার জন্য প্যারামিটার অপ্টিমাইজ করুন।

  5. অনিশ্চিত ট্রেন্ড থেকে দ্রুত বেরিয়ে আসার জন্য স্টপ লস যোগ করার কথা বিবেচনা করুন।

সিদ্ধান্ত

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


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
basePeriod: 15m
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/
// © chadsadachai

//@version=5
strategy("EMA Cross V1", overlay= true)

//rsi
length = input.int(title = "Rsi Lenght" , defval=26 , minval=1, maxval=50)
overS = input.int(title = "Rsi OVS line" , defval=30 , minval=1, maxval=40)
overB = input.int(title = "Rsi OVB line" , defval=70 , minval=1, maxval=100)
mLine = input.int(title = "Rsi Medium line" , defval=42 , minval=1, maxval=60)
price = close
vrsi = ta.rsi(price, length)
co = vrsi >= mLine and vrsi < overB 
cu = ta.crossunder(vrsi, overB)
//ema
F = input.int(title = "EMA Fast" , defval=17 , minval=1, maxval=50)
M = input.int(title = "EMA Medium" , defval=35, minval=1, maxval=100)
S = input.int(title = "EMA Slow" , defval=142, minval=1, maxval=200)
emaF = ta.ema(price , F)
emaM = ta.ema(price , M)
emaS = ta.ema(price , S)

//plot
plot(emaF , color = color.green , linewidth=1)
plot(emaM , color = color.yellow , linewidth=1)
plot(emaS , color = color.red , linewidth=1)

//Time Stamp
start = timestamp(input.int(title = "Start Year" , defval=2011 , minval=2011, maxval=2025), input.int(title = "Start Month" , defval=1 , minval=1, maxval=12), input.int(title = "Start Day" , defval=1 , minval=1, maxval=31), 0, 0)
end = timestamp(input.int(title = "End Year" , defval=2025 , minval=2011, maxval=2025), input.int(title = "End Month" , defval=1 , minval=1, maxval=12), input.int(title = "End Day" , defval=1 , minval=1, maxval=31), 0, 0)
// years = input.int(title = "Year" , defval=2018 , minval=2011, maxval=2025)
// months = input.int(title = "Month" , defval=1 , minval=1, maxval=12)
// days = input.int(title = "Day" , defval=1 , minval=1, maxval=31)

//longCondition Default
// longCondition1 = EMA_Fast >= EMA_Slow and EMA_Fast >= EMA_Medium//ta.crossover(EMA_Fast, EMA_Slow)  EMA_Fast > EMA_Slow and EMA_Medium > EMA_Slow
// longCondition3 = price >= EMA_Medium and price > EMA_Slow
// longCondition2 = vrsi >= overSold and vrsi <= overBought 

//longCondition & shortCondition ETHUSD
// 1.price > emaF > emaM > emaS
// 2.rsi overcross overS
longC1 = price > emaF and price > emaM and price > emaS 
// longC1 = ta.crossover(emaF, emaM)
longC2 = if longC1
    co
// shortC1 = EMA_Fast < EMA_Medium //and EMA_Fast < EMA_Slow and EMA_Medium < EMA_Slow //and cu
// shortC2 = overBought > vrsi //and vrsi < overBought //overSold < vrsi and vrsi < mediumLine

// exitLong Condition
// 1.price < emaF < emaM < emaS
// 2.rsi overcross mediumLine
exitLong1 = ta.crossunder(emaF, emaM) //or emaF < emaM//and price < emaM and price < emaF
exitLong2 = ta.crossunder(vrsi,mLine)
//exitLong3 = price < emaM
//strategy.entry
if time >=start and time <=end
    strategy.entry("Buy", strategy.long , when = longC1 and longC2)

// if(exitLong1 or exitLong2)
strategy.close("Buy" , when = exitLong1 or exitLong2)
    
// exitShort1 = EMA_Fast > EMA_Medium
// //exitShort2 = ta.crossover(vrsi , mediumLine) 
// exitShort2 = ta.crossunder (vrsi,mediumLine)
// strategy.close("Short" , when = exitShort1 or exitShort2)
// //shortCondition = cu


// //if (shortCondition1 and shortCondition2)
//     //strategy.entry("My Short Entry Id", strategy.short)


আরো