EMA اور CCI ایک سے زیادہ کراس اوور رجحان کے بعد حکمت عملی

EMA CCI
تخلیق کی تاریخ: 2024-09-26 15:43:50 آخر میں ترمیم کریں: 2024-09-26 15:43:50
کاپی: 1 کلکس کی تعداد: 651
1
پر توجہ دیں
1617
پیروکار

EMA اور CCI ایک سے زیادہ کراس اوور رجحان کے بعد حکمت عملی

جائزہ

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

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

یہ حکمت عملی مندرجہ ذیل اہم عناصر پر مبنی ہے:

  1. کثیر ای ایم اے کراسنگ: 8، 12، 24 اور 72 دوروں کے ای ایم اے کا استعمال کریں۔ جب مختصر مدت ای ایم اے ((8، 12، 24) ایک ہی وقت میں 72 دوروں کے ای ایم اے کو عبور کرتا ہے تو ، اسے ممکنہ طور پر کثیر سگنل سمجھا جاتا ہے۔ اس کے برعکس ، یہ خالی سگنل ہے۔

  2. سی سی آئی اشارے کی تصدیق: 20 دوروں کے سی سی آئی اشارے کا استعمال کرتے ہوئے ، جب سی سی آئی 150 سے زیادہ ہو تو اوور خرید کی حیثیت کی تصدیق کی جاتی ہے ، جب 150 سے کم ہو تو اوور فروخت کی حیثیت کی تصدیق کی جاتی ہے۔

  3. داخلے کی شرائط:

    • زیادہ کام کریں: مختصر دورانیہ EMA ایک ہی وقت میں 72 دورانیہ EMA کے اوپر ہے ، اور CCI 150 سے زیادہ ہے ، قیمت 72 دورانیہ EMA کے اوپر ہے۔
    • خالی کرنا: قلیل مدت ای ایم اے ایک ہی وقت میں 72 مدت ای ایم اے کو عبور کرتا ہے ، اور سی سی آئی 150 سے کم ہے ، قیمت 72 مدت ای ایم اے سے نیچے ہے۔
  4. متحرک سٹاپ نقصان:

    • داخلہ کے دو طریقوں کو ترتیب دیں: ایک بار اور وقت کی کھڑکی کے اندر اندر کراسنگ۔
    • اسٹاپ نقصان کی مختلف شرحیں جو مختلف اندراج کے طریقوں پر مبنی ہیں۔
  5. پوزیشن مینجمنٹ: حکمت عملی مکمل پوزیشن ٹریڈنگ کا استعمال کرتی ہے ، یعنی اکاؤنٹ میں 100٪ فنڈز کا استعمال کرتے ہوئے تجارت کرتی ہے۔

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

  1. ایک سے زیادہ تصدیق کا طریقہ کار: ایک سے زیادہ ای ایم اے کراس اور سی سی آئی اشارے کے ساتھ مل کر ، جعلی سگنل کے اثرات کو مؤثر طریقے سے کم کیا گیا ہے ، جس سے داخلے کی درستگی میں اضافہ ہوا ہے۔

  2. لچکدار داخلے کا طریقہ کار: حکمت عملی میں ایک بار اور وقت کی کھڑکی کے اندر دو بار کراسنگ کو مدنظر رکھا گیا ہے ، جو مختلف مارکیٹ کے حالات کے مطابق ہے۔

  3. متحرک رسک مینجمنٹ: منافع اور رسک کو بہتر طور پر متوازن کرنے کے لئے مختلف انٹری ماڈل کے مطابق مختلف اسٹاپ اسٹاپ نقصان کا تناسب مرتب کریں۔

  4. رجحانات کا سراغ لگانے کی صلاحیت: متعدد ای ایم اے کراسنگ کا استعمال کرتے ہوئے ، درمیانے اور طویل مدتی رجحانات میں تبدیلی کو مؤثر طریقے سے پکڑنے کے قابل۔

  5. فلٹر زلزلے کی صورتحال: سی سی آئی اشارے کے ذریعہ اوور بیئر اور اوور سیلنگ کے فیصلے سے افقی زلزلے والے بازاروں میں بار بار تجارت سے بچنے میں مدد ملتی ہے۔

اسٹریٹجک رسک

  1. تاخیر: ای ایم اے اور سی سی آئی دونوں تاخیر سے چلنے والے اشارے ہیں ، جو شدید اتار چڑھاؤ والی مارکیٹوں میں بروقت ردعمل نہیں دے سکتے ہیں۔

  2. بار بار ٹریڈنگ: ہلچل کی منڈیوں میں ، زیادہ سے زیادہ جھوٹے بریک سگنل پیدا ہوسکتے ہیں ، جس کی وجہ سے بار بار تجارت اور فیس میں اضافہ ہوتا ہے۔

  3. مکمل پوزیشن کا خطرہ: 100٪ پوزیشن کی تجارت کے ساتھ واپسی کا زیادہ خطرہ ہوسکتا ہے۔

  4. فکسڈ فیصد اسٹاپ: زیادہ اتار چڑھاؤ والی مارکیٹوں میں ، فکسڈ فیصد اسٹاپ منافع سے قبل ہی باہر نکل سکتا ہے۔

  5. تاریخی اعداد و شمار پر انحصار: حکمت عملی کی کارکردگی پر تاریخی اعداد و شمار کا اثر پڑ سکتا ہے ، اور مستقبل میں مارکیٹ کے حالات میں تبدیلی کے لئے پیرامیٹرز کو دوبارہ بہتر بنانے کی ضرورت ہوگی۔

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

  1. اتار چڑھاؤ کے اشارے متعارف کرانا: اے ٹی آر (اوسط سچائی رینج) کے اشارے کو شامل کرنے پر غور کریں ، مارکیٹ میں اتار چڑھاؤ کے مطابق اسٹاپ نقصان کی سطح کو ایڈجسٹ کریں ، تاکہ مارکیٹ کے مختلف حالات کے مطابق ہو۔

  2. پوزیشن مینجمنٹ کو بہتر بنائیں: متحرک پوزیشن مینجمنٹ میکانزم متعارف کرایا گیا ہے ، جس میں مارکیٹ کے رجحانات کی طاقت اور اکاؤنٹ کے خطرے کو برداشت کرنے کی صلاحیت کے مطابق پوزیشن کا سائز ایڈجسٹ کیا جاتا ہے۔

  3. اضافی فلٹرنگ شرائط: آپ کو ٹریڈنگ سگنل کو مزید فلٹر کرنے اور جیتنے کی شرح کو بہتر بنانے کے لئے حجم اور رجحان کی طاقت جیسے اشارے شامل کرنے پر غور کرنا چاہئے۔

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

  5. مارکیٹ کے نظام کی شناخت میں شامل ہونا: مارکیٹ کی حالت کی نشاندہی کرنے والے ماڈیول کو تیار کریں (رجحان ، جھٹکا ، اعلی اتار چڑھاؤ) ، مختلف مارکیٹ کی حالت کے مطابق حکمت عملی کے پیرامیٹرز کو ایڈجسٹ کریں یا تجارت کو روکیں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA & CCI Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Параметры EMA
ema8_length = 8
ema12_length = 12
ema24_length = 24
ema72_length = 72

// Расчет EMA
ema8 = ta.ema(close, ema8_length)
ema12 = ta.ema(close, ema12_length)
ema24 = ta.ema(close, ema24_length)
ema72 = ta.ema(close, ema72_length)

// Параметры CCI
cci_length = 20
cci_overbought = 150
cci_oversold = -150

// Параметры тейк-профита и стоп-лосса
takeProfitPercent = input.float(1.5, title="Take Profit (%)", step=0.1)
stopLossPercent = input.float(0.5, title="Stop Loss (%)", step=0.1)
takeProfitPercentTime = input.float(0.5, title="Take Profit (%) for Time-based", step=0.1)
stopLossPercentTime = input.float(0.2, title="Stop Loss (%) for Time-based", step=0.1)
max_wait_bars = input.float(2, title="Max wait candles", step=1)
// Расчет CCI
cci = ta.cci(close, cci_length)

// Состояние открытой позиции
sz = strategy.position_size

// Флаги для отслеживания пересечений EMA вверх
var int ema8_cross_index_up = na
var int ema12_cross_index_up = na
var int ema24_cross_index_up = na

// Флаги для отслеживания пересечений EMA вниз
var int ema8_cross_index_down = na
var int ema12_cross_index_down = na
var int ema24_cross_index_down = na

// Проверка пересечения EMA с 72 вверх и обновление индекса пересечения
if (ta.crossover(ema8, ema72))
    ema8_cross_index_up := bar_index
if (ta.crossover(ema12, ema72))
    ema12_cross_index_up := bar_index
if (ta.crossover(ema24, ema72))
    ema24_cross_index_up := bar_index

// Проверка пересечений EMA вниз и обновление индекса пересечения
if (ta.crossunder(ema8, ema72))
    ema8_cross_index_down := bar_index
if (ta.crossunder(ema12, ema72))
    ema12_cross_index_down := bar_index
if (ta.crossunder(ema24, ema72))
    ema24_cross_index_down := bar_index

// Условия пересечения за одну свечу (лонг и шорт)
cross_condition_one_candle_long = (na(ema8_cross_index_up) == false and (bar_index - ema8_cross_index_up) == 0) and
                                  (na(ema12_cross_index_up) == false and (bar_index - ema12_cross_index_up) == 0) and
                                  (na(ema24_cross_index_up) == false and (bar_index - ema24_cross_index_up) == 0)

cross_condition_one_candle_short = (na(ema8_cross_index_down) == false and (bar_index - ema8_cross_index_down) == 0) and
                                   (na(ema12_cross_index_down) == false and (bar_index - ema12_cross_index_down) == 0) and
                                   (na(ema24_cross_index_down) == false and (bar_index - ema24_cross_index_down) == 0)

// Условия пересечения в течение указанного времени (лонг и шорт)
cross_condition_within_time_long = (not na(ema8_cross_index_up) and (bar_index - ema8_cross_index_up) <= max_wait_bars) and
                                   (not na(ema12_cross_index_up) and (bar_index - ema12_cross_index_up) <= max_wait_bars) and
                                   (not na(ema24_cross_index_up) and (bar_index - ema24_cross_index_up) <= max_wait_bars)

cross_condition_within_time_short = (not na(ema8_cross_index_down) and (bar_index - ema8_cross_index_down) <= max_wait_bars) and (not na(ema12_cross_index_down) and (bar_index - ema12_cross_index_down) <= max_wait_bars) and (not na(ema24_cross_index_down) and (bar_index - ema24_cross_index_down) <= max_wait_bars)

// Условие для открытия лонга
long_condition_one = cross_condition_one_candle_long and cci > cci_overbought and close > ema72
long_condition_time = cross_condition_within_time_long and cci > cci_overbought and close > ema72

// Условие для открытия шорта
short_condition_one = cross_condition_one_candle_short and cci < cci_oversold and close < ema72
short_condition_time = cross_condition_within_time_short and cci < cci_oversold and close < ema72

// Вход в лонг
if (long_condition_one and sz == 0)
    strategy.entry(id='Long_one', direction=strategy.long)

if (long_condition_time and sz == 0)
    strategy.entry(id='Long_time', direction=strategy.long)

// Вход в шорт
if (short_condition_one and sz == 0)
    strategy.entry(id='Short_one', direction=strategy.short)

if (short_condition_time and sz == 0)
    strategy.entry(id='Short_time', direction=strategy.short)

// Вычисление цен тейк-профита и стоп-лосса для лонга
if (sz > 0 and strategy.opentrades.entry_id(0) == 'Long_one')
    entryPriceLong = strategy.opentrades.entry_price(0)
    takeProfitPriceLong = entryPriceLong * (1 + takeProfitPercent / 100)
    stopLossPriceLong = entryPriceLong * (1 - stopLossPercent / 100)
    strategy.exit("Close long one", "Long_one", limit=takeProfitPriceLong, stop=stopLossPriceLong)
    ema8_cross_index_up := na
    ema12_cross_index_up := na
    ema24_cross_index_up := na

if (sz > 0 and strategy.opentrades.entry_id(0) == 'Long_time')
    entryPriceLongTime = strategy.opentrades.entry_price(0)
    takeProfitPriceLongTime = entryPriceLongTime * (1 + takeProfitPercentTime / 100)
    stopLossPriceLongTime = entryPriceLongTime * (1 - stopLossPercentTime / 100)
    strategy.exit("Close long time", "Long_time", limit=takeProfitPriceLongTime, stop=stopLossPriceLongTime)
    ema8_cross_index_up := na
    ema12_cross_index_up := na
    ema24_cross_index_up := na

// Вычисление цен тейк-профита и стоп-лосса для шорта
if (sz < 0 and strategy.opentrades.entry_id(0) == 'Short_one')
    entryPriceShort = strategy.opentrades.entry_price(0)
    takeProfitPriceShort = entryPriceShort * (1 - takeProfitPercent / 100)
    stopLossPriceShort = entryPriceShort * (1 + stopLossPercent / 100)
    strategy.exit("Close short one", "Short_one", limit=takeProfitPriceShort, stop=stopLossPriceShort)
    ema8_cross_index_down := na
    ema12_cross_index_down := na
    ema24_cross_index_down := na

if (sz < 0 and strategy.opentrades.entry_id(0) == 'Short_time')
    entryPriceShortTime = strategy.opentrades.entry_price(0)
    takeProfitPriceShortTime = entryPriceShortTime * (1 - takeProfitPercentTime / 100)
    stopLossPriceShortTime = entryPriceShortTime * (1 + stopLossPercentTime / 100)
    strategy.exit("Close short time", "Short_time", limit=takeProfitPriceShortTime, stop=stopLossPriceShortTime)
    ema8_cross_index_down := na
    ema12_cross_index_down := na
    ema24_cross_index_down := na

// Отображение EMA на графике
plot(ema8, title="EMA 8", color=color.blue, linewidth=2)
plot(ema12, title="EMA 12", color=color.orange, linewidth=2)
plot(ema24, title="EMA 24", color=color.green, linewidth=2)
plot(ema72, title="EMA 72", color=color.red, linewidth=2)

// Вывод CCI в подвале
//plot(cci, title="CCI", color=color.purple)
//hline(100, "CCI 150", color=color.green)
//hline(-100, "CCI -150", color=color.red)
//hline(0, "CCI 0", color=color.gray)


// Отладочная информация
//plotshape(series=long_condition_one, location=location.belowbar, color=color.lime, style=shape.labelup, title="Long Condition")
//plotshape(series=cross_condition_one_candle_long, location=location.belowbar, color=color.blue, style=shape.triangleup, title="Cross Condition Long")
//plotshape(series=long_condition_time, location=location.belowbar, color=#e6d700, style=shape.labelup, title="Long Condition Time")
//plotshape(series=cross_condition_within_time_long, location=location.belowbar, color=#a21dbd, style=shape.triangleup, title="Cross Condition Time Long")
//plotshape(series=short_condition_one, location=location.abovebar, color=color.red, style=shape.labeldown, title="Short Condition")
//plotshape(series=cross_condition_one_candle_short, location=location.abovebar, color=color.blue, style=shape.triangledown, title="Cross Condition Short")
//plotshape(series=short_condition_time, location=location.abovebar, color=#e6d700, style=shape.labeldown, title="Short Condition Time")
//plotshape(series=cross_condition_within_time_short, location=location.abovebar, color=#a21dbd, style=shape.triangledown, title="Cross Condition Time Short")