وسائل لوڈ ہو رہے ہیں... لوڈنگ...

Ichimoku Kinko Hyo Cloud + QQE مقداری حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-20 16:46:56
ٹیگز:

img

جائزہ

یہ حکمت عملی ممکنہ قیمت کے رجحانات کا پتہ لگانے اور بہترین اندراج اور باہر نکلنے کے وقت کا تعین کرنے کے لئے Ichimoku Kinko Hyo Cloud اور QQE اشارے کو جوڑتی ہے۔ یہ Ichimoku Cloud لائنوں کا حساب لگاتا ہے اور رجحان کی سمت کا فیصلہ کرنے اور تجارتی سگنل پیدا کرنے کے لئے QQE اشارے کا استعمال کرتا ہے ، جبکہ تجارتی خطرہ کو کنٹرول کرنے کے لئے فلٹریشن کے لئے RSI اشارے کا استعمال کرتا ہے۔

حکمت عملی منطق

اسٹریٹیجی میں تین اہم اجزاء شامل ہیں:

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

  2. کیو کیو ای اشارے: کیو کیو ای رجحان کی سمت کا تعین کرنے کے لئے متفرق رشتہ دار قدر کی بینڈ اور ہموار رشتہ دار اقدار کا حساب لگاتا ہے۔ جب قیمت بیرونی بینڈ سے درمیانی بینڈ کے علاقے میں ٹوٹ جاتی ہے تو یہ تجارتی سگنل بھیجتا ہے۔

  3. آر ایس آئی اشارے: آر ایس آئی فیصلہ کرتا ہے کہ آیا قیمت زیادہ سے زیادہ خریدی گئی ہے یا زیادہ سے زیادہ فروخت ہوئی ہے۔ یہ زیادہ سے زیادہ لائن اور زیادہ سے زیادہ زون طے کرتا ہے ، اور QQE سگنل کا استعمال کرتے ہوئے آخری اندراج اور باہر نکلنے کے سگنل کا فیصلہ کرتا ہے۔

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

فوائد

یہ حکمت عملی فیصلے کی درستگی کو بہتر بنانے کے لئے مختلف اشارے کو جوڑتی ہے اور ایک اشارے کے فیصلے سے تعصب سے بچنے کے لئے اضافی فوائد کا استعمال کرتی ہے۔ اہم فوائد یہ ہیں:

  1. تبادلہ لائن اور Ichimoku Cloud کی بیس لائن ایک واحد MA اشارے کے مقابلے میں بہتر درستگی کے لئے قلیل مدتی اور درمیانی مدتی رجحانات دونوں کی عکاسی کرتی ہے۔

  2. QQE قابل اعتماد طریقے سے مجموعی رجحان کی سمت کا تعین کرتا ہے اور Ichimoku Cloud کے ساتھ مکمل ہوتا ہے۔

  3. آر ایس آئی فلٹرنگ مؤثر طریقے سے جھوٹے بریک آؤٹ کو فلٹر کرتی ہے اور تجارتی خطرات کو کنٹرول کرتی ہے۔

  4. اس حکمت عملی میں واضح منطق ہے اور یہ مقدار کی تجارت کے لئے سمجھنے اور لاگو کرنے میں آسان ہے۔

خطرات

اگرچہ یہ حکمت عملی مضبوط فیصلوں کے لئے متعدد اشارے استعمال کرتی ہے ، لیکن اب بھی اہم خطرات موجود ہیں:

  1. پیرامیٹر ٹیوننگ کا خطرہ۔ تبادلوں کی لائن ، بیس لائن وغیرہ کی غلط پیرامیٹر کی ترتیبات کے نتیجے میں غیر مناسب تجارتی سگنل پیدا ہوں گے۔ پیرامیٹرز کو مختلف مصنوعات کے لئے اصلاح کی ضرورت ہے۔

  2. رجحان کی تبدیلی کا خطرہ۔ رینج سے منسلک مارکیٹ کے دوران جعلی سگنل ہوسکتے ہیں۔ رجحان کی تبدیلی کے مزید اشارے کی ضرورت ہے۔

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

حل:

  1. مختلف مصنوعات کے لئے زیادہ تاریخی اعداد و شمار پر پیرامیٹرز کو بہتر بنائیں تاکہ پیرامیٹرز کی مناسب ترتیب کو یقینی بنایا جاسکے۔

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

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

