আরএসআই বক্স গ্রিড কৌশল

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

img

সারসংক্ষেপ

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

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

আপনি সেটিংসে শর্টস, উৎস, আরএসআই দৈর্ঘ্য, এবং ওভারকুপেড/ওভারসোল্ড লেভেল কনফিগার করতে পারেন।

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

কৌশলটির মূল যুক্তি হল:

  1. প্রবণতা বিপরীত পয়েন্ট নির্ধারণের জন্য RSI সূচক ব্যবহার করুন, যা নিশ্চিতকরণ সংকেত হিসাবে অতিরিক্ত ক্রয় / অতিরিক্ত বিক্রয় স্তরের RSI লাইন ক্রসওভার ব্যবহার করে।

  2. যখন RSI সংকেত উপস্থিত হয়, তখন গ্রিডের উপরের/নীচের সীমা হিসাবে একটি সময়ের মধ্যে সর্বোচ্চ/নিম্নতম মূল্য রেকর্ড করুন।

  3. 5 টি সমানভাবে বিভক্ত গ্রিড লাইনে ব্যাপ্তি ভাগ করুন। রিয়েল টাইমে চেক করুন কোন লাইনে দাম সবচেয়ে কাছাকাছি।

  4. যখন দাম উপরের রেখার ওপরে চলে যায়, তখন লম্বা হয়ে যায়। যখন দাম নীচের রেখার নিচে চলে যায়, তখন লম্বা হয়ে যায় এবং শর্ট হয়ে যায়।

  5. স্পর্শের পরিবর্তে ব্রেকআউট ব্যবহার করে, এটি প্রবণতা বিপরীতকে আরও ভালভাবে ধরতে পারে।

  6. রাতারাতি ঝুঁকি এড়ানোর জন্য বন্ধের আগে সমস্ত পিরামিড অর্ডার বন্ধ করুন।

কৌশলটি নিম্নলিখিত বিষয়গুলির মধ্যে গঠিতঃ

  1. ইনপুট সেটিংসঃ উত্স, আরএসআই পরামিতি, দীর্ঘ / সংক্ষিপ্ত ইত্যাদি

  2. আরএসআই গণনাঃ আরএসআই গণনা করুন এবং ক্রসওভার সংকেত পরীক্ষা করুন।

  3. ডায়নামিক গ্রিডঃ আরএসআই সিগন্যালের উপর মূল্য পরিসীমা রেকর্ড করুন এবং গ্রিড লাইন গণনা করুন।

  4. সিগন্যাল চেকঃ লং/শর্ট সিগন্যালের জন্য মূল্য ব্রেকিং গ্রিড লাইন সনাক্ত করুন।

  5. অর্ডার ম্যানেজমেন্টঃ অর্ডার পাঠান এবং বন্ধ করার আগে সমতল।

  6. চার্টিং: গ্রাফিক গ্রিড লাইন, দীর্ঘ/সংক্ষিপ্ত অঞ্চল ইত্যাদি।

গ্রিডকে গতিশীলভাবে আপডেট করে এবং প্রবণতা প্রসঙ্গে আরএসআই এবং ব্রেকআউট সংকেত ব্যবহার করে, এই কৌশলটি কার্যকরভাবে প্রবণতা ট্র্যাক করতে পারে এবং প্রবণতা পরিবর্তনের সময় বিপরীত হতে পারে। বন্ধ হওয়ার আগে সমতলতা রাতারাতি ঝুঁকি পরিচালনা করে।

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

এই কৌশলটির প্রধান সুবিধাগুলো হল:

  1. স্থির গ্রিডের বিপরীতে গতিশীল গ্রিড প্রবণতার সাথে খাপ খায়।

  2. শুধুমাত্র RSI নিশ্চিতকরণের পর গ্রিড সামঞ্জস্য করে, গোলমাল কমাতে।

  3. ব্রেকআউট সিগন্যাল স্পর্শের চেয়ে ভাল বিপরীত ধরতে পারে।

  4. রাতারাতি ফাঁক ঝুঁকি এড়াতে বন্ধ করার আগে সমতল।

  5. আরএসআই ওভারকুপ/সোল্ড সনাক্তকরণের জন্য কার্যকর।

  6. ব্রেকআউট মোড রিভার্সনের তুলনায় প্রবণতা প্রবেশাধিকার প্রদান করে।

  7. গ্রিড স্পেসিং এবং আকার সামঞ্জস্য করা ঝুঁকি সামঞ্জস্যের অনুমতি দেয়।

  8. ভিজ্যুয়াল গ্রিড এবং লম্বা/সংক্ষিপ্ত অঞ্চল।

  9. বিভিন্ন ব্যবসায়ীদের জন্য অপশনাল শর্টস।

  10. অ্যালগো ট্রেডিং এর জন্য সহজ সরল যুক্তি।

এগুলি লাইভ ট্রেডিংয়ের জন্য ঝুঁকি নিয়ন্ত্রণের সাথে কৌশলটিকে স্বয়ংক্রিয় প্রবণতা ট্র্যাকিংয়ের সক্ষম করে তোলে।

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

এছাড়াও কিছু সম্ভাব্য ঝুঁকি রয়েছেঃ

  1. হুইপস মার্কেট স্টপ লস হতে পারে, স্টপ বাড়াতে পারে অথবা ট্রেডিং বন্ধ করতে পারে।

  2. রাতারাতি ফাঁক বড় খোলা ফাঁক ছেড়ে যেতে পারে. অবস্থান আকার হ্রাস করতে পারেন.

  3. খারাপ প্যারামিটার টিউনিং ট্রেড বা সিগন্যাল ত্রুটি বৃদ্ধি করতে পারে। সতর্কতার অপ্টিমাইজেশান প্রয়োজন।

  4. উচ্চ ফি গ্রিড ট্রেড থেকে মুনাফা হ্রাস করতে পারে। বাণিজ্য আকার হ্রাস বা কম ফি বিনিময় ব্যবহার করা উচিত।

  5. ব্রেকআউট সিগন্যালগুলি সামান্য বিপরীত হতে পারে। যুক্তিসঙ্গত ব্রেকআউট প্রান্তিক প্রয়োজন।

  6. ধারাবাহিক উত্থান প্রবণতা কম পারফর্ম করতে পারে। অন্যান্য সূচকগুলির সাথে সংমিশ্রণ বিবেচনা করুন।

  7. বড় পজিশনের আকার এবং পিরামিডিংয়ের জন্য পর্যাপ্ত মূলধন প্রয়োজন, অন্যথায় ফলাফল খারাপ হবে। মূলধনের ভিত্তিতে আকারগুলি সামঞ্জস্য করুন।

হ্রাসঃ

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

  2. প্রবণতা সূচকগুলির সাথে মিশ্রিত করুন, হুইপসা সময়কালের ট্রেডিং এড়ান।

  3. লেনদেনের আকার এবং ঝুঁকি হ্রাস করুন।

  4. সময়সীমা এবং স্থিতিশীলতার মধ্যে সর্বোত্তম ভারসাম্য অর্জনের জন্য বিভিন্ন ব্রেকআউট থ্রেশহোল্ড পরীক্ষা করুন।

  5. আরো প্রবেশের শর্ত যুক্ত করুন, ফাঁদে পড়ার থেকে বাঁচতে শুধুমাত্র স্পষ্ট প্রবণতা লিখুন।

  6. প্যারামিটার স্থিতিশীলতা মূল্যায়নের জন্য দীর্ঘ সময়ের জন্য ব্যাকটেস্ট।

  7. বাজারের অভিযোজনযোগ্যতার জন্য মেশিন লার্নিং ভিত্তিক গতিশীল পরামিতি অপ্টিমাইজেশান অনুসন্ধান করুন।

  8. পজিশনের ঝুঁকি সুরক্ষার জন্য অপশন কৌশলগুলির সাথে একত্রিত করার বিষয়টি বিবেচনা করুন।

  9. কৌশল কার্যকর রাখতে সাম্প্রতিক বাজারের অবস্থার উপর ভিত্তি করে পরামিতিগুলি সামঞ্জস্য করুন।

  10. দ্রুত পরীক্ষার জন্য ভিজ্যুয়াল অপ্টিমাইজেশান প্ল্যাটফর্ম তৈরি করা।

প্যারামিটার অপ্টিমাইজেশান, সিগন্যালের সমন্বয় এবং আরো মার্কেট ইনফরমেশন দিয়ে, ঝুঁকি কমাতে পারে একটি সত্যিকারের নির্ভরযোগ্য অ্যালগো কৌশল তৈরি করতে।

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

এই কৌশল আরও উন্নত করা যেতে পারেঃ

  1. আরএসআই প্যারামিটার অপ্টিমাইজ করা, আরএসআই সময়ের পরীক্ষা করা সেরা কম্বো জন্য।

  2. সর্বোত্তম ঝুঁকি-প্রতিদানের জন্য বিভিন্ন গ্রিড স্পেসিং পরীক্ষা করা।

  3. ফিল্টার সিগন্যালগুলিতে অন্য সূচক যোগ করা, যেমন MACD, KD ইত্যাদি নির্ভুলতা উন্নত করতে।

  4. বাজারের অস্থিরতার উপর ভিত্তি করে অভিযোজিত স্টপ তৈরি করা।

  5. প্রবেশের শর্ত বাড়ছে, ফাঁদ এড়ানোর জন্য কেবলমাত্র সুস্পষ্ট প্রবণতা প্রবেশ করুন।

  6. প্যারামিটার স্থিতিশীলতা মূল্যায়নের জন্য দীর্ঘ সময়ের জন্য ব্যাকটেস্টিং।

  7. অভিযোজনযোগ্যতার জন্য মেশিন লার্নিং ভিত্তিক গতিশীল অপ্টিমাইজেশান অনুসন্ধান করা।

  8. ঝুঁকি সুরক্ষার জন্য বিকল্প কৌশল অন্তর্ভুক্ত করা।

  9. কার্যকারিতা বজায় রাখার জন্য সাম্প্রতিক বাজারের অবস্থার উপর ভিত্তি করে পরামিতিগুলি সামঞ্জস্য করা।

  10. দ্রুত পরীক্ষার জন্য ভিজ্যুয়াল অপ্টিমাইজেশান প্ল্যাটফর্ম তৈরি করা।

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

সংক্ষিপ্তসার

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

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

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


/*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"}]
*/

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

//@version=5
// strategy("RSI Box Strategy (pseudo-Grid Bot)", overlay=true, initial_capital = 10000, 
//  default_qty_type = strategy.percent_of_equity, default_qty_value = 1, pyramiding = 33, commission_value=0.10)

src = input.source(close,"Source")
rsiLength = input.int(14,"RSI Length")
oblvl = input.int(70,"Overbought Level")
oslvl = input.int(30,"Oversold Level")
useShorts = input.bool(false,"Use Shorts",inline="B")
showGrid = input.bool(false,"Show Grid",inline="B")

rsi = ta.rsi(src,rsiLength)

rsi_crossdn = ta.crossunder(rsi,oblvl)
rsi_crossup = ta.crossover(rsi,oslvl)

highest = ta.vwma(ta.highest(src,rsiLength),rsiLength)
lowest = ta.vwma(ta.lowest(src,rsiLength), rsiLength)

gridTop = ta.valuewhen(rsi_crossdn,highest,0)
gridBottom = ta.valuewhen(rsi_crossup,lowest,0)
gridMiddle = math.avg(gridTop,gridBottom)
gridMidTop = math.avg(gridMiddle,gridTop)
gridMidBottom = math.avg(gridMiddle,gridBottom)

diff1 = math.abs(src - gridTop)
diff2 = math.abs(src - gridBottom)
diff3 = math.abs(src - gridMiddle)
diff4 = math.abs(src - gridMidTop)
diff5 = math.abs(src - gridMidBottom)

minDiff = math.min(diff1, diff2, diff3, diff4, diff5)

// Determine which line is the closest
float closestLine = na
if minDiff == diff1
    closestLine := gridTop
else if minDiff == diff2
    closestLine := gridBottom
else if minDiff == diff3
    closestLine := gridMiddle
else if minDiff == diff4
    closestLine := gridMidTop
else if minDiff == diff5
    closestLine := gridMidBottom

buyCrosses = ta.crossover(src,gridTop) or ta.crossover(src,gridBottom) or ta.crossover(src,gridMiddle) or ta.crossover(src,gridMidTop) or ta.crossover(src,gridMidBottom)
sellCrosses= ta.crossunder(src,gridTop) or ta.crossunder(src,gridBottom) or ta.crossunder(src,gridMiddle) or ta.crossunder(src,gridMidTop) or ta.crossunder(src,gridMidBottom)

condition_bull = buyCrosses
condition_bear = sellCrosses

var float bull_status_line = na
var float bear_status_line = na
var float bull_buy_line = na
var float bear_sell_line = na

if condition_bull
    bull_status_line := closestLine
if condition_bear
    bear_status_line := closestLine

if bull_status_line == gridBottom
    bull_buy_line := gridMidBottom
if bull_status_line == gridMidBottom
    bull_buy_line := gridMiddle
if bull_status_line == gridMiddle
    bull_buy_line := gridMidTop
if bull_status_line == gridMidTop
    bull_buy_line := gridTop

if bear_status_line == gridTop
    bear_sell_line := gridMidTop
if bear_status_line == gridMidTop
    bear_sell_line := gridMiddle
if bear_status_line == gridMiddle
    bear_sell_line := gridMidBottom
if bear_status_line == gridMidBottom
    bear_sell_line := gridBottom

l = ta.crossover(src,bull_buy_line)
s = ta.crossunder(src,bear_sell_line)

if l
    strategy.entry("Long",strategy.long)
if s
    strategy.close("Long")
    if useShorts
        strategy.entry("Short",strategy.short)

// Plotting
in_buy = ta.barssince(l) < ta.barssince(s)
u=plot(bull_buy_line,color=na,title="Buy Plot")
d=plot(bear_sell_line,color=na,title="Sell Plot")

plot(not showGrid?na:gridBottom,color=color.new(color.white,75),title="Grid Line -2")
plot(not showGrid?na:gridMidBottom,color=color.new(color.white,75),title="Grid Line -1")
plot(not showGrid?na:gridMiddle,color=color.new(color.white,75),title="Grid Line 0")
plot(not showGrid?na:gridMidTop,color=color.new(color.white,75),title="Grid Line 1")
plot(not showGrid?na:gridTop,color=color.new(color.white,75),title="Grid Line 2")


fill(u,d,color=in_buy ? color.new(color.lime,75) : color.new(color.red,75))

আরো