মাল্টি-পিরিয়ড আরএসআই গ্রিড ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

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

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

  1. কৌশলটি বিভিন্ন সময়সীমার সাথে 7 টি আরএসআই সূচক ব্যবহার করে (1 মিনিট, 5 মিনিট, 15 মিনিট, 30 মিনিট, 1 ঘন্টা, 2 ঘন্টা এবং 1 দিন) । যখন সমস্ত 7 টি আরএসআই সূচক একযোগে ওভারকোপড লাইনের চেয়ে কম হয়, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন সমস্ত 7 টি আরএসআই সূচক একযোগে ওভারসোল্ড লাইনের চেয়ে বেশি হয়, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

  2. ক্রয় এবং বিক্রয় সংকেতগুলির উপর ভিত্তি করে, 20 টি অর্ডার নির্দিষ্ট শতাংশ মূল্য ব্যবধানের সাথে বর্তমান মূল্যের চারপাশে স্থাপন করা হয়। উদাহরণস্বরূপ, যদি প্রবেশের মূল্য 100 ডলার হয় এবং অর্ডারের মধ্যে ব্যবধান 2% হয়, তবে অর্ডার দামগুলি $ 98, $ 96... $ 60 পর্যন্ত।

  3. যখন মূল্য অর্ডারের মূল্যের একটিতে পৌঁছায়, তখন একটি অর্ডার পূরণ করা হয় এবং একটি অবস্থান প্রতিষ্ঠিত হয়। যখন একটি সেট শতাংশ লাভ গ্রহণ করা হয় তখন মুনাফা গ্রহণ ঘটে।

কৌশলটির সুবিধা

  1. একাধিক সূচক ব্যবহার করে বাজারের প্রবণতা ভুলভাবে ব্যাখ্যা করা এড়ানো যায়। সঠিক বিচার করার জন্য 7 টি সময়সীমা স্বল্পমেয়াদী এবং মধ্যমেয়াদী দীর্ঘমেয়াদী প্রবণতা পরিবর্তনগুলি জুড়ে।

  2. আরএসআই সূচক নির্ভরযোগ্যভাবে ওভারকুপ এবং ওভারসোল্ড স্তরগুলি চিহ্নিত করে, সর্বোচ্চ কিনতে এবং সর্বনিম্ন বিক্রয় এড়ায়।

  3. গ্রিড অর্ডারগুলি কার্যকরভাবে অবস্থানগুলিতে প্রবেশ করে, সমাবেশ এবং হ্রাসের পিছনে যাওয়া এড়ায়। সমতল বাজার জুড়ে ধীরে ধীরে প্রবেশগুলি প্রবেশের ব্যয়ের অনুকূলিতকরণের অনুমতি দেয়।

  4. লাভ এবং স্টপ লস সেটিংগুলি ঝুঁকি ব্যবস্থাপনাকে সহায়তা করে এবং চরম চলার সময় ক্ষতির ঝুঁকি হ্রাস করে।

ঝুঁকি ও সমাধান

  1. গ্রিডের ভিতরে তীব্র মূল্যের গতিবিধি প্রবেশ করতে পারে। গ্রিডের ব্যবধান যুক্তিসঙ্গতভাবে নির্ধারণ করে এবং মার্জিন যোগ করে এটি মোকাবেলা করা যেতে পারে।

  2. স্টপ লসগুলি খুব কাছাকাছি স্থাপন করা অপ্রয়োজনীয় স্লিপিং খরচ সৃষ্টি করতে পারে। অস্থিরতার উপর ভিত্তি করে যুক্তিসঙ্গতভাবে বিস্তৃত স্টপগুলি সর্বোত্তম।

  3. কিছু আরএসআই সূচক ভুল সংকেত তৈরি করতে পারে। নির্দিষ্ট আরএসআই টাইমফ্রেম ফিল্টার করা সমস্যাগুলিকে বিচ্ছিন্ন করতে পারে।

অপ্টিমাইজেশান নির্দেশাবলী

  1. এন্ট্রি এবং আউটপুট কৌশলগুলিকে পরিমার্জন করতে প্যারামিটার এবং বিকল্প বিচারের যুক্তিগুলির বিভিন্ন সংমিশ্রণ পরীক্ষা করা যেতে পারে।

  2. উচ্চতর অস্থিরতার পরিবেশে বৃহত্তর ব্যবধানের সাথে গ্রিডের ব্যবধানগুলি স্বয়ংক্রিয়ভাবে সামঞ্জস্য করার জন্য অস্থিরতা মেট্রিকগুলি অন্তর্ভুক্ত করুন।

  3. অ্যাকাউন্ট ইক্যুইটি ভিত্তিতে সর্বোচ্চ পজিশনের আকার, গ্রিডের ব্যবধান ইত্যাদি গতিশীলভাবে পরিবর্তন করতে মূলধন পরিচালনার মডিউল যুক্ত করুন।