بہتری کی ہدایات

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

  1. مشین لرننگ الگورتھم متعارف کرانے کے لئے متحرک طور پر حکمت عملی کے پیرامیٹرز کو ایڈجسٹ کرنے کے لئے تیار مارکیٹوں کو اپنانے، موافقت کو بہتر بنانے کے لئے.

  2. اسٹریٹجی اجزاء کو آسان تبدیلی اور الگ الگ جانچ اور اصلاح کے لئے ماڈیولر بنائیں ، ترقی کی کارکردگی کو بہتر بنائیں۔

  3. زیادہ سے زیادہ ذرائع سے مارکیٹ کے اعداد و شمار جمع کرنے اور اعلی معیار کی تربیتی سیٹ کی تعمیر کے لئے ڈیٹا انٹیگریشن ماڈیول کی تعمیر، مشین سیکھنے کی کارکردگی کو بہتر بنانا.

  4. جامع حکمت عملی کی توثیق کے لئے بیک ٹسٹنگ ٹولز تیار کریں ، پیرامیٹر ٹیوننگ کے لئے مختلف میٹرکس کو ریکارڈ کریں۔

  5. کلاؤڈ پلیٹ فارم پر حکمت عملی کے نظام کو تعینات کریں، تیزی سے متوازی بیک ٹیسٹنگ کے لئے لچکدار کمپیوٹنگ طاقت کا استعمال کریں، کم ترقیاتی اخراجات پر پیرامیٹرز کی اصلاح کو تیز کریں.


/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KryptoNight

//@version=4
// comment/uncomment Study/Strategy to easily switch modes
// study("Ichimoku Kinko Hyo Cloud - no offset - no repaint - RSI filter - alerts", shorttitle="IchiCloud + RSI - alerts", overlay=true)
// ============================================================================== Strategy mode - uncomment to activate
strategy("Ichimoku Kinko Hyo Cloud - no offset - no repaint - RSI filter - strategy", shorttitle="IchiCloud + RSI - Strategy Tester Mode", overlay=true, pyramiding = 0,
  currency = currency.EUR, initial_capital = 2000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100,
  calc_on_every_tick = true, calc_on_order_fills = true, commission_type = strategy.commission.percent, commission_value = 0.15)
// ==============================================================================

// ------------------------------------------------------------------------------

ichiCloud_offset   = input(false, title="Standard Ichimoku Cloud")                  // with the visual offset
ichiCloud_noOffset = input(true,  title="Ichimoku Cloud - no offset - no repaint")  // without the visual offset

conversion_prd = input(9, minval=1, title="Conversion Line Period - Tenkan-Sen")
baseline_prd   = input(27, minval=1, title="Base Line Period - Kijun-Sen")
baselineA_prd  = input(52, minval=1, title="Base Line Period - Kijun-Sen (auxiliary)")
leadingSpan_2prd = input(52, minval=1, title="Lagging Span 2 Periods - Senkou Span B")
displacement = input(26, minval=0, title="Displacement: (-) Chikou Span; (+) Senkou Span A")
extra_bars = input(1, minval=0, title="Displacement: additional bars")
laggingSpan_src = input(close, title="Lagging Span price source - Chikou-Span")

donchian(len) => avg(lowest(len), highest(len))
displ = displacement-extra_bars
// ------------------------------------------------------------------------------
// OFFSET:
conversion = donchian(conversion_prd)   // Conversion Line - Tenkan-Sen (9 Period)
baseline  = donchian(baseline_prd)      // Base Line - Kijun-Sen (26 Period)
baselineA = donchian(baselineA_prd)     // Base Line Period - Kijun-Sen (auxiliary)
leadingSpanA = avg(conversion, baseline)
leadingSpanB = donchian(leadingSpan_2prd)
laggingSpan = laggingSpan_src

// Color - bullish, bearish
col_cloud = leadingSpanA>=leadingSpanB ? color.green : color.red

// Cloud Lines
spanA = plot(ichiCloud_offset? leadingSpanA : na, offset=displ, title="Offset: Lead Line 1 - Senkou Span A cloud", color=color.green)
spanB = plot(ichiCloud_offset? leadingSpanB : na, offset=displ, title="Offset: Lead Line 2 - Senkou Span B cloud", color=color.red)
fill(spanA, spanB, color=col_cloud, transp=80, title="Offset: Ichimoku Cloud - Leading Span 1 & 2 based coloring")

