গতিশীল CCI সমর্থন এবং প্রতিরোধ কৌশল


সৃষ্টির তারিখ: 2024-01-22 16:37:46 অবশেষে সংশোধন করুন: 2024-01-22 16:37:46
অনুলিপি: 1 ক্লিকের সংখ্যা: 725
1
ফোকাস
1617
অনুসারী

গতিশীল CCI সমর্থন এবং প্রতিরোধ কৌশল

ওভারভিউ

এই কৌশলটি CCI সূচকের কেন্দ্রবিন্দুগুলিকে ব্যবহার করে গতিশীল সমর্থন এবং প্রতিরোধের অবস্থানগুলি গণনা করে এবং ট্রেন্ডিংয়ের সাথে মিলিত হয়ে ক্রয় এবং বিক্রয় সংকেতগুলি সন্ধান করে। এই কৌশলটি CCI এর বিপরীত বৈশিষ্ট্য এবং ট্রেন্ড ট্র্যাকিংয়ের ক্ষমতাকে সংযুক্ত করে, যা মধ্যবর্তী ট্রেন্ডের বিপরীত দিকগুলিকে মুনাফা অর্জনের জন্য ব্যবহার করা হয়।

কৌশল নীতি

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

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

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

সামর্থ্য বিশ্লেষণ

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

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

  1. সিসিআই সূচকগুলি প্রবণতা ফিল্টারিংয়ের সাথে মিথ্যে সংকেত তৈরি করতে পারে।
  2. “এটা নিশ্চিত নয় যে, এই পদক্ষেপ সফল হবে, তবে এটা নিশ্চিত যে, এই পদক্ষেপের ফলে ক্ষতির সম্ভাবনা রয়েছে”।
  3. প্যারামিটার সেটিং ভুল হলে, ট্রেডিংয়ের সুযোগ মিস হতে পারে।

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

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

  1. বাফার জোনের আকার অনুকূলিতকরণ, বিভিন্ন ওঠানামার বাজারের সাথে খাপ খাইয়ে নেওয়া।
  2. আরও সঠিক গতিশীল স্টপ লস স্টপ অর্জনের জন্য ATR চক্রের প্যারামিটারগুলি অপ্টিমাইজ করুন।
  3. বিভিন্ন CCI প্যারামিটার সেটিং চেষ্টা করুন।
  4. অন্যান্য প্রবণতা নির্ণয়কারী সূচকের কার্যকারিতা পরীক্ষা করুন।

সারসংক্ষেপ

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

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © AliSignals


//@version=5
strategy("CCI based support and resistance strategy", overlay=true  )


cci_length = input.int(50, "cci length")
right_pivot = input.int(50, "right pivot")
left_pivot = input.int(50, "left pivot")
buffer = input.float(10.0, "buffer")
trend_matter = input.bool(true, "trend matter?")
showmid = input.bool ( false , "show mid?")
trend_type = input.string("cross","trend type" ,options = ["cross","slope"])
slowma_l = input.int(100, "slow ma length")
fastma_l = input.int(50, "fast ma length")
slope_l = input.int(5,  "slope's length for trend detection")
ksl = input.float(1.1)
ktp = input.float(2.2)
restf = input.timeframe(title="Time Frame of Last Period for Calculating max" , defval="D")



// Calculating Upper and Lower CCI
cci = ta.cci(hlc3,cci_length)

uppercci = 0.0
lowercci = 0.0

uppercci := fixnan(ta.pivothigh(cci, left_pivot, right_pivot)) - buffer
lowercci := fixnan(ta.pivotlow (cci, left_pivot, right_pivot)) + buffer
midccci  = math.avg(uppercci,lowercci)


// Support and Resistance based on CCI
res = uppercci*(0.015*ta.dev(hlc3,cci_length))+ ta.sma(hlc3,cci_length)
sup = lowercci*(0.015*ta.dev(hlc3,cci_length))+ ta.sma(hlc3,cci_length)
mid =  midccci*(0.015*ta.dev(hlc3,cci_length))+ ta.sma(hlc3,cci_length)



// Calculating trend
t_cross  = 0
t_cross := ta.ema(close,fastma_l) > ta.ema(close,slowma_l) ? 1 : ta.ema(close,fastma_l) < ta.ema(close,slowma_l) ? -1 : t_cross[1] 

t_slope  = 0
t_slope := ta.ema(close,slowma_l) > ta.ema(close,slowma_l)[slope_l] ? 1 : ta.ema(close,slowma_l) < ta.ema(close,slowma_l)[slope_l]  ? -1 : t_slope[1] 

t  = 0
t := trend_type == "cross" ? t_cross : trend_type == "slope" ? t_slope : na

colort =  trend_matter == false ? color.rgb(201, 251, 0) : t == 1 ? color.rgb(14, 243, 132) :  t == -1 ? color.rgb(255, 34, 34) : na
bull_t = trend_matter == false or t ==  1
bear_t = trend_matter == false or t == -1

plot(res, color = colort)
plot(sup, color = colort)
plot(showmid == true ? mid : na)


// Long and Short enter condition
buy  = bull_t == 1 and ta.lowest (2) < sup and close > open and close > sup
sell = bear_t == 1 and ta.highest(2) > res and close < open and close < res

plotshape( buy , color=color.rgb(6, 255, 23) , location = location.belowbar, style = shape.triangleup  , size = size.normal)
plotshape( sell, color=color.rgb(234, 4, 4) ,  location = location.abovebar, style = shape.triangledown, size = size.normal)





atr = ta.atr(100)



CLOSE=request.security(syminfo.tickerid, restf, close)
max = 0.0
max := CLOSE == CLOSE[1] ? math.max(max[1], atr) : atr
act_atr = 0.0
act_atr := CLOSE == CLOSE[1] ? act_atr[1] : max[1]

atr1 =  math.max(act_atr, atr) 

dis_sl = atr1 * ksl
dis_tp = atr1 * ktp


var float longsl  = open[1] - dis_sl
var float shortsl = open[1] + dis_sl
var float longtp =   open[1] + dis_tp
var float shorttp =  open[1] - dis_tp


longCondition = buy
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = sell
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)


longsl  := strategy.position_size > 0  ? longsl[1]  : close - dis_sl
shortsl := strategy.position_size < 0 ? shortsl[1] : close + dis_sl
longtp  := strategy.position_size > 0  ? longtp[1]  : close + dis_tp
shorttp := strategy.position_size < 0 ? shorttp[1] : close - dis_tp




if strategy.position_size > 0 
    strategy.exit(id="My Long close Id", from_entry ="My Long Entry Id" , stop=longsl, limit=longtp)
if strategy.position_size < 0 
    strategy.exit(id="My Short close Id", from_entry ="My Short Entry Id" , stop=shortsl, limit=shorttp)