RSI SMA-ভিত্তিক বার্স্ট বাই অ্যান্ড সেল কৌশল


সৃষ্টির তারিখ: 2023-12-20 17:33:04 অবশেষে সংশোধন করুন: 2023-12-20 17:33:04
অনুলিপি: 3 ক্লিকের সংখ্যা: 655
1
ফোকাস
1623
অনুসারী

RSI SMA-ভিত্তিক বার্স্ট বাই অ্যান্ড সেল কৌশল

ওভারভিউ

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

কৌশল নীতি

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

  2. যখন RSI এর পরিবর্তন একটি নির্দিষ্ট মান অতিক্রম করে, তখন এটিকে একটি আকস্মিক পরিবর্তন বলে মনে করা হয়। এটি প্রকৃত বন্ধের মূল্য যাচাইয়ের সাথে মিলিত হয়, যা একটি বিপরীত অবস্থান প্রতিষ্ঠার সংকেত হিসাবে কাজ করে।

  3. ইএমএ মাল্টি-গ্রিড ফিল্টার ব্যবহার করে, কেবলমাত্র যখন দামের উপরে একটি সংক্ষিপ্ত চক্রের ইএমএ থাকে তখনই মাল্টি-হেড তৈরির বিষয়টি বিবেচনা করা হয়; কেবলমাত্র যখন দামের নীচে একটি সংক্ষিপ্ত চক্রের ইএমএ থাকে তখনই খালি মাথা তৈরির বিষয়টি বিবেচনা করা হয়।

  4. RSI এর গড়, আকস্মিক পরিবর্তন এবং EMA এর ফিল্টারিং ব্যবহার করে একটি ভাল পজিশনিং পয়েন্ট খুঁজুন।

সামর্থ্য বিশ্লেষণ

  1. RSI এর গড় মান ব্যবহার করে ওভার-বয় ওভার-সেলের ঘটনাটি আরও সঠিকভাবে নির্ধারণ করা যায়, যা বিপরীতমুখী সুযোগগুলি ধরার পক্ষে সহায়ক।

  2. হঠাৎ পরিবর্তনের ফলে দামের প্রবণতা এবং দিক পরিবর্তন হয়, এবং এই সংকেত ব্যবহার করে আপনি সময়মত প্রবেশের উন্নতি করতে পারেন।

  3. ইএমএ-র মাল্টি-গ্রিড ফিল্টারিং ভুল সংকেত এড়াতে এবং অপ্রয়োজনীয় ক্ষতি হ্রাস করতে পারে।

  4. বিভিন্ন প্যারামিটারকে সমন্বিত করে সিদ্ধান্তের মানদণ্ড হিসেবে ব্যবহার করা হয়, যা কৌশলগত স্থায়িত্ব এবং নির্ভরযোগ্যতা বৃদ্ধি করতে পারে।

ঝুঁকি ও প্রতিকার

  1. আরএসআই অস্থির, এসএমএ হিট হার কম। আরএসআই এর প্যারামিটারগুলি যথাযথভাবে অপ্টিমাইজ করা বা অন্য কোনও সূচক ব্যবহার করে প্রতিস্থাপন করা যেতে পারে।

  2. হঠাৎ পরিবর্তনগুলি স্বল্পমেয়াদী কম্পন হতে পারে, সত্যিকারের বিপরীত নয়। ইন্দ্রিয় চক্রের দৈর্ঘ্য বাড়িয়ে বিচার সঠিকতা বাড়িয়ে তুলতে পারে।

  3. EMA-এর দিকনির্দেশিত ফিল্টারিং-এর মধ্যে বিলম্ব রয়েছে। সংক্ষিপ্ত সময়ের EMA-র পরীক্ষার ক্ষেত্রে সংবেদনশীলতা বাড়ানো যায়।

  4. সামগ্রিকভাবে, এই কৌশলটি প্যারামিটার সামঞ্জস্যের জন্য সংবেদনশীল, যার জন্য সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে বের করার জন্য সতর্কতার সাথে পরীক্ষা করা প্রয়োজন।

অপ্টিমাইজেশান পরামর্শ

  1. ADX, MACD ইত্যাদির মতো অন্যান্য সূচকগুলি RSI এর সাথে ব্যবহার করে পরীক্ষা করুন এবং আরও ভাল প্রবেশের জায়গা খুঁজুন।

  2. মেশিন লার্নিং অ্যালগরিদম যুক্ত করুন, মডেল প্রশিক্ষণের মাধ্যমে আকস্মিক ক্রয়-বিক্রয় সংকেতের সত্যতা এবং স্থায়িত্ব বিচার করুন।

  3. ইএমএ দিকনির্দেশনা ফিল্টারিংয়ের প্রভাবকে আরও বাড়ানো, যেমন বিভিন্ন পিরিয়ডের ইএমএর সমন্বিত বিচারকে উন্নত করা।

  4. একটি স্বনির্ধারিত স্টপ-অফ কৌশল যুক্ত করা হয়েছে, যা বাজারের অস্থিরতার উপর নির্ভর করে স্টপ-অফের পরিমাণকে গতিশীলভাবে সামঞ্জস্য করে।

  5. প্যারামিটারগুলি অপ্টিমাইজ করা চালিয়ে যান এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন। অপ্টিমাইজেশান মূল্যায়নের মানদণ্ডগুলি শার্প অনুপাত ইত্যাদি বিবেচনা করতে পারে।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-19 00:00:00
