وسائل لوڈ ہو رہے ہیں... لوڈنگ...

متحرک سی سی آئی سپورٹ اور مزاحمت کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-22 16:37:46
ٹیگز:

img

جائزہ

یہ حکمت عملی CCI اشارے کے محور پوائنٹس کو متحرک معاونت اور مزاحمت کی سطحوں کا حساب لگانے کے لئے استعمال کرتی ہے ، اور خرید و فروخت کے سگنل تلاش کرنے کے لئے رجحان کی تشخیص کو جوڑتی ہے۔ یہ حکمت عملی CCI کی الٹ خصوصیات اور منافع کے لئے درمیانی مدتی رجحان میں الٹ پوائنٹس کو پکڑنے کے لئے رجحان کی نگرانی کی صلاحیت کو مربوط کرتی ہے۔

حکمت عملی کا اصول

سی سی آئی اشارے سے پتہ چلتا ہے کہ آیا مارکیٹ بہت کمزور ہے یا بہت مضبوط ہے۔ 80 اور -80 کے دو انتہا پسندیوں کا استعمال اس بات کا تعین کرنے کے لئے کیا جاسکتا ہے کہ آیا مارکیٹ نے زیادہ خرید یا زیادہ فروخت کی حالت میں داخل ہوچکا ہے۔ یہ حکمت عملی سی سی آئی کی اس خصوصیت کا استعمال کرتی ہے۔ بائیں اور دائیں 50 سلاخوں کے محور پوائنٹس کا حساب لگاتے ہوئے ، اوپری اور نچلے محور پوائنٹس حاصل کیے جاتے ہیں۔ پھر محور پوائنٹس کی بنیاد پر بفر کو شامل یا گھٹاتے ہوئے معاونت اور مزاحمت کی لائنوں کو متحرک طور پر تعمیر کیا جاتا ہے۔

خرید کا اشارہ اس وقت پیدا ہوتا ہے جب بندش کھلی سطح سے زیادہ اور اوپری سپورٹ کی سطح سے کم ہوتی ہے۔ فروخت کا اشارہ اس وقت پیدا ہوتا ہے جب بندش کھلی سطح سے کم اور کم مزاحمت کی سطح سے زیادہ ہوتی ہے۔ مرکزی رجحان کی سمت کے خلاف تجارتی اشاروں کو فلٹر کرنے کے لئے ، حکمت عملی موجودہ مرکزی رجحان کی سمت کا تعین کرنے کے لئے ای ایم اے اور ڈھلوان کے اشارے کو بھی جوڑتی ہے۔ طویل اندراج کی تجارت صرف اس وقت کی جاتی ہے جب رجحان کو تیزی سے طے کیا جاتا ہے۔ مختصر اندراج کی تجارت صرف اس وقت کی جاتی ہے جب رجحان کو bearish کے طور پر طے کیا جاتا ہے۔

اسٹاپ نقصان اور منافع لینے کا حساب متحرک طور پر اے ٹی آر اشارے کی بنیاد پر کیا جاتا ہے ، جس سے اس حکمت عملی کا رسک کنٹرول زیادہ معقول ہوجاتا ہے۔

فوائد کا تجزیہ

  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)



مزید