
এই কৌশলটি সিসিআই সূচকের উপর ভিত্তি করে একটি নমনীয় ট্রেডিং সিস্টেম ডিজাইন করেছে। এটি সিসিআই সূচকের 0 অক্ষের উপর দিয়ে বা নীচে দিয়ে ট্রেডিং সিগন্যাল প্রেরণ করতে পারে, বা কাস্টম আপ-ডাউন চ্যানেল ব্যান্ড এবং চ্যানেল ব্যান্ড ক্রস দ্বারা সংকেত প্রেরণ করতে পারে। কৌশলটি স্থির স্টপ লস, স্টপ স্টপ অনুপাত সেট করতে পারে, পাশাপাশি সময়সীমার ট্রেডিং এবং দৈনিক স্থির সময়সীমার ট্রেডিং ইত্যাদির মতো একাধিক বৈশিষ্ট্য রয়েছে।
সিসিআই সূচকের ০-অক্ষের ক্রস ব্যবহার করে বাজারের প্রবণতা নির্ধারণ করা হয়, সিসিআই ০-অক্ষের উপর দিয়ে একটি উর্ধ্বমুখী সংকেত এবং সিসিআই ০-অক্ষের নীচে দিয়ে একটি নেতিবাচক সংকেত।
কাস্টমাইজড CCI আপ এবং ডাউন চ্যানেল ব্যান্ডের মাধ্যমে, যখন CCI আপ চ্যানেল ব্যান্ডটি পজিটিভ সিগন্যাল হিসাবে পরিধান করে, তখন CCI ডাউন চ্যানেল ব্যান্ডটি পজিটিভ সিগন্যাল হিসাবে পরিধান করে। চ্যানেল ব্যান্ডটি ক্রস করা স্টপ লস সিগন্যাল।
শুধুমাত্র নির্দিষ্ট সময়ের মধ্যে লেনদেন করতে পারেন, এবং লেনদেন না করার সময় প্লেইন পজিশনে থাকতে পারেন। প্রতিদিনের নির্দিষ্ট সময়ের লেনদেন করতে পারেন
স্থির স্টপ লস এবং স্টপ স্টপ অনুপাত সেট করা যায়।
কাস্টমাইজড ট্রেডিং এ এলার্ট বার্তা।
নীতিগুলি সম্পূর্ণরূপে কাস্টমাইজযোগ্য এবং নমনীয়, CCI প্যারামিটার, ট্রানজিট প্যারামিটার, স্টপ-ডু-স্টপ প্যারামিটার ইত্যাদির মতো অপ্টিমাইজেশন কৌশলগুলি সামঞ্জস্য করা যায়।
সিসিআই সূচকগুলি বাজার প্রবণতা নির্ধারণের জন্য ব্যবহৃত হয়, সিসিআই দামের পরিবর্তনের প্রতি সংবেদনশীল এবং দ্রুত বাজার পরিবর্তনের পয়েন্টগুলি ক্যাপচার করতে পারে।
কাস্টম চ্যানেল ব্যান্ড বিভিন্ন বাজারের প্যারামিটার অনুযায়ী সামঞ্জস্য করতে পারে, চ্যানেল ব্যান্ড ক্রস স্টপ লস কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করতে পারে।
একাধিক ট্রেডিং সময় সেটআপ সমর্থন করে, বিভিন্ন সময়কালের বৈশিষ্ট্যগুলি ব্যবহার করে অতিরিক্ত উপার্জনের জন্য কৌশলগত প্যারামিটারগুলিকে বিভিন্ন সময়কালের সাথে সামঞ্জস্য করতে পারে।
ফিক্সড স্টপ লস স্টপ সেটিং সমর্থন করে, যা লাভ-ক্ষতির অনুপাতের পূর্বনির্ধারণ করে এবং স্বতন্ত্র লেনদেনের ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করে।
সম্পূর্ণরূপে কাস্টমাইজযোগ্য প্যারামিটার, বিভিন্ন জাত এবং বাজারের অবস্থার জন্য কৌশলগতভাবে অপ্টিমাইজ করা যায়, যা আরও ভাল ফলাফল দেয়।
সিসিআই সূচকগুলি দামের পরিবর্তনের প্রতি সংবেদনশীল এবং কিছু মিথ্যা সংকেত তৈরি করতে পারে, যা দীর্ঘ সময়ের সূচকগুলির সাথে মিলিত হওয়া উচিত।
ফিক্সড স্টপ লস স্টপ রেসিপি মার্কেটের পরিবর্তনের সাথে সামঞ্জস্যপূর্ণ নয়, অনুপাতটি যথাযথভাবে সংরক্ষণ করা উচিত।
স্থির ট্রেডিং সময়গুলি বাজারের সংক্ষিপ্ত রেখার সমন্বয় করার সুযোগগুলি হারাতে পারে, যথাযথভাবে ট্রেডিংয়ের মূল্যবান সময়গুলি নির্বাচন করা উচিত।
প্যারামিটারগুলিকে ঘন ঘন অপ্টিমাইজ করা দরকার, যদি অপ্টিমাইজেশানটি ভুল হয় তবে এটি অত্যধিক লেনদেন বা ব্যবসায়ের সুযোগগুলি মিস করতে পারে।
এটি শিল্পের পরিস্থিতি, ম্যাক্রো পরিবেশ এবং অন্যান্য বিষয়গুলির সাথে একত্রিত করা প্রয়োজন, কেবলমাত্র প্যারামিটার অপ্টিমাইজেশনের উপর নির্ভর করে ঝুঁকিগুলি সম্পূর্ণরূপে এড়ানো যায় না।
সিসিআই-এর ভুল সংকেত এড়ানোর জন্য দীর্ঘ ও স্বল্প-চক্রের সূচকগুলির সাথে একত্রিত হয়ে যাচাই করুন।
ATR এর মত সূচক ব্যবহার করে গতিশীল স্টপ লস স্টপ সেট করুন।
বিভিন্ন সময়সীমার পরামিতিগুলির প্রভাব পরীক্ষা করুন এবং ট্রেডিংয়ের কার্যকর সময় নির্বাচন করুন।
সিসিআই প্যারামিটার, চ্যানেল ব্যান্ড প্যারামিটার অপ্টিমাইজ করুন, বাজার পরিবর্তনের সাথে খাপ খাইয়ে নিন।
প্রবণতা, অস্থিরতা, লেনদেনের পরিমাণ ইত্যাদির মতো বিভিন্ন বিষয় বিবেচনা করে সমন্বিত সিদ্ধান্ত নেওয়া।
ট্রেডিংয়ের ধরন অনুযায়ী উপযুক্ত ট্রেডিং সময় নির্বাচন করুন।
মেশিন লার্নিং অ্যালগরিদম ব্যবহারের কথা ভাবুন এবং আপনার কৌশলগুলিকে স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করুন।
এই কৌশলটি সামগ্রিকভাবে একটি খুব নমনীয় এবং কাস্টমাইজযোগ্য প্রবণতা ট্র্যাকিং ট্রেডিং সিস্টেম। CCI ট্রেন্ডিং, কাস্টম চ্যানেল ব্যান্ডের ঝুঁকি নিয়ন্ত্রণ, ফিক্সড স্টপ লস সেট এবং ট্রেডিং সময়কাল নির্বাচন করার সুবিধা রয়েছে। CCI ভুয়া সংকেত তৈরি করতে পারে, ফিক্সড স্টপ লস অনুপাত গতিশীলভাবে সামঞ্জস্য করতে পারে না, ইত্যাদির বিষয়েও মনোযোগ দেওয়া দরকার। ভবিষ্যতে অপ্টিমাইজেশন প্যারামিটার, ট্রেডিং সিগন্যাল নির্বাচন এবং উচ্চ কার্যকারিতা সময়কাল নির্বাচন ইত্যাদির ক্ষেত্রে কৌশলগত উন্নতি করা যেতে পারে এবং মেশিন লার্নিং এবং অন্যান্য অ্যালগরিদমের বুদ্ধিমান পরিচালনার প্রবর্তন করা যেতে পারে, যাতে কৌশলগুলি স্বয়ংক্রিয়ভাবে বাজারের পরিবর্তনের সাথে খাপ খাইয়ে নিতে পারে, যার ফলে আরও স্থিতিশীল অতিরিক্ত আয় পাওয়া যায়।
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 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/
// © REV0LUTI0N
//@version=4
strategy(title="CCI Strategy", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)
//CCI Code
length = input(20, minval=1, title="CCI Length")
src = input(close, title="Source")
ma = sma(src, length)
cci = (src - ma) / (0.015 * dev(src, length))
// Strategy Backtesting
startDate = input(timestamp("2099-10-01T00:00:00"), type = input.time, title='Backtesting Start Date')
finishDate = input(timestamp("9999-12-31T00:00:00"), type = input.time, title='Backtesting End Date')
time_cond = true
//Time Restriction Settings
startendtime = input("", title='Time Frame To Enter Trades')
enableclose = input(false, title='Enable Close Trade At End Of Time Frame')
timetobuy = true
timetoclose = true
//Strategy Settings
//Strategy Settings - Enable Check Boxes
enableentry = input(true, title="Enter First Trade ASAP")
enableconfirmation = input(false, title="Wait For Cross To Enter First Trade")
enablezero =input(true, title="Use CCI Simple Cross Line For Entries & Exits")
enablebands = input(false, title="Use Upper & Lower Bands For Entries & Exits")
//Strategy Settings - Band Sources
ccisource = input(0, title="CCI Simple Cross")
upperbandsource =input(100, title="CCI Enter Long Band")
upperbandexitsource =input(100, title="CCI Exit Long Band")
lowerbandsource =input(-100, title="CCI Enter Short Band")
lowerbandexitsource =input(-100, title="CCI Exit Short Band")
//Strategy Settings - Crosses
simplecrossup = crossover(cci, ccisource)
simplecrossdown = crossunder(cci, ccisource)
uppercrossup = crossover(cci, upperbandsource)
lowercrossdown = crossunder(cci, lowerbandsource)
uppercrossdown = crossunder(cci, upperbandexitsource)
lowercrossup = crossover(cci, lowerbandexitsource)
upperstop = crossunder(cci, upperbandsource)
lowerstop = crossover(cci, lowerbandsource)
// Stop Loss & Take Profit % Based
enablesl = input(false, title='Enable Stop Loss')
enabletp = input(false, title='Enable Take Profit')
stopTick = input(5.0, title='Stop Loss %', type=input.float, step=0.1) / 100
takeTick = input(10.0, title='Take Profit %', type=input.float, step=0.1) / 100
longStop = strategy.position_avg_price * (1 - stopTick)
shortStop = strategy.position_avg_price * (1 + stopTick)
shortTake = strategy.position_avg_price * (1 - takeTick)
longTake = strategy.position_avg_price * (1 + takeTick)
plot(strategy.position_size > 0 and enablesl ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 and enablesl ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 and enabletp ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 and enabletp ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")
// Alert messages
message_enterlong = input("", title="Long Entry message")
message_entershort = input("", title="Short Entry message")
message_closelong = input("", title="Close Long message")
message_closeshort = input("", title="Close Short message")
//Strategy Execution
//Strategy Execution - Simple Line Cross
if (cci > ccisource and enablezero and enableentry and time_cond and timetobuy)
strategy.entry("Long", strategy.long, alert_message = message_enterlong)
if (cci < ccisource and enablezero and enableentry and time_cond and timetobuy)
strategy.entry("Short", strategy.short, alert_message = message_entershort)
if (simplecrossup and enablezero and enableconfirmation and time_cond and timetobuy)
strategy.entry("Long", strategy.long, alert_message = message_enterlong)
if (simplecrossdown and enablezero and enableconfirmation and time_cond and timetobuy)
strategy.entry("Short", strategy.short, alert_message = message_entershort)
//Strategy Execution - Upper and Lower Band Entry
if (uppercrossup and enablebands and time_cond and timetobuy)
strategy.entry("Long", strategy.long, alert_message = message_enterlong)
if (lowercrossdown and enablebands and time_cond and timetobuy)
strategy.entry("Short", strategy.short, alert_message = message_entershort)
//Strategy Execution - Upper and Lower Band Exit
if strategy.position_size > 0 and uppercrossdown and enablebands and time_cond and timetobuy
strategy.close_all(alert_message = message_closelong)
if strategy.position_size < 0 and lowercrossup and enablebands and time_cond and timetobuy
strategy.close_all(alert_message = message_closeshort)
//Strategy Execution - Upper and Lower Band Stops
if strategy.position_size > 0 and upperstop and enablebands and time_cond and timetobuy
strategy.close_all(alert_message = message_closelong)
if strategy.position_size < 0 and lowerstop and enablebands and time_cond and timetobuy
strategy.close_all(alert_message = message_closeshort)
//Strategy Execution - Close Trade At End Of Time Frame
if strategy.position_size > 0 and timetoclose and enableclose and time_cond
strategy.close_all(alert_message = message_closelong)
if strategy.position_size < 0 and timetoclose and enableclose and time_cond
strategy.close_all(alert_message = message_closeshort)
//Strategy Execution - Stop Loss and Take Profit
if strategy.position_size > 0 and enablesl and time_cond
strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enablesl and time_cond
strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)
if strategy.position_size > 0 and enabletp and time_cond
strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enabletp and time_cond
strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)