period: 3m
basePeriod: 1m
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/
// © samwillington

//@version=5


strategy("sma RSI & sudden buy and sell Strategy v1", overlay=true)
price = close
length = input( 14 )
inst_length = input( 10 )
var rbc = 0
var float rsiBP = 0.0
var rsc = 0
var float rsiSP = 0.0
bars = input(10)

lookbackno2 = input.int(20)
rsi_buy = 0
rsi_sell = 0



//EMA inputs

input_ema20 = input.int(20)
ema20 = ta.ema(price, input_ema20)
input_ema50 = input.int(50)
ema50 = ta.ema(price, input_ema50)
input_ema100 = input.int(100)
ema100 = ta.ema(price, input_ema100)
input_ema200 = input.int(200)
ema200 = ta.ema(price, input_ema200)
input_ema400 = input.int(400)
ema400 = ta.ema(price, input_ema400)
input_ema800 = input.int(800)
ema800 = ta.ema(price, input_ema800)


vrsi = ta.rsi(price, length)


hi2 = ta.highest(price, lookbackno2)
lo2 = ta.lowest(price, lookbackno2)

buy_diff_rsi = vrsi - ta.rsi(close[1], length)
sell_diff_rsi = ta.rsi(close[1],length) - vrsi


//RSI high low

var int sudS = 0
var int sudB = 0
var float sudSO = 0.0
var float sudSC = 0.0
var float sudBO = 0.0
var float sudBC = 0.0
var sudBuy = 0
var sudSell = 0 
var countB = 0
var countS = 0



var co_800 = false
var co_400 = false
var co_200 = false
var co_100 = false
var co_50 = false
var co_20 = false

co_800 := ta.crossover(price , ema800)
co_400 := ta.crossover(price , ema400)
co_200 := ta.crossover(price , ema200)
co_100 := ta.crossover(price , ema100)
co_50 := ta.crossover(price , ema50)
co_20 := ta.crossover(price , ema20)

if(ta.crossunder(price , ema20))
    co_20 := false
if(ta.crossunder(price , ema50))
    co_50 := false
if(ta.crossunder(price , ema100))
    co_100 := false
if(ta.crossunder(price , ema200))
    co_200 := false
if(ta.crossunder(price , ema400))
    co_400 := false
if(ta.crossunder(price , ema800))
    co_800 := false
    
if((price> ema800) and (price > ema400))
    if(co_20)
        if(co_50)
            if(co_100)
                if(co_200)
                    strategy.close("Sell")
                    strategy.entry("Buy", strategy.long, comment="spl Buy")
                    co_20 := false
                    co_50 := false
                    co_100 := false
                    co_200 := false



// too much rsi

if(vrsi > 90)
    strategy.close("Buy")
    strategy.entry("Sell", strategy.short, comment="RSI too overbuy")
if(vrsi < 10)
    strategy.close("Sell")
    strategy.entry("Buy", strategy.long, comment="RSI too oversold")


var sudbcount = 0  // counting no. of bars till sudden rise
var sudscount = 0  // counting no. of bars till sudden decrease



if(sudB == 1)
    sudbcount := sudbcount + 1
if(sudS == 1)
    sudscount := sudscount + 1


if((buy_diff_rsi > inst_length) and (hi2 > price))
    sudB := 1
    sudBO := open
    sudBC := close
if((sell_diff_rsi > inst_length) )
    sudS := 1
    sudSO := open
    sudSC := close   

if(sudbcount == bars)
    if(sudBC < price)
        strategy.close("Sell")
        strategy.entry("Buy", strategy.long, comment="sudd buy")
        sudbcount := 0
        sudB := 0
    sudbcount := 0
    sudB := 0
if(sudscount == bars) 
    if(sudSC > price)
        strategy.close("Buy")
        strategy.entry("Sell", strategy.short, comment="sudd sell")
        sudscount := 0
        sudS := 0
    sudscount := 0
    sudS := 0


over40 = input( 40 )
over60 = input( 60 )
sma =ta.sma(vrsi, length)
coo = ta.crossover(sma, over60)
cuu = ta.crossunder(sma, over40)

if (coo)
    strategy.close("Sell")
	strategy.entry("Buy", strategy.long, comment="modified buy")
if (cuu)
    strategy.close("Buy")
	strategy.entry("Sell", strategy.short, comment="modefied sell")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)