CCI+RSI+KC ٹرینڈ فلٹرنگ طویل اور مختصر دو طرفہ تجارتی حکمت عملی

CCI RSI KC SMA EMA SMMA CMA TMA
تخلیق کی تاریخ: 2024-05-15 16:56:03 آخر میں ترمیم کریں: 2024-05-15 16:56:03
کاپی: 1 کلکس کی تعداد: 671
1
پر توجہ دیں
1617
پیروکار

CCI+RSI+KC ٹرینڈ فلٹرنگ طویل اور مختصر دو طرفہ تجارتی حکمت عملی

جائزہ

اس حکمت عملی میں سی سی آئی ، آر ایس آئی اور کینٹینر چینل ((KC) کے تین تکنیکی اشارے استعمال کیے گئے ہیں ، جس میں رجحان فلٹر کے ساتھ مل کر ، AUDNZD اور GBPNZD کرنسی کے جوڑے پر کثیر فاریکس ڈیمو اکاؤنٹ کھولیں دو طرفہ تجارت کی جاتی ہے۔ حکمت عملی سی سی آئی اور آر ایس آئی کے ذریعہ اوورلوڈ اور اوور سیلنگ کا فیصلہ کرتی ہے ، کے سی کو اسٹاپ لاس اسٹاپ کے لئے ایک حوالہ کے طور پر استعمال کرتی ہے ، جبکہ رجحان فلٹر کے طور پر چلنے والی اوسط کا استعمال کرتے ہوئے پوزیشن کھولنے کا کام کرتی ہے۔ اس حکمت عملی کو پچھلے 5 سالوں کے تاریخی اعداد و شمار پر بیک اپ کیا گیا ہے اور اس نے مستحکم منافع حاصل کیا ہے۔

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

  1. سی سی آئی ، آر ایس آئی اور کے سی اشارے کا حساب لگائیں۔ کے سی اوپری ریل کے لئے درمیانی لائن میں اے ٹی آر شامل کریں ، اور نیچے کی ریل کے لئے درمیانی لائن میں اے ٹی آر کو کم کریں۔
  2. ان پٹ پیرامیٹرز کی بنیاد پر ایک قسم کا متحرک اوسط منتخب کریں ((SMA، EMA، SMMA، CMA یا TMA) اور رجحان فلٹرنگ کا طریقہ ((بند، مثبت یا الٹ) ۔
  3. کثیر سر پوزیشن کھولنے کی شرائط: زیادہ کرنے کی اجازت ، سی سی آئی < اوور سیل لائن ، اختتامی قیمت < کے سی ڈاون ٹریل ، آر ایس آئی < اوور سیل لائن ، ٹرانزیکشن حجم> 50 سائیکل اوسط*اس کے علاوہ، یہ بھی کہا گیا ہے کہ اس وقت کوئی زیادہ پوزیشن نہیں ہے.
  4. خالی سر پوزیشن کھولنے کی شرائط: خالی کرنے کی اجازت ، سی سی آئی> اوور بائی لائن ، اختتامی قیمت> کے سی پٹری پر ، آر ایس آئی> اوور بائی لائن ، لین دین کی مقدار> 50 سائیکل اوسط*موجودہ خالی پوزیشنوں کی تعداد:
  5. کثیر سر صاف پوزیشن کی شرط: CCI> 0 ◦ خالی سر صاف پوزیشن کی شرط: CCI ◦
  6. جب کوئی پوزیشن کھلتی ہے تو الرٹ ہوتا ہے ، اور جب پوزیشن بند ہوتی ہے تو الرٹ ہوتا ہے۔

اسٹریٹجک فوائد

  1. متعدد اشارے کے مجموعی فیصلے کے لئے ، سگنل کی درستگی کو بہتر بنائیں۔
  2. رجحان فلٹرنگ کا استعمال کرتے ہوئے، مارکیٹ کے رجحانات کے مطابق لچکدار ایڈجسٹمنٹ، اور اس کے نتیجے میں.
  3. مارکیٹ کی مختلف خصوصیات کے مطابق متغیر اوسط کی اقسام کو منتخب کریں.
  4. طویل عرصے سے تاریخی اعداد و شمار کی توثیق ، اچھی استحکام ، طویل مدتی استعمال کے لئے موزوں ہے۔
  5. دو طرفہ تجارت ، مختلف حالات کے مطابق ڈھالنا ، زیادہ منافع کمانے کے مواقع۔
  6. اعلی درجے کی آٹومیشن ، کوئی انسانی مداخلت کی ضرورت نہیں ، وقت اور توانائی کی بچت۔

اسٹریٹجک رسک

  1. روایتی سٹاپ لاسٹ اسٹاپ کی کمی ، انتہائی حالات میں بڑی واپسی کا امکان ہے۔
  2. ہلکے بازاروں میں اکثر کم پوزیشنیں ہوسکتی ہیں ، جس سے لین دین کی لاگت میں اضافہ ہوتا ہے۔
  3. ایک نسبتا مختصر سی سی آئی سائیکل کا استعمال کرتے ہوئے، شور سگنل ہو سکتا ہے.
  4. جب رجحانات غیر واضح ہوں یا مارکیٹ میں اتار چڑھاؤ بڑھ جائے تو رجحانات کی فلٹرنگ کا اثر محدود ہوتا ہے۔
  5. فکسڈ پوزیشن ، جو مارکیٹ میں اتار چڑھاؤ کی تبدیلیوں کے مطابق نہیں رہ سکتی۔

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

  1. ایک ہی تجارت کے خطرے پر قابو پانے کے لئے ، موبائل اسٹاپ یا فکسڈ پوائنٹ اسٹاپ کو بڑھانے پر غور کیا جاسکتا ہے۔
  2. آر ایس آئی اور سی سی آئی کے پیرامیٹرز کو مزید بہتر بنایا جاسکتا ہے تاکہ شور سگنل کو کم کیا جاسکے۔
  3. مارکیٹ میں اتار چڑھاو کے مطابق پوزیشنوں کو ایڈجسٹ کرنے اور روکنے کے لئے اے ٹی آر جیسے اتار چڑھاؤ کی شرح کے اشارے متعارف کرانے پر غور کیا جاسکتا ہے۔
  4. مزید کرنسی کے جوڑے شامل کریں اور ہر قسم کی خصوصیات کے مطابق انفرادی طور پر پیرامیٹرز کو بہتر بنائیں۔
  5. مشین لرننگ جیسے مصنوعی ذہانت کی ٹیکنالوجی کو متعارف کرانے کی کوشش کریں ، اور خود بخود اصلاح کے پیرامیٹرز کو اپنائیں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('CCI Strategy with Trend Filter AUDNZD, GBPNZD', overlay=true, default_qty_type=strategy.cash, default_qty_value=50000, commission_value=0.0005, slippage=2, initial_capital=10000)

// State variables to ensure one entry per signal
var bool isLongOpen = false
var bool isShortOpen = false

// Input Parameters for allowing long and short trades
allowLong = input(true, title='Allow Long Trades')
allowShort = input(true, title='Allow Short Trades')

// Trend Filter Inputs
maType = input.string(title='MA Type', options=['OFF', 'SMA', 'EMA', 'SMMA', 'CMA', 'TMA'], defval='OFF')
trendFilterMethod = input.string(title='Trend Filter Method', options=['OFF', 'Normal', 'Reversed'], defval='OFF')
maLength = input(14, title='MA Length')

// Other Input Parameters
lengthKC = input(30, title='Keltner Channels Length')
multKC = input(0.7, title='Keltner Channels Multiplier')
lengthCCI = input(5, title='CCI Length')
overboughtCCI = input(75, title='CCI Overbought Level')
oversoldCCI = input(-75, title='CCI Oversold Level')
rsiPeriod = input(30, title='RSI Period')
rsiOverbought = input(60, title='RSI Overbought Level')
rsiOversold = input(60, title='RSI Oversold Level')
volumeMultiplier = input.float(0, title='Volume Multiplier', step=0.1, minval=0)

// Define Moving Averages
var float maValue = na
if maType == 'SMA'
    maValue := ta.sma(close, maLength)
else if maType == 'EMA'
    maValue := ta.ema(close, maLength)
else if maType == 'SMMA'
    float initialSMMA = ta.sma(close, maLength)
    maValue := na(maValue[1]) ? initialSMMA : (maValue[1] * (maLength - 1) + close) / maLength
else if maType == 'CMA'
    float firstSMA = ta.sma(close, maLength)
    float secondSMA = ta.sma(close, maLength)
    maValue := na(maValue[1]) ? firstSMA : (firstSMA + secondSMA - maValue[1]) / 2
else if maType == 'TMA'
    maValue := ta.sma(ta.sma(close, math.round(maLength / 2)), math.round(maLength / 2) + 1)

// Entry Conditions with Trend Filter
longCondition = allowLong and (trendFilterMethod == 'OFF' or trendFilterMethod == 'Normal' and close > maValue or trendFilterMethod == 'Reversed' and close < maValue)
shortCondition = allowShort and (trendFilterMethod == 'OFF' or trendFilterMethod == 'Normal' and close < maValue or trendFilterMethod == 'Reversed' and close > maValue)

// Keltner Channels
typicalPrice = hlc3
middleLine = ta.sma(typicalPrice, lengthKC)
range_1 = multKC * ta.atr(lengthKC)
upperChannel = middleLine + range_1
lowerChannel = middleLine - range_1

// CCI
cci = ta.cci(close, lengthCCI)

// RSI
rsi = ta.rsi(close, rsiPeriod)

// Volume
volCondition = volume > ta.sma(volume, 50) * volumeMultiplier

// Combined Entry Conditions with Trend Filter and state check
longCondition := longCondition and cci < oversoldCCI and low < lowerChannel and rsi < rsiOversold and volCondition and not isLongOpen
shortCondition := shortCondition and cci > overboughtCCI and high > upperChannel and rsi > rsiOverbought and volCondition and not isShortOpen

// Execute orders at the open of the new bar after conditions are met
if longCondition
    strategy.entry('Long', strategy.long)
    alert('LicenseID,buy,AUDNZD,risk=1')
    isLongOpen := true
if shortCondition
    strategy.entry('Short', strategy.short)
    alert('LicenseID,sell,AUDNZD,risk=1')
    isShortOpen := true

// Exit Conditions and Alerts
longExitCondition = cci > 0
shortExitCondition = cci < 0
if (longExitCondition and isLongOpen)
    strategy.close('Long')
    alert('LiceneseID,closelong,AUDNZD')
    isLongOpen := false
if (shortExitCondition and isShortOpen)
    strategy.close('Short')
    alert('LicenseID,closeshort,AUDNZD')
    isShortOpen := false

// Plotting
plot(upperChannel, color=color.new(color.red, 0), linewidth=1)
plot(lowerChannel, color=color.new(color.green, 0), linewidth=1)
hline(overboughtCCI, 'Overbought', color=color.red)
hline(oversoldCCI, 'Oversold', color=color.green)