CCI+RSI+KC ট্রেন্ড ফিল্টার দীর্ঘ এবং সংক্ষিপ্ত দ্বি-মুখী ট্রেডিং কৌশল

CCI RSI KC SMA EMA SMMA CMA TMA
সৃষ্টির তারিখ: 2024-05-15 16:56:03 অবশেষে সংশোধন করুন: 2024-05-15 16:56:03
অনুলিপি: 1 ক্লিকের সংখ্যা: 671
1
ফোকাস
1617
অনুসারী

CCI+RSI+KC ট্রেন্ড ফিল্টার দীর্ঘ এবং সংক্ষিপ্ত দ্বি-মুখী ট্রেডিং কৌশল

ওভারভিউ

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

কৌশল নীতি

  1. সিসিআই, আরএসআই এবং কেসি সূচকগুলি গণনা করুন। কেসি উপরের রেলটি মাঝারি লাইনটিতে এটিআর যুক্ত করে এবং নীচের রেলটি মাঝারি লাইন থেকে এটিআর বিয়োগ করে।
  2. ইনপুট প্যারামিটার অনুযায়ী চলমান গড়ের ধরন নির্বাচন করুন (SMA, EMA, SMMA, CMA বা TMA) এবং প্রবণতা ফিল্টার করার পদ্ধতি (OFF, POSITIVE বা INVERSE) ।
  3. একাধিক পজিশন খোলার শর্তঃ অতিরিক্ত কাজ করার অনুমতি দেওয়া হয়, সিসিআই < ওভারসোল্ড লাইন, ক্লোজিং প্রাইস < কেসি ডাউন ট্রেইল, আরএসআই < ওভারসোল্ড লাইন, লেনদেনের পরিমাণ> 50 চক্রের গড়*“আমি মনে করি, আমরা আমাদের লক্ষ্যে পৌঁছাতে পারবো।
  4. খালি পজিশন খোলার শর্তাদিঃ খালি করার অনুমতি দেওয়া হয়েছে, সিসিআই> ওভারবই লাইন, ক্লোজিং মূল্য> কেসি ট্র্যাকিং, আরএসআই> ওভারবই লাইন, লেনদেনের পরিমাণ> 50 চক্রের গড়*“আমি মনে করি, এই ধরনের ঘটনা ঘটার আগে আমাদেরকে অবশ্যই সতর্ক থাকতে হবে।
  5. মাল্টি হেড প্লেইন শর্তঃ সিসিআই> ০। খালি হেড প্লেইন শর্তঃ সিসিআই < ০।
  6. পজিশন খোলার সময় এবং পজিশন খোলার সময় সতর্কতা জারি করা হয়।

কৌশলগত সুবিধা

  1. সিগন্যালের নির্ভুলতা বাড়ানোর জন্য একাধিক সূচককে একত্রিত করে সমন্বিত বিচার করা হয়।
  2. প্রবণতা ফিল্টারিং পদ্ধতি ব্যবহার করে, এটি বাজারের প্রবণতা অনুযায়ী নমনীয়ভাবে সামঞ্জস্য করতে পারে।
  3. মার্কেটের বিভিন্ন বৈশিষ্ট্যের সাথে সামঞ্জস্য রেখে চলমান গড়ের ধরন নির্বাচন করা যায়।
  4. দীর্ঘদিন ধরে ব্যবহারের জন্য উপযুক্ত, ঐতিহাসিক তথ্য যাচাই করা হয়েছে, স্থিতিশীলতা ভাল।
  5. “আমি মনে করি, এটি একটি ভালো উদ্যোগ, কিন্তু আমি মনে করি, এটি একটি বড় পদক্ষেপ নয়।
  6. এটির উচ্চতর অটোমেশন রয়েছে, এতে মানুষের হস্তক্ষেপের প্রয়োজন নেই এবং সময় ও শ্রম সাশ্রয় হয়।

কৌশলগত ঝুঁকি

  1. ঐতিহ্যবাহী স্টপ লস স্টপ না থাকায়, চরম পরিস্থিতিতে বড় ধরনের প্রত্যাহারের সম্ভাবনা রয়েছে।
  2. এই পরিস্থিতিতে, ট্রেডিং খরচ বাড়ার সাথে সাথে বাজারে ঘন ঘন দরপতন হতে পারে।
  3. তুলনামূলকভাবে সংক্ষিপ্ত সিসিআই চক্র ব্যবহার করে, একটি গোলমাল সংকেত দেখা দিতে পারে।
  4. প্রবণতা ফিল্টারিংয়ের কার্যকারিতা সীমিত যখন প্রবণতা অস্পষ্ট বা বাজার অস্থিরতা বৃদ্ধি পায়।
  5. ফিক্সড পজিশন, বাজারের অস্থিরতার সাথে সামঞ্জস্যপূর্ণ নয়।

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('CCI Strategy with Trend Filter AUDNZD, GBPNZD', overlay=true, default_qty_type=strategy.cash, default_qty_value=50000, commission_value=0.0005, slippage=2, initial_capital=10000)

// State variables to ensure one entry per signal
var bool isLongOpen = false
var bool isShortOpen = false

// Input Parameters for allowing long and short trades
allowLong = input(true, title='Allow Long Trades')
allowShort = input(true, title='Allow Short Trades')

// Trend Filter Inputs
maType = input.string(title='MA Type', options=['OFF', 'SMA', 'EMA', 'SMMA', 'CMA', 'TMA'], defval='OFF')
trendFilterMethod = input.string(title='Trend Filter Method', options=['OFF', 'Normal', 'Reversed'], defval='OFF')
maLength = input(14, title='MA Length')

// Other Input Parameters
lengthKC = input(30, title='Keltner Channels Length')
multKC = input(0.7, title='Keltner Channels Multiplier')
lengthCCI = input(5, title='CCI Length')
overboughtCCI = input(75, title='CCI Overbought Level')
oversoldCCI = input(-75, title='CCI Oversold Level')
rsiPeriod = input(30, title='RSI Period')
rsiOverbought = input(60, title='RSI Overbought Level')
rsiOversold = input(60, title='RSI Oversold Level')
volumeMultiplier = input.float(0, title='Volume Multiplier', step=0.1, minval=0)

// Define Moving Averages
var float maValue = na
if maType == 'SMA'
    maValue := ta.sma(close, maLength)
else if maType == 'EMA'
    maValue := ta.ema(close, maLength)
else if maType == 'SMMA'
    float initialSMMA = ta.sma(close, maLength)
    maValue := na(maValue[1]) ? initialSMMA : (maValue[1] * (maLength - 1) + close) / maLength
else if maType == 'CMA'
    float firstSMA = ta.sma(close, maLength)
    float secondSMA = ta.sma(close, maLength)
    maValue := na(maValue[1]) ? firstSMA : (firstSMA + secondSMA - maValue[1]) / 2
else if maType == 'TMA'
    maValue := ta.sma(ta.sma(close, math.round(maLength / 2)), math.round(maLength / 2) + 1)

// Entry Conditions with Trend Filter
longCondition = allowLong and (trendFilterMethod == 'OFF' or trendFilterMethod == 'Normal' and close > maValue or trendFilterMethod == 'Reversed' and close < maValue)
shortCondition = allowShort and (trendFilterMethod == 'OFF' or trendFilterMethod == 'Normal' and close < maValue or trendFilterMethod == 'Reversed' and close > maValue)

// Keltner Channels
typicalPrice = hlc3
middleLine = ta.sma(typicalPrice, lengthKC)
range_1 = multKC * ta.atr(lengthKC)
upperChannel = middleLine + range_1
lowerChannel = middleLine - range_1

// CCI
cci = ta.cci(close, lengthCCI)

// RSI
rsi = ta.rsi(close, rsiPeriod)

// Volume
volCondition = volume > ta.sma(volume, 50) * volumeMultiplier

// Combined Entry Conditions with Trend Filter and state check
longCondition := longCondition and cci < oversoldCCI and low < lowerChannel and rsi < rsiOversold and volCondition and not isLongOpen
shortCondition := shortCondition and cci > overboughtCCI and high > upperChannel and rsi > rsiOverbought and volCondition and not isShortOpen

// Execute orders at the open of the new bar after conditions are met
if longCondition
    strategy.entry('Long', strategy.long)
    alert('LicenseID,buy,AUDNZD,risk=1')
    isLongOpen := true
if shortCondition
    strategy.entry('Short', strategy.short)
    alert('LicenseID,sell,AUDNZD,risk=1')
    isShortOpen := true

// Exit Conditions and Alerts
longExitCondition = cci > 0
shortExitCondition = cci < 0
if (longExitCondition and isLongOpen)
    strategy.close('Long')
    alert('LiceneseID,closelong,AUDNZD')
    isLongOpen := false
if (shortExitCondition and isShortOpen)
    strategy.close('Short')
    alert('LicenseID,closeshort,AUDNZD')
    isShortOpen := false

// Plotting
plot(upperChannel, color=color.new(color.red, 0), linewidth=1)
plot(lowerChannel, color=color.new(color.green, 0), linewidth=1)
hline(overboughtCCI, 'Overbought', color=color.red)
hline(oversoldCCI, 'Oversold', color=color.green)