// Other Lines
conversion_p = plot(ichiCloud_offset? conversion : na, title="Offset: Conversion Line - Tenkan-Sen", color=#0496ff)
standard_p = plot(ichiCloud_offset? baseline : na, title="Offset: Base Line - Kijun-Sen", color=#991515)
standardA_p = plot(ichiCloud_offset? baselineA : na, title="Offset: Base Line - Kijun-Sen (auxiliary)", color=color.teal)
lagging_Span_p = plot(ichiCloud_offset? laggingSpan : na, offset=-displ, title="Offset: Chikou Span (Lagging Span)", color=#459915)

// ------------------------------------------------------------------------------
// NO OFFSET:
conversion_noOffset = conversion[displ] // Conversion Line - Tenkan-Sen (9 Period)
baseline_noOffset  = baseline[displ]    // Base Line - Kijun-Sen (26 Period)
baselineA_noOffset = baselineA[displ]   // Base Line Period - Kijun-Sen (auxiliary)
leadingSpanA_noOffset = leadingSpanA[displ*2]
leadingSpanB_noOffset = leadingSpanB[displ*2]
laggingSpan_noOffset = laggingSpan[0]

// Color - bullish, bearish
col_cloud_noOffset = leadingSpanA_noOffset>=leadingSpanB_noOffset ? color.green : color.red

// Cloud Lines
spanA_noOffset = plot(ichiCloud_noOffset? leadingSpanA_noOffset : na, title="No offset: Lead Line 1 - Senkou Span A cloud", color=color.green, transp=0)
spanB_noOffset = plot(ichiCloud_noOffset? leadingSpanB_noOffset : na, title="No offset: Lead Line 2 - Senkou Span B cloud", color=color.red, transp=0)
fill(spanA_noOffset, spanB_noOffset, color=col_cloud_noOffset, transp=80, title="No offset: Ichimoku Cloud - Leading Span 1 & 2 based coloring")

// Other Lines
conversion_p_noOffset = plot(ichiCloud_noOffset? conversion_noOffset : na, title="No offset: Conversion Line - Tenkan-Sen", color=#0496ff, transp=0)
baseline_p_noOffset = plot(ichiCloud_noOffset? baseline_noOffset : na, title="No offset: Base Line - Kijun-Sen", color=#991515, transp=0)
baselineA_p_noOffset = plot(ichiCloud_noOffset? baselineA_noOffset : na, title="No offset: Base Line - Kijun-Sen (auxiliary)", color=color.teal, transp=0)
laggingSpan_p_noOffset = plot(ichiCloud_noOffset? laggingSpan_noOffset : na, title="No offset: Chikou Span (Lagging Span)", color=#459915, transp=0)

// ==============================================================================
// Conditions & Alerts (based on the lines without offset)

maxC = max(leadingSpanA_noOffset,leadingSpanB_noOffset)
minC = min(leadingSpanA_noOffset,leadingSpanB_noOffset)

// Trend start signals: crosses between Chikou Span (Lagging Span) and the Cloud (Senkou Span A, Senkou Span B)
uptrend_start   = crossover(laggingSpan_noOffset,maxC)
downtrend_start = crossunder(laggingSpan_noOffset,minC)

// Trends
uptrend   = laggingSpan_noOffset>maxC // Above Cloud
downtrend = laggingSpan_noOffset<minC // Below Cloud

// No trend: choppy trading - the price is in transition
notrend = maxC>=laggingSpan_noOffset and laggingSpan_noOffset>=minC

// Confirmations
uptrend_confirm   = crossover(leadingSpanA_noOffset,leadingSpanB_noOffset)
downtrend_confirm = crossunder(leadingSpanA_noOffset,leadingSpanB_noOffset)

// Signals - crosses between Conversion Line (Tenkan-Sen) and Base Line (Kijun-Sen)
bullish_signal = crossover(conversion_noOffset,baseline_noOffset)
bearish_signal = crossunder(conversion_noOffset,baseline_noOffset)

// Various alerts
alertcondition(uptrend_start,   title="Uptrend Started",   message="Uptrend Started")
alertcondition(downtrend_start, title="Downtrend Started", message="Downtrend Started")

alertcondition(uptrend_confirm,   title="Uptrend Confirmed",   message="Uptrend Confirmed")
alertcondition(downtrend_confirm, title="Downtrend Confirmed", message="Downtrend Confirmed")

alertcondition(bullish_signal, title="Buy Signal",  message="Buy Signal")
alertcondition(bearish_signal, title="Sell Signal", message="Sell Signal")

rsi_OBlevel = input(50, title="RSI Filter: Overbought level (0 = off)")
rsi_OSlevel = input(100,title="RSI Filter: Oversold level (100 = off)")
rsi_len = input(14,title="RSI Length")
rsi_src = input(close,title="RSI Price source")
rsi = rsi(rsi_src,rsi_len)

// Strategy -------------------------------
long_signal  = bullish_signal and uptrend   and rsi<=rsi_OSlevel // breakout filtered by the rsi
exit_long    = bearish_signal and uptrend
short_signal = bearish_signal and downtrend and rsi>=rsi_OBlevel // breakout filtered by the rsi
exit_short   = bullish_signal and downtrend

// Strategy alerts
alertcondition(long_signal, title="Long Signal - Uptrend",      message="Long Signal - Uptrend")
alertcondition(exit_long,   title="Long Exit Signal - Uptrend", message="Long Exit Signal - Uptrend")

alertcondition(short_signal, title="Long Signal - Downtrend",       message="Long Signal - Downtrend")
alertcondition(exit_short,   title="Short Exit Signal - Downtrend", message="Short Exit Signal - Downtrend")

// Plot areas for trend and transition
color_trend = uptrend? #00FF00 : downtrend? #FF0000 : notrend? color.new(#FFFFFF, 50) : na
fill(spanA_noOffset, spanB_noOffset, color=color_trend, transp=90, title="No offset: Ichimoku Cloud - Lagging Span & Cloud based coloring")

plotshape(ichiCloud_noOffset?uptrend_start:na, title="No offset: Uptrend Started", color=color.green, style=shape.circle, location=location.belowbar, size=size.tiny, text="Up")
plotshape(ichiCloud_noOffset?downtrend_start:na, title="No offset: Downtrend Started", color=color.red, style=shape.circle,location=location.abovebar, size=size.tiny, text="Down")

plotshape(ichiCloud_noOffset?uptrend_confirm:na, title="No offset: Uptrend Confirmed", color=color.green, style=shape.circle, location=location.belowbar, size=size.small, text="Confirm Up")
plotshape(ichiCloud_noOffset?downtrend_confirm:na, title="No offset: Downtrend Confirmed", color=color.red, style=shape.circle, location=location.abovebar, size=size.small, text="Confirm Down")

plotshape(ichiCloud_noOffset?long_signal:na, title="No offset: Long Signal", color=#00FF00, style=shape.triangleup, location=location.belowbar, size=size.small, text="Long")
plotshape(ichiCloud_noOffset?exit_long:na, title="No offset: Exit Long Signal", color=color.fuchsia, style=shape.triangledown, location=location.abovebar, size=size.small, text="Exit long")

plotshape(ichiCloud_noOffset?short_signal:na, title="No offset: Short Signal", color=#FF0000, style=shape.triangledown, location=location.abovebar, size=size.small, text="Short")
plotshape(ichiCloud_noOffset?exit_short:na, title="No offset: Exit Short Signal", color=color.fuchsia, style=shape.triangleup, location=location.belowbar, size=size.small, text="Exit short")

// ============================================================================== Strategy Component - uncomment to activate
if (long_signal)
    strategy.entry("Long",strategy.long)
if (exit_long)
    strategy.close("Long")
// if (short_signal)
//    strategy.entry("Short",strategy.short)
// if (exit_short)
//    strategy.close("Short")
// ==============================================================================


//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © colinmck


RSI_Period = input(10, title='RSI Length')
SF = input(5, title='RSI Smoothing')
QQE = input(2.438, title='Fast QQE Factor')
ThreshHold = input(10, title="Thresh-hold")

src = close
Wilders_Period = RSI_Period * 3 - 1

Rsi = rsi(src, RSI_Period)
RsiMa = ema(Rsi, SF)
AtrRsi = abs(RsiMa[1] - RsiMa)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
dar = ema(MaAtrRsi, Wilders_Period) * QQE

longband = 0.0
shortband = 0.0
trend = 0

DeltaFastAtrRsi = dar
RSIndex = RsiMa
newshortband = RSIndex + DeltaFastAtrRsi
newlongband = RSIndex - DeltaFastAtrRsi
longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1], newlongband) : newlongband
shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ? min(shortband[1], newshortband) : newshortband
cross_1 = cross(longband[1], RSIndex)
trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1)
FastAtrRsiTL = trend == 1 ? longband : shortband

// Find all the QQE Crosses

QQExlong = 0
QQExlong := nz(QQExlong[1])
QQExshort = 0
QQExshort := nz(QQExshort[1])
QQExlong := FastAtrRsiTL < RSIndex ? QQExlong + 1 : 0
QQExshort := FastAtrRsiTL > RSIndex ? QQExshort + 1 : 0

//Conditions

qqeLong = QQExlong == 1 ? FastAtrRsiTL[1] - 50 : na
qqeShort = QQExshort == 1 ? FastAtrRsiTL[1] - 50 : na

// Plotting

plotshape(qqeLong, title="QQE long", text="Long", textcolor=color.white, style=shape.labelup, location=location.belowbar, color=color.green, transp=0, size=size.tiny)
plotshape(qqeShort, title="QQE short", text="Short", textcolor=color.white, style=shape.labeldown, location=location.abovebar, color=color.red, transp=0, size=size.tiny)

// Alerts

alertcondition(qqeLong, title="Long", message="Long")
alertcondition(qqeShort, title="Short", message="Short")


مزید