یہ حکمت عملی کلاسیکی تکنیکی اشارے سی سی آئی اور خود تیار کردہ وی سی آئی اور ایم سی آئی ڈبل انڈیکس کو مل کر تجارتی سگنل بناتی ہے ، جو ایک عام مقداری تجارتی حکمت عملی ہے۔ حجم اور قیمت کی تبدیلیوں کے رجحان اور رفتار کی نشاندہی کرکے ، یہ موجودہ مارکیٹ کی اہم سمت کا تعین کرتا ہے اور تجارتی سگنل بناتا ہے۔ یہ مالیاتی آلات جیسے ڈیجیٹل کرنسیوں ، غیر ملکی کرنسی اور اسٹاک کے لئے وسیع پیمانے پر استعمال کیا جاسکتا ہے۔
یہ حکمت عملی مارکیٹ کے جذبات کا اندازہ کرنے کے لئے قیمت اور تجارتی حجم جیسے عوامل کو مدنظر رکھتے ہوئے ، دوہری سی سی آئی انڈیکس کا موازنہ کرکے تجارتی سگنل تشکیل دیتی ہے۔ یہ ایک عام اور عملی مقداری تجارتی حکمت عملی ہے۔ لیکن اس حکمت عملی کی تاثیر کو زیادہ سے زیادہ کرنے کے لئے اسے اب بھی دوسرے معاون ٹولز کے ساتھ استعمال کرنے کی ضرورت ہے۔ خطرات کو کم کرتے ہوئے قابل اطلاق منظرناموں کو مزید بہتر بنانے اور بڑھانے کے قابل ہے۔
/*backtest start: 2023-10-28 00:00:00 end: 2023-11-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("MCI and VCI - Modified CCI Formulas") test = cci(ohlc4, 13) test1 = cci(ohlc4, 20) obv(src) => cum(change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume) mDisc = input(0, title="Mode Discrepency") mDiv = input(0.015, title="Interval") mean(_src, _length)=> _return = sum(_src, _length) / _length median(_src, _length)=> _return = _src for _i = 0 to _length _return := _return == 0 ? _src : (_return + _src[_i]) / 2 _return len = input(20, title="Standard (Average) Length") mmm = input(20, title="Lookback length") srcV = obv(input(ohlc4)) srcP = input(close) x = sma(srcV, len) MDV2 = abs(stdev(median(x, len), mmm)) MDV3 = abs(stdev(mean(x, len), mmm)) AMDV = (MDV2+MDV3)/2 pt1v = (srcV-ema(srcV, len))/ AMDV pt2v = 1/mDiv VCI=pt1v*pt2v y = ema(srcP, len) MDP2 = abs(stdev(median(y, len), mmm)) MDP3 = abs(stdev(mean(y, len), mmm)) AMDA = (MDP2 + MDP3)/2 pt1p = 1/mDiv pt2p = (srcP-ema(srcP, len))/ AMDA MCI = pt1p * pt2p plot(VCI, color=yellow, title="VCI", style="Histogram") plot(MCI, color=white, title="MCI") plot(500, style=line) plot(0, style=line, linewidth=2) plot(-500, style=line) long = crossover(MCI, 0) and VCI > MCI[2] short = crossunder(MCI, 0) and VCI < MCI[2] //Time Control //Set date and time FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 13, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" direction = input(0, title = "Strategy Direction", minval=-1, maxval=1) strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long)) if (long) strategy.entry("Long", strategy.long, when=window(), limit=ohlc4, oca_name="BollingerBands", comment="BBandLE") else strategy.cancel(id="Long") if (short) strategy.entry("Short", strategy.short, when=window(), limit=ohlc4, oca_name="BollingerBands", comment="BBandSE") else strategy.cancel(id="Short")