
এই কৌশলটি কমোডিটি চ্যানেল ইনডেক্স (CCI) সূচকের উপর ভিত্তি করে তৈরি করা হয়েছে যাতে ওভারসোল্ডের ক্ষেত্রে ওভারসোল্ড করা যায় এবং ওভারসোল্ডের ক্ষেত্রে ওভারসোল্ড করা যায়। এটি ট্রেন্ডিংয়ের দিকনির্দেশনা শুধুমাত্র নিয়ন্ত্রণ করতে ইন্ডেক্সের মুভিং এভারেজ (EMA) ফিল্টার ব্যবহার করে। এই কৌশলটি একটি স্টপ লস অফার করে যা একটি নির্দিষ্ট শতাংশ বা গড় বাস্তব পরিসীমা (ATR) এর উপর ভিত্তি করে।
সিসিআই ব্যবহার করে বাজারের প্রবণতা নির্ধারণ করা
CCI একটি নির্দিষ্ট সময়ের মধ্যে বর্তমান মূল্যের সাথে গড় মূল্যের তুলনা করে গতিশীলতা পরিমাপ করে
সিসিআই ১৫০ এর উপরে ওভারবয়, -১০০ এর নিচে ওভারসোল
ইএমএ ফিল্টার ব্যবহার করুন
ইএমএ-এর উপরে ওভার, ইএমএ-র নিচে ওভার
EMA ব্যবহার করে ট্রেডিংয়ের দিকনির্দেশনা জেনে নিন, ট্রেডিংয়ের বিরুদ্ধে ট্রেড করবেন না
দুইটি স্টপ-অফ-লুস্ট পদ্ধতি
নির্দিষ্ট শতাংশের উপর ভিত্তি করে স্টপ লস স্টপঃ স্টপ লস স্টপ সেট করার জন্য প্রবেশ মূল্যের একটি নির্দিষ্ট শতাংশ ব্যবহার করুন
এটিআর-ভিত্তিক স্টপ লসঃ এটিআর-এর গুণিতক ব্যবহার করে স্টপ লস সেট করুন এবং তারপরে রিস্ক-রিটার্ন অনুপাতের ভিত্তিতে স্টপ লস গণনা করুন
প্রবেশের শর্ত
সিসিআই-এর ১০০-এর লাইন অতিক্রম করার সময় আরো কাজ করা
সিসিআইয়ের অধীনে ১৫০ লাইন অতিক্রম করার সময় ফাঁকা
ইএমএ সক্রিয় থাকলে, কেবলমাত্র ইএমএর চেয়ে বেশি দামের জন্য অতিরিক্ত করুন, ইএমএর চেয়ে কম দামের জন্য শূন্য করুন
খেলার শর্ত
মূল্য বন্ধের সমতলতা স্পর্শ করেছে
সিসিআই পুনরায় ওভারবয় ওভারসেল অঞ্চলে প্রবেশের সময় স্থগিত
মানচিত্র
সিসিআই ব্যবহার করে ওভারবয় ওভারসোলের বিচার করা হয়, যা সিসিআই সূচকের একটি ক্লাসিক ব্যবহার
বিকল্প ইএমএ নিশ্চিত করে যে ট্রেডিং শুধুমাত্র প্রবণতার দিকনির্দেশে হয় এবং বিপরীতমুখী হয় না
দুইটি স্টপ-অফ-স্টপ পদ্ধতি প্রদান করা হয়েছে, যার পরামিতিগুলি বাজারের উপর নির্ভর করে পরিবর্তন করা যায়
সিসিআই সূচক অনুসারে আবারও ওভার-বয় ওভার-সেল অঞ্চলে পজিশনের জন্য পজিশন বন্ধ করুন, প্রবণতা বিপরীত মুনাফা লক করুন
ম্যাপে সিসিআই সংকেত দেখাচ্ছে, যা সহজেই পড়া যায়
কৌশলগত লজিক পরিষ্কার, সহজ, সহজে বোঝা যায় এবং অপ্টিমাইজ করা যায়
সিসিআই সূচকটি পিছিয়ে রয়েছে, যা মিসড রিভার্স বা মিথ্যা সংকেত তৈরি করতে পারে
EMA প্যারামিটার সেটিং ভুল হলে ট্রেন্ড মিস হতে পারে বা কৌশলকে অকার্যকর করে দিতে পারে
শতকরা স্টপ লস স্টপ বাজার পরিবর্তনের সাথে খাপ খাইয়ে নিতে অসুবিধা হয়, একটি বিস্তৃত প্যারামিটার দেওয়া হয়
ATR স্টপডাউন থামাতে সময়সীমা চক্র সংবেদনশীল, সর্বোত্তম প্যারামিটার থেকে সমন্বয় করা উচিত
প্রত্যাহারের ঝুঁকি বেশি, পজিশন ব্যবস্থাপনা যথাযথভাবে সংশোধন করা উচিত
কার্যকারিতা পরিবর্তিত বাজার পরিবেশের সাথে, সূচক প্যারামিটারগুলি যথাযথভাবে মূল্যায়ন করা উচিত
CCI প্যারামিটারগুলি বিভিন্ন পিরিয়ডের জন্য মূল্যায়ন করুন এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন
বিভিন্ন ইএমএ চক্র পরীক্ষা করুন এবং সবচেয়ে উপযুক্ত প্রবণতা বিচার চক্র নির্ধারণ করুন
স্টপ লস স্টপ প্যারামিটারগুলিকে সর্বোত্তম রিস্ক-টু-রেট অনুপাতের জন্য সামঞ্জস্য করুন
অন্যান্য ফিল্টার শর্তাবলী যোগ করুন, যেমন লেনদেনের পরিমাণ, আরও জাল সংকেতগুলি ফিল্টার করতে
ট্রেন্ড লাইন বা গ্রাফিকের সাথে মিলিত হয়ে ফর্মাল বিচার করুন এবং এর কার্যকারিতা বাড়ান
পজিশন ম্যানেজমেন্ট কৌশল যেমন পজিশন ফিক্সিং, যা প্রত্যাহারের ঝুঁকি নিয়ন্ত্রণ করে
বিভিন্ন বাজার পরিবেশে তথ্য, গতিশীল সমন্বয় পরামিতি
এই কৌশলটি সিসিআই সূচকটির ক্লাসিক ওভারবয় ওভারসেল নীতি ব্যবহার করে প্রবেশ করে। ইএমএ ফিল্টার যুক্ত করুন যা প্রবণতার দিকটি নিয়ন্ত্রণ করতে পারে। দুটি স্টপ লস স্টপ পদ্ধতি সহজেই সামঞ্জস্য করতে পারে। স্ট্রাইকিং সিগন্যালগুলি অঙ্কন করা সহজেই পড়তে পারে। কৌশলগত যুক্তিটি সহজ এবং সহজেই বোঝা যায় এবং অপ্টিমাইজ করা যায়। প্যারামিটারগুলি সামঞ্জস্য করা, ফিল্টার শর্তগুলি যুক্ত করা, ঝুঁকি নিয়ন্ত্রণ ইত্যাদির মাধ্যমে কার্যকারিতা আরও বাড়ানো যেতে পারে।
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 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/
// © alifer123
//@version=5
// strategy("CCI+EMA Strategy with Percentage or ATR TP/SL [Alifer]", shorttitle = "CCI_EMA_%/ATR_TP/SL", overlay=false,
// initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.045)
length = input(14, "CCI Length")
overbought = input.int(150, step = 10, title = "Overbought")
oversold = input.int(-140, step = 10, title = "Oversold")
src = hlc3
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))
// EMA
useEMA = input(true, "Use EMA", tooltip = "Only enters long when price is above the EMA, only enters short when price is below the EMA")
emaLength = input(55, "EMA Length")
var float ema = na
if useEMA
ema := ta.ema(src, emaLength)
// Take Profit and Stop Loss Method
tpSlMethod_percentage = input(true, "Percentage TP/SL", group="TP/SL Method")
tpSlMethod_atr = input(false, "ATR TP/SL", group="TP/SL Method")
// Percentage-based Take Profit and Stop Loss
tp_percentage = input.float(10.0, title="Take Profit (%)", step=0.1, group="TP/SL Method")
sl_percentage = input.float(10.0, title="Stop Loss (%)", step=0.1, group="TP/SL Method")
// ATR-based Take Profit and Stop Loss
atrLength = input(20, title="ATR Length", group="TP/SL Method")
atrMultiplier = input(4, title="ATR SL Multiplier", group="TP/SL Method")
riskRewardRatio = input(2, title="Risk Reward Ratio", group="TP/SL Method")
// Calculate TP/SL levels based on the selected method, or leave them undefined if neither method is selected
longTP = tpSlMethod_percentage ? strategy.position_avg_price * (1 + tp_percentage / 100) : na
longSL = tpSlMethod_percentage ? strategy.position_avg_price * (1 - sl_percentage / 100) : na
shortTP = tpSlMethod_percentage ? strategy.position_avg_price * (1 - tp_percentage / 100) : na
shortSL = tpSlMethod_percentage ? strategy.position_avg_price * (1 + sl_percentage / 100) : na
if tpSlMethod_atr
longSL := strategy.position_avg_price - ta.atr(atrLength) * atrMultiplier
longTP := ((strategy.position_avg_price - longSL) * riskRewardRatio) + strategy.position_avg_price
shortSL := strategy.position_avg_price + ta.atr(atrLength) * atrMultiplier
shortTP := ((strategy.position_avg_price - shortSL) * riskRewardRatio) - strategy.position_avg_price
// Enter long position when CCI crosses below oversold level and price is above EMA
longCondition = ta.crossover(cci, oversold) and (not useEMA or close > ema)
if longCondition
strategy.entry("Buy", strategy.long)
// Enter short position when CCI crosses above overbought level and price is below EMA
shortCondition = ta.crossunder(cci, overbought) and (not useEMA or close < ema)
if shortCondition
strategy.entry("Sell", strategy.short)
// Close long positions with Take Profit or Stop Loss
if strategy.position_size > 0
strategy.exit("Long Exit", "Buy", limit=longTP, stop=longSL)
// Close short positions with Take Profit or Stop Loss
if strategy.position_size < 0
strategy.exit("Short Exit", "Sell", limit=shortTP, stop=shortSL)
// Close positions when CCI crosses back above oversold level in long positions or below overbought level in short positions
if ta.crossover(cci, overbought)
strategy.close("Buy")
if ta.crossunder(cci, oversold)
strategy.close("Sell")
// Plotting
color_c = cci > overbought ? color.red : (cci < oversold ? color.green : color.white)
plot(cci, "CCI", color=color_c)
hline(0, "Middle Band", color=color.new(#787B86, 50))
obband = hline(overbought, "OB Band", color=color.new(#78867a, 50))
osband = hline(oversold, "OS Band", color=color.new(#867878, 50))
fill(obband, osband, color=color.new(#787B86, 90))