দ্বৈত সিসিআই পরিমাণগত কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১১-২৮ 15:47:04
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি ক্লাসিক প্রযুক্তিগত সূচক সিসিআই এবং স্ব-বিকাশিত ভিসিআই এবং এমসিআই দ্বৈত সূচককে একত্রিত করে ট্রেডিং সংকেত তৈরি করে, যা একটি সাধারণ পরিমাণগত ট্রেডিং কৌশল। ভলিউম এবং মূল্য পরিবর্তনের প্রবণতা এবং গতি চিহ্নিত করে এটি বর্তমান বাজারের মূল দিক নির্ধারণ করে এবং ট্রেডিং সংকেত গঠন করে। এটি ডিজিটাল মুদ্রা, বৈদেশিক মুদ্রা এবং স্টকগুলির মতো আর্থিক যন্ত্রগুলির জন্য ব্যাপকভাবে ব্যবহার করা যেতে পারে।

কৌশল নীতি

  1. Ohlc4 চলমান গড় হিসাব করুন এবং মূল্যের স্তর বিচার করার জন্য CICI সূচকের সাথে একত্রিত করুন;
  2. মূলধন প্রবাহ পরিমাপ করার জন্য আভভ সূচক গণনা করুন;
  3. VCI সূচক গণনা করুন, যা আভভের সূচকের বৈচিত্র্যের মাধ্যমে মূলধন প্রবাহের বিতরণকে পরিমাপ করে;
  4. এমসিআই সূচক গণনা করুন, যা দামের বৈচিত্র্যের মাধ্যমে দামের বিতরণকে পরিমাপ করে;
  5. বাজারের মনোভাব বিচার করার জন্য ভিসিআই এবং এমসিআই সূচকগুলির তুলনা করুন;
  • ভিসিআই > এমসিআই, উচ্চ ক্রয় আগ্রহ;
  • ভিসিআই < এমসিআই, শক্তিশালী বিক্রয় আগ্রহ;
  1. ভিসিআই এবং এমসিআই এর তুলনা করে দীর্ঘ ও সংক্ষিপ্ত সংকেত গঠন করা।

সুবিধা বিশ্লেষণ

  1. কৌশলটি তুলনামূলকভাবে সঠিক সংকেত দিয়ে বাজারের মনোভাব বিচার করার জন্য মূল্য, লেনদেনের পরিমাণ এবং মূলধন প্রবাহের মতো একাধিক মাত্রা বিবেচনা করে;
  2. ভিসিআই এবং এমসিআই গতিশীল স্ট্যান্ডার্ড ডিভিয়েশন দ্বারা গণনা করা হয়, যা রিয়েল-টাইম বাজারের পরিবর্তনের সাথে মানিয়ে নিতে পারে;
  3. কৌশলগত পরামিতিগুলি ব্যাপক ব্যাকটেস্টিংয়ের মাধ্যমে অপ্টিমাইজ করা হয়েছে এবং শক্তিশালী স্থিতিশীলতা রয়েছে;

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

  1. দাম এবং ট্রেডিং ভলিউম সূচকগুলির হিসাব বিলম্বিত এবং হঠাৎ ইভেন্টগুলি পূর্বনির্ধারণ করতে পারে না;
  2. একটি একক কৌশল জটিল এবং অস্থির বাজারের পরিস্থিতি পুরোপুরি কভার করতে পারে না;
  3. এটিকে অন্যান্য সহায়ক সূচকগুলির সাথে একত্রিত করা দরকার এবং এটি এককভাবে বাজারকে বিচার করতে পারে না;

অপ্টিমাইজেশান নির্দেশাবলী

  1. সিগন্যাল বিচার সঠিকতা উন্নত করার জন্য গভীর শিক্ষার মতো ভবিষ্যদ্বাণীমূলক মডেল অন্তর্ভুক্ত করা;
  2. কৌশল স্থিতিশীলতা বাড়ানোর জন্য স্টপ লস এর মতো ঝুঁকি নিয়ন্ত্রণ মডিউল যোগ করা;
  3. নির্দিষ্ট বাজারে প্রয়োগযোগ্যতা পরীক্ষা করার জন্য বিভিন্ন প্যারামিটার সমন্বয় চেষ্টা করুন;

সিদ্ধান্ত

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


/*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")

আরো