اوکٹا ای ایم اے اور ایچیموکو کلاؤڈ کوانٹیٹیٹیو ٹریڈنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-11 14:52:05
ٹیگز:

img

جائزہ

یہ حکمت عملی مختلف ادوار کے 8 اشاریاتی چلتی اوسط (ای ایم اے) اور Ichimoku بادل کو اہم تجارتی سگنل کے طور پر استعمال کرتی ہے ، جو گھنٹہ وار ، 4 گھنٹے یا روزانہ کے ٹائم فریم میں مؤثر طریقے سے چل سکتی ہے۔

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

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

  1. 8 اشاریاتی چلتی اوسط (اوکٹا-ای ایم اے)

    یہ حکمت عملی مختلف ادوار کے ساتھ 8 ای ایم اے کا استعمال کرتی ہے ، خاص طور پر 5 دن ، 11 دن ، 15 دن ، 18 دن ، 21 دن ، 24 دن ، 28 دن اور 34 دن۔ ان 8 ای ایم اے کو اوکٹا ای ایم اے کہا جاتا ہے۔ جب مختصر مدت کے ای ایم اے طویل مدت کے ای ایم اے سے اوپر ہوتے ہیں تو ، اس سے اوپر کا رجحان ظاہر ہوتا ہے ، اور اس کے برعکس نیچے کا رجحان ہوتا ہے۔

  2. Ichimoku بادل

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

اس حکمت عملی کے لئے تجارتی سگنل مذکورہ بالا دو اجزاء کے امتزاج سے آتے ہیں۔ جب تمام 8 ای ایم اے اپ ٹرینڈ انتظامات (لمبے ای ایم اے کے اوپر مختصر ای ایم اے) میں ہوتے ہیں اور قیمت ایچیموکو کلاؤڈ سے اوپر ہوتی ہے تو خرید کا سگنل پیدا ہوتا ہے۔ جب ای ایم اے انتظامات ڈاؤن ٹرینڈ (لمبے ای ایم اے کے نیچے مختصر ای ایم اے کراسنگ) میں پلٹ جاتے ہیں تو فروخت کا سگنل پیدا ہوتا ہے۔

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

اس حکمت عملی کے اہم فوائد یہ ہیں:

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

خطرے کا تجزیہ

اس حکمت عملی میں کچھ خطرات بھی ہیں:

  1. رینج سے منسلک مارکیٹوں کے دوران زیادہ غلط فروخت سگنل پیدا کرسکتے ہیں
  2. خریدنے کی سخت شرائط سے خریدنے کے کچھ مواقع ضائع ہو سکتے ہیں
  3. قلیل مدتی اور درمیانی مدتی رجحانات کے تنازعہ میں ناکام ہوسکتا ہے
  4. EMA پیرامیٹر کی خراب ترتیب سگنل تاخیر کا سبب بن سکتی ہے

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

اصلاح کی ہدایات

اس حکمت عملی کو کئی پہلوؤں میں بہتر بنایا جا سکتا ہے:

  1. بہترین ادوار تلاش کرنے کے لئے EMA پیرامیٹرز کو ایڈجسٹ کریں
  2. درست رجحان کی تشخیص کو یقینی بنانے کے لئے رجحان کا تعین کرنے والے اشارے شامل کریں
  3. انٹری ٹائمنگ کو بہتر بنانے کے لئے MACD، KDJ جیسے اضافی اشارے شامل کریں
  4. اسٹاپ نقصان / منافع حاصل کرنے کے لئے تجارت کے خطرے کے مطابق کنٹرول شامل کریں
  5. بہترین فٹ تلاش کرنے کے لئے مختلف مصنوعات پر ٹیسٹ پیرامیٹرز
  6. پیرامیٹرز کو خود کار طریقے سے بہتر بنانے کے لئے مشین سیکھنے کا استعمال کریں

نتیجہ

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


/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Fukuiz

strategy(title='Fukuiz Octa-EMA + Ichimoku', shorttitle='Fuku octa strategy', overlay=true, process_orders_on_close=true, 
     default_qty_type= strategy.cash , default_qty_value=1000, currency=currency.USD, initial_capital=10000 ,commission_type = strategy.commission.percent,commission_value=0.25)


//OCTA EMA ##################################################


// Functions
f_emaRibbon(_src, _e1, _e2, _e3, _e4, _e5, _e6, _e7, _e8) =>
    _ema1 = ta.ema(_src, _e1)
    _ema2 = ta.ema(_src, _e2)
    _ema3 = ta.ema(_src, _e3)
    _ema4 = ta.ema(_src, _e4)
    _ema5 = ta.ema(_src, _e5)
    _ema6 = ta.ema(_src, _e6)
    _ema7 = ta.ema(_src, _e7)
    _ema8 = ta.ema(_src, _e8)
    [_ema1, _ema2, _ema3, _ema4, _ema5, _ema6, _ema7, _ema8]