সিদ্ধান্ত

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


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["MinLot",0.001,358374]]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © rrolik66

//@version=4
strategy(title="7-RSI strategy", overlay=true)

// inputs
src = input(close, "Source RSI", type = input.source)
bot_res = input(title="Bot period", type=input.resolution, defval="1")
srcin_bot = input(ohlc4, "Source Bot", type = input.source)
src_bot = security(syminfo.tickerid, bot_res, srcin_bot)

tradeDirection = input(title="Trade Direction", type=input.string,
     options=["Long Bot", "Short Bot"], defval="Long Bot")


rsi1_res = input(title="RSI-1 period", type=input.resolution, defval="1", group="indicators")
rsi1_Len = input(14, minval=1, title="RSI-1 Length", group="indicators")
rsi2_res = input(title="RSI-2 period", type=input.resolution, defval="5", group="indicators")
rsi2_Len = input(14, minval=1, title="RSI-2 Length", group="indicators")
rsi3_res = input(title="RSI-3 period", type=input.resolution, defval="15", group="indicators")
rsi3_Len = input(14, minval=1, title="RSI-3 Length", group="indicators")
rsi4_res = input(title="RSI-4 period", type=input.resolution, defval="30", group="indicators")
rsi4_Len = input(14, minval=1, title="RSI-4 Length", group="indicators")
rsi5_res = input(title="RSI-5 period", type=input.resolution, defval="60", group="indicators")
rsi5_Len = input(14, minval=1, title="RSI-5 Length", group="indicators")
rsi6_res = input(title="RSI-6 period", type=input.resolution, defval="120", group="indicators")
rsi6_Len = input(14, minval=1, title="RSI-6 Length", group="indicators")
rsi7_res = input(title="RSI-7 period", type=input.resolution, defval="1D", group="indicators")
rsi7_Len = input(14, minval=1, title="RSI-7 Length", group="indicators")

longProfitPerc = input(title="Long Bot Take Profit (%)",
     type=input.float, minval=0.0, step=0.05, defval=0.5, group="Long Bot") * 0.01
st_long_orders = input(title="Long Bot Step orders (%)",
     type=input.float, minval=0.0, step=0.1, defval=2.0, group="Long Bot") * 0.01

rsi1_low = input(100, title="RSI-1 <", group="Long Bot")
rsi2_low = input(100, title="RSI-2 <", group="Long Bot")
rsi3_low = input(100, title="RSI-3 <", group="Long Bot")
rsi4_low = input(100, title="RSI-4 <", group="Long Bot")
rsi5_low = input(100, title="RSI-5 <", group="Long Bot")
rsi6_low = input(100, title="RSI-6 <", group="Long Bot")
rsi7_low = input(100, title="RSI-7 <", group="Long Bot")

shortProfitPerc = input(title="Short Bot Take Profit (%)",
     type=input.float, minval=0.0, step=0.05, defval=0.5, group="Short Bot") * 0.01
st_short_orders = input(title="Short Bot Step orders (%)",
     type=input.float, minval=0.0, step=0.1, defval=2.0, group="Short Bot") * 0.01

rsi1_up = input(0, title="RSI-1 >", group="Short Bot")
rsi2_up = input(0, title="RSI-2 >", group="Short Bot")
rsi3_up = input(0, title="RSI-3 >", group="Short Bot")
rsi4_up = input(0, title="RSI-4 >", group="Short Bot")
rsi5_up = input(0, title="RSI-5 >", group="Short Bot")
rsi6_up = input(0, title="RSI-6 >", group="Short Bot")
rsi7_up = input(0, title="RSI-7 >", group="Short Bot")

//indicators
rsi1 = rsi(src, rsi1_Len)
rsi1_sec = security(syminfo.tickerid, rsi1_res, rsi1)
rsi2 = rsi(src, rsi2_Len)
rsi2_sec = security(syminfo.tickerid, rsi2_res, rsi2)
rsi3 = rsi(src, rsi3_Len)
rsi3_sec = security(syminfo.tickerid, rsi3_res, rsi3)
rsi4 = rsi(src, rsi4_Len)
rsi4_sec = security(syminfo.tickerid, rsi4_res, rsi4)
rsi5 = rsi(src, rsi5_Len)
rsi5_sec = security(syminfo.tickerid, rsi5_res, rsi5)
rsi6 = rsi(src, rsi6_Len)
rsi6_sec = security(syminfo.tickerid, rsi6_res, rsi6)
rsi7 = rsi(src, rsi7_Len)
rsi7_sec = security(syminfo.tickerid, rsi7_res, rsi7)

//RSI
rsi1_up_signal = rsi1_sec > rsi1_up
rsi1_low_signal = rsi1_sec < rsi1_low
rsi2_up_signal = rsi2_sec > rsi2_up
rsi2_low_signal = rsi2_sec < rsi2_low
rsi3_up_signal = rsi3_sec > rsi3_up
rsi3_low_signal = rsi3_sec < rsi3_low
rsi4_up_signal = rsi4_sec > rsi4_up
rsi4_low_signal = rsi4_sec < rsi4_low
rsi5_up_signal = rsi5_sec > rsi5_up
rsi5_low_signal = rsi5_sec < rsi5_low
rsi6_up_signal = rsi6_sec > rsi6_up
rsi6_low_signal = rsi6_sec < rsi6_low
rsi7_up_signal = rsi7_sec > rsi7_up
rsi7_low_signal = rsi7_sec < rsi7_low


//Buy & Sell
Buy = rsi1_low_signal and rsi2_low_signal and rsi3_low_signal and rsi4_low_signal and rsi5_low_signal and rsi6_low_signal and rsi7_low_signal
Sell = rsi1_up_signal and rsi2_up_signal and rsi3_up_signal and rsi4_up_signal and rsi5_up_signal and rsi6_up_signal and rsi7_up_signal

// input into trading conditions
longOK  = (tradeDirection == "Long Bot")
shortOK = (tradeDirection == "Short Bot")

// in entry orders price
longEntryPrice1 = src_bot * (1 - (st_long_orders))
longEntryPrice2 = src_bot * (1 - (st_long_orders*2))
longEntryPrice3 = src_bot * (1 - (st_long_orders*3))
longEntryPrice4 = src_bot * (1 - (st_long_orders*4))
longEntryPrice5 = src_bot * (1 - (st_long_orders*5))
longEntryPrice6 = src_bot * (1 - (st_long_orders*6))
longEntryPrice7 = src_bot * (1 - (st_long_orders*7))
longEntryPrice8 = src_bot * (1 - (st_long_orders*8))
longEntryPrice9 = src_bot * (1 - (st_long_orders*9))
longEntryPrice10 = src_bot * (1 - (st_long_orders*10))
longEntryPrice11 = src_bot * (1 - (st_long_orders*11))
longEntryPrice12 = src_bot * (1 - (st_long_orders*12))
longEntryPrice13 = src_bot * (1 - (st_long_orders*13))
longEntryPrice14 = src_bot * (1 - (st_long_orders*14))
longEntryPrice15 = src_bot * (1 - (st_long_orders*15))
longEntryPrice16 = src_bot * (1 - (st_long_orders*16))
longEntryPrice17 = src_bot * (1 - (st_long_orders*17))
longEntryPrice18 = src_bot * (1 - (st_long_orders*18))
longEntryPrice19 = src_bot * (1 - (st_long_orders*19))

shortEntryPrice1 = src_bot * (1 + st_short_orders)
shortEntryPrice2 = src_bot * (1 + (st_short_orders*2))
shortEntryPrice3 = src_bot * (1 + (st_short_orders*3))
shortEntryPrice4 = src_bot * (1 + (st_short_orders*4))
shortEntryPrice5 = src_bot * (1 + (st_short_orders*5))
shortEntryPrice6 = src_bot * (1 + (st_short_orders*6))
shortEntryPrice7 = src_bot * (1 + (st_short_orders*7))
shortEntryPrice8 = src_bot * (1 + (st_short_orders*8))
shortEntryPrice9 = src_bot * (1 + (st_short_orders*9))
shortEntryPrice10 = src_bot * (1 + (st_short_orders*10))
shortEntryPrice11 = src_bot * (1 + (st_short_orders*11))
shortEntryPrice12 = src_bot * (1 + (st_short_orders*12))
shortEntryPrice13 = src_bot * (1 + (st_short_orders*13))
shortEntryPrice14 = src_bot * (1 + (st_short_orders*14))
shortEntryPrice15 = src_bot * (1 + (st_short_orders*15))
shortEntryPrice16 = src_bot * (1 + (st_short_orders*16))
shortEntryPrice17 = src_bot * (1 + (st_short_orders*17))
shortEntryPrice18 = src_bot * (1 + (st_short_orders*18))
shortEntryPrice19 = src_bot * (1 + (st_short_orders*19))

// take profit price
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// take profit values for confirmation
plot(series=(strategy.position_size > 0) ? longExitPrice : na,
     color=color.green, style=plot.style_circles,
     linewidth=3, title="Long Take Profit")
plot(series=(strategy.position_size < 0) ? shortExitPrice : na,
     color=color.red, style=plot.style_circles,
     linewidth=3, title="Short Take Profit")


// entry orders

if (strategy.position_size == 0)
    strategy.order(id="Long0", long=true, limit=src_bot, when=longOK and Buy)
	strategy.order(id="Long1", long=true, limit=longEntryPrice1, when=longOK and Buy)
	strategy.order(id="Long2", long=true, limit=longEntryPrice2, when=longOK and Buy)
	strategy.order(id="Long3", long=true, limit=longEntryPrice3, when=longOK and Buy)
	strategy.order(id="Long4", long=true, limit=longEntryPrice4, when=longOK and Buy)
	strategy.order(id="Long5", long=true, limit=longEntryPrice5, when=longOK and Buy)
	strategy.order(id="Long6", long=true, limit=longEntryPrice6, when=longOK and Buy)
	strategy.order(id="Long7", long=true, limit=longEntryPrice7, when=longOK and Buy)
	strategy.order(id="Long8", long=true, limit=longEntryPrice8, when=longOK and Buy)
	strategy.order(id="Long9", long=true, limit=longEntryPrice9, when=longOK and Buy)
	strategy.order(id="Long10", long=true, limit=longEntryPrice10, when=longOK and Buy)
	strategy.order(id="Long11", long=true, limit=longEntryPrice11, when=longOK and Buy)
	strategy.order(id="Long12", long=true, limit=longEntryPrice12, when=longOK and Buy)
	strategy.order(id="Long13", long=true, limit=longEntryPrice13, when=longOK and Buy)
	strategy.order(id="Long14", long=true, limit=longEntryPrice14, when=longOK and Buy)
	strategy.order(id="Long15", long=true, limit=longEntryPrice15, when=longOK and Buy)
	strategy.order(id="Long16", long=true, limit=longEntryPrice16, when=longOK and Buy)
	strategy.order(id="Long17", long=true, limit=longEntryPrice17, when=longOK and Buy)
	strategy.order(id="Long18", long=true, limit=longEntryPrice18, when=longOK and Buy)
	strategy.order(id="Long19", long=true, limit=longEntryPrice19, when=longOK and Buy)

if (strategy.position_size == 0)
    strategy.order(id="Short0", long=false, limit=src_bot, when=shortOK and Sell)
	strategy.order(id="Short1", long=false, limit=shortEntryPrice1, when=shortOK and Sell)
	strategy.order(id="Short2", long=false, limit=shortEntryPrice2, when=shortOK and Sell)
	strategy.order(id="Short3", long=false, limit=shortEntryPrice3, when=shortOK and Sell)
	strategy.order(id="Short4", long=false, limit=shortEntryPrice4, when=shortOK and Sell)
	strategy.order(id="Short5", long=false, limit=shortEntryPrice5, when=shortOK and Sell)
	strategy.order(id="Short6", long=false, limit=shortEntryPrice6, when=shortOK and Sell)
	strategy.order(id="Short7", long=false, limit=shortEntryPrice7, when=shortOK and Sell)
	strategy.order(id="Short8", long=false, limit=shortEntryPrice8, when=shortOK and Sell)
	strategy.order(id="Short9", long=false, limit=shortEntryPrice9, when=shortOK and Sell)
	strategy.order(id="Short10", long=false, limit=shortEntryPrice10, when=shortOK and Sell)
	strategy.order(id="Short11", long=false, limit=shortEntryPrice11, when=shortOK and Sell)
	strategy.order(id="Short12", long=false, limit=shortEntryPrice12, when=shortOK and Sell)
	strategy.order(id="Short13", long=false, limit=shortEntryPrice13, when=shortOK and Sell)
	strategy.order(id="Short14", long=false, limit=shortEntryPrice14, when=shortOK and Sell)
	strategy.order(id="Short15", long=false, limit=shortEntryPrice15, when=shortOK and Sell)
	strategy.order(id="Short16", long=false, limit=shortEntryPrice16, when=shortOK and Sell)
	strategy.order(id="Short17", long=false, limit=shortEntryPrice17, when=shortOK and Sell)
	strategy.order(id="Short18", long=false, limit=shortEntryPrice18, when=shortOK and Sell)
	strategy.order(id="Short19", long=false, limit=shortEntryPrice19, when=shortOK and Sell)

// exit position based on take profit price

if (strategy.position_size > 0)
    strategy.order(id="exit_Long", long=false, limit=longExitPrice, qty=strategy.position_size)

if (strategy.position_size < 0)
    strategy.order(id="exit_Short", long=true, limit=shortExitPrice, qty=abs(strategy.position_size))


আরো