কেল্টনার চ্যানেল এবং সিসিআই সূচকের উপর ভিত্তি করে ট্রেন্ড ফিল্টারিং পরিমাণগত কৌশল


সৃষ্টির তারিখ: 2024-02-27 15:47:20 অবশেষে সংশোধন করুন: 2024-02-27 15:47:20
অনুলিপি: 0 ক্লিকের সংখ্যা: 715
1
ফোকাস
1617
অনুসারী

কেল্টনার চ্যানেল এবং সিসিআই সূচকের উপর ভিত্তি করে ট্রেন্ড ফিল্টারিং পরিমাণগত কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি মূলত নিম্নলিখিত কয়েকটি সূচক এবং শর্তের উপর ভিত্তি করে লেনদেনের সিদ্ধান্ত নেয়ঃ

  1. ক্যান্টনার চ্যানেলঃ চ্যানেল অঞ্চলের মধ্যে দাম রয়েছে কিনা তা নির্ধারণের জন্য নির্দিষ্ট সময়ের মধ্যে একটি সাধারণ মূল্য এবং এটিআর গণনা করা হয়।

  2. সিসিআই সূচকঃ মূল্য ওভারবয় ওভারসোল কিনা তা নির্ধারণের জন্য ব্যবহৃত হয়।

  3. আরএসআই সূচক: দাম ওভারবয় ওভারসোল্ড কিনা তা নির্ধারণে সহায়তা করে।

  4. লেনদেনের পরিমাণঃ লেনদেনের পরিমাণের প্রয়োজন হয় লেনদেনের জন্য নির্দিষ্ট গড় মান অতিক্রম করার জন্য।

  5. গড় প্রবণতা ফিল্টারঃ এসএমএ, ইএমএ ইত্যাদি গড় প্রবণতা সূচকগুলির সাথে মিলিয়ে দামের সামগ্রিক প্রবণতা দিক নির্ধারণ করুন।

প্রবণতার দিকনির্দেশের সাথে সামঞ্জস্য রেখে, যদি দামগুলি কেন্টনার চ্যানেলের উপরে এবং নীচে চলে যায় এবং সিসিআই এবং আরএসআই সূচকগুলি সংকেত দেয় এবং লেনদেনের পরিমাণ ব্যাপকভাবে বৃদ্ধি পায়, তবে এটি একটি ক্রয় এবং বিক্রয় সংকেত তৈরি করে।

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

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

  1. প্রবণতা ফিল্টারিং ব্যবস্থা অস্পষ্ট বাজারের অস্থিরতা এড়াতে পারে।

  2. ক্যান্টনার ট্রানজিট মূল্যায়ন করেছে যে দাম একটি গুরুত্বপূর্ণ এলাকা অতিক্রম করেছে।

  3. সিসিআই এবং আরএসআই সুপার-বই ওভার-সেল সংকেত দেওয়ার সময়কে আরও সঠিক বলে মনে করে।

  4. তবে, এই ব্যবসায়ের ক্ষেত্রে, কিছু ভুয়া ঊর্ধ্বগতি এড়ানো সম্ভব।

কৌশলগত ঝুঁকি

এই কৌশলটি নিম্নলিখিত ঝুঁকির সাথে জড়িতঃ

  1. প্রবণতা বিচার প্রক্রিয়া অসম্পূর্ণ, একটি শক্তিশালী প্রবণতা সুযোগ মিস করা হতে পারে। বিভিন্ন গড় লাইন প্যারামিটার পরীক্ষা করা যেতে পারে।

  2. সূচক প্যারামিটারগুলি ভুলভাবে সেট করা হয়েছে, যা গুরুত্বপূর্ণ ট্রেডিং সময়গুলি মিস করতে পারে বা ভুল সংকেত তৈরি করতে পারে। প্যারামিটারগুলি অপ্টিমাইজ করা যেতে পারে।

  3. যখন লেনদেনের ভলিউম বাড়ানোর প্রভাব সুস্পষ্ট নয়, তখন একটি নির্দিষ্ট ভুয়া ব্রেকআপের ঝুঁকি রয়েছে। বিভিন্ন লেনদেনের ভলিউম বাড়ানোর গুণগুলি পরীক্ষা করা যেতে পারে।

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

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ

  1. বিভিন্ন প্রকারের এবং দৈর্ঘ্যের গড় রেখা পরীক্ষা করে, প্রবণতা ফিল্টারিং প্যারামিটারগুলির জন্য আরও উপযুক্ত খুঁজুন।

  2. ক্যান্টনার চ্যানেল, সিসিআই, আরএসআই ইত্যাদির প্যারামিটারগুলিকে অপ্টিমাইজ করা যাতে সংকেতগুলি আরও নির্ভুল হয়।

  3. বিভিন্ন লেনদেনের পরিমাণ পরীক্ষা করে আরও উপযুক্ত গুণ খুঁজে বের করুন।

  4. একক লেনদেনের সর্বাধিক ক্ষতি নিয়ন্ত্রণ করতে স্টপ লস কৌশল অন্তর্ভুক্ত করার কথা বিবেচনা করা যেতে পারে।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Custom Keltner CCI Strategy with Trend Filter", overlay=true )
// 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(title="MA Type", options=["OFF", "SMA", "EMA", "SMMA", "CMA", "TMA"], defval="OFF")
trendFilterMethod = input(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(0, title="Volume Multiplier", type=input.float, step=0.1, minval=0)
// Define Moving Averages
var float maValue = na
if (maType == "SMA")
    maValue := sma(close, maLength)
else if (maType == "EMA")
    maValue := ema(close, maLength)
else if (maType == "SMMA")
    maValue := na(maValue[1]) ? sma(close, maLength) : (maValue[1] * (maLength - 1) + close) / maLength
else if (maType == "CMA")
    maValue := na(maValue[1]) ? sma(close, maLength) : (sma(close, maLength) + (sma(close, maLength) - maValue[1])) / 2
else if (maType == "TMA")
    maValue := sma(sma(close, round(maLength/2)), 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 = sma(typicalPrice, lengthKC)
range = multKC * atr(lengthKC)
upperChannel = middleLine + range
lowerChannel = middleLine - range
// CCI
cci = cci(close, lengthCCI)
// RSI
rsi = rsi(close, rsiPeriod)
// Volume
volCondition = volume > sma(volume, 50) * volumeMultiplier
// Combined Entry Conditions with Trend Filter
longCondition := longCondition and cci < oversoldCCI and low < lowerChannel and rsi < rsiOversold and volCondition
shortCondition := shortCondition and cci > overboughtCCI and high > upperChannel and rsi > rsiOverbought and volCondition
// Execute orders at the open of the new bar after conditions are met
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)
// Exit Conditions
strategy.close("Long", when = cci > 0)
strategy.close("Short", when = cci < 0)
// Plotting
plot(upperChannel, color=color.red, linewidth=1)
plot(lowerChannel, color=color.green, linewidth=1)
hline(overboughtCCI, "Overbought", color=color.red)
hline(oversoldCCI, "Oversold", color=color.green)