showRibbon = input(true, 'Show Ribbon (EMA)')
ema1Len = input(5, title='EMA 1 Length')
ema2Len = input(11, title='EMA 2 Length')
ema3Len = input(15, title='EMA 3 Length')
ema4Len = input(18, title='EMA 4 Length')
ema5Len = input(21, title='EMA 5 Length')
ema6Len = input(24, title='EMA 6 Length')
ema7Len = input(28, title='EMA 7 Length')
ema8Len = input(34, title='EMA 8 Length')

[ema1, ema2, ema3, ema4, ema5, ema6, ema7, ema8] = f_emaRibbon(close, ema1Len, ema2Len, ema3Len, ema4Len, ema5Len, ema6Len, ema7Len, ema8Len)

//Plot

ribbonDir = ema8 < ema2
p1 = plot(ema1, color=showRibbon ? ribbonDir ? #1573d4 : color.new(#5d606b, 15) : na, linewidth=2, title='EMA 1')
p2 = plot(ema2, color=showRibbon ? ribbonDir ? #3096ff : color.new(#5d606b, 15) : na, linewidth=2, title='EMA 2')
plot(ema3, color=showRibbon ? ribbonDir ? #57abff : color.new(#5d606b, 15) : na, linewidth=2, title='EMA 3')
plot(ema4, color=showRibbon ? ribbonDir ? #85c2ff : color.new(#5d606b, 15) : na, linewidth=2, title='EMA 4')
plot(ema5, color=showRibbon ? ribbonDir ? #9bcdff : color.new(#5d606b, 30) : na, linewidth=2, title='EMA 5')
plot(ema6, color=showRibbon ? ribbonDir ? #b3d9ff : color.new(#5d606b, 30) : na, linewidth=2, title='EMA 6')
plot(ema7, color=showRibbon ? ribbonDir ? #c9e5ff : color.new(#5d606b, 30) : na, linewidth=2, title='EMA 7')
p8 = plot(ema8, color=showRibbon ? ribbonDir ? #dfecfb : color.new(#5d606b, 30) : na, linewidth=2, title='EMA 8')
fill(p1, p2, color.new(#1573d4, 85))
fill(p2, p8, color.new(#1573d4, 85))

//ichimoku##################################################

//color
colorblue = #3300CC
colorred = #993300
colorwhite = #FFFFFF
colorgreen = #CCCC33
colorpink = #CC6699
colorpurple = #6633FF

//switch
switch1 = input(false, title='Chikou')
switch2 = input(false, title='Tenkan')
switch3 = input(false, title='Kijun')

middleDonchian(Length) =>
    lower = ta.lowest(Length)
    upper = ta.highest(Length)
    math.avg(upper, lower)

//Functions
conversionPeriods = input.int(9, minval=1)
basePeriods = input.int(26, minval=1)
laggingSpan2Periods = input.int(52, minval=1)
displacement = input.int(26, minval=1)
Tenkan = middleDonchian(conversionPeriods)
Kijun = middleDonchian(basePeriods)
xChikou = close
SenkouA = middleDonchian(laggingSpan2Periods)
SenkouB = (Tenkan[basePeriods] + Kijun[basePeriods]) / 2

//Plot
A = plot(SenkouA[displacement], color=color.new(colorpurple, 0), title='SenkouA')
B = plot(SenkouB, color=color.new(colorgreen, 0), title='SenkouB')
plot(switch1 ? xChikou : na, color=color.new(colorpink, 0), title='Chikou', offset=-displacement)
plot(switch2 ? Tenkan : na, color=color.new(colorred, 0), title='Tenkan')
plot(switch3 ? Kijun : na, color=color.new(colorblue, 0), title='Kijun')
fill(A, B, color=color.new(colorgreen, 90), title='Ichimoku Cloud')

//Buy and Sell signals
fukuiz = math.avg(ema2, ema8)
white = ema2 > ema8
gray = ema2 < ema8
buycond = white and white[1] == 0
sellcond = gray and gray[1] == 0
bullish = ta.barssince(buycond) < ta.barssince(sellcond)
bearish = ta.barssince(sellcond) < ta.barssince(buycond)
buy = bearish[1] and buycond and fukuiz > SenkouA[displacement] and fukuiz > SenkouB
sell = bullish[1] and sellcond and fukuiz > SenkouA[displacement] and fukuiz > SenkouB
sell2=ema2 < ema8
buy2 = white and fukuiz > SenkouA[displacement] and fukuiz > SenkouB

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//Back test

startYear = input.int(defval=2017, title='Start Year', minval=2000, maxval=3000)
startMonth = input.int(defval=1, title='Start Month', minval=1, maxval=12)
startDay = input.int(defval=1, title='Start Day', minval=1, maxval=31)
endYear = input.int(defval=2023, title='End Year', minval=2000 ,maxval=3000)
endMonth = input.int(defval=12, title='End Month', minval=1, maxval=12)
endDay = input.int(defval=31, title='End Day', minval=1, maxval=31)

start = timestamp(startYear, startMonth, startDay, 00, 00)
end = timestamp(endYear, endMonth, endDay, 23, 59)
period() => time >= start and time <= end ? true : false

if buy2 
    strategy.entry(id='long', direction=strategy.long, when=period(), comment='BUY')

if sell2
    strategy.close(id='long', when=period(), comment='SELL')





مزید