Ichimoku کلاؤڈ بریک آؤٹ حکمت عملی مارکیٹ کی لمبی اور مختصر قوتوں پر مبنی ہے۔


تخلیق کی تاریخ: 2024-02-04 14:46:22 آخر میں ترمیم کریں: 2024-02-04 14:46:22
کاپی: 0 کلکس کی تعداد: 685
1
پر توجہ دیں
1617
پیروکار

Ichimoku کلاؤڈ بریک آؤٹ حکمت عملی مارکیٹ کی لمبی اور مختصر قوتوں پر مبنی ہے۔

جائزہ

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

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

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

رجحان کے فیصلے کے لئے ، ایک ہی وقت میں کنورژن لائن پر عبور کرنا ضروری ہے جس میں بیس لائن کی نشاندہی کی گئی ہے کہ کثیر جہتی رجحان قائم ہوا ہے۔ Lagging Span K لائن اداروں سے زیادہ ہے جس میں کثیر جہتی قوت کی مضبوطی کا اشارہ کیا گیا ہے۔ قیمت بادل میں سب سے زیادہ قیمت سے زیادہ ہے جس میں ٹریک کو توڑنے کی نشاندہی کی گئی ہے۔

مضبوط سگنل کے لئے ، ایک ہی وقت میں بادل میں کم سے کم سب سے زیادہ قیمت سے زیادہ قیمت کی ضرورت ہوتی ہے جو سپر مضبوط طاقت کی نمائش کرتی ہے ، کنورژن لائن اور بیس لائن ایک ہی کثیر سراتی طاقت سے بھرپور طاقت کی نمائش کرتی ہے۔

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

طاقت کا تجزیہ

اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اس میں Ichimoku Cloud کے رجحان کا فیصلہ کرنے اور کثیر جہتی طاقت کی تشخیص کی خصوصیات دونوں کا استعمال کیا گیا ہے۔ ایک واحد متحرک اوسط جیسے اشارے کے مقابلے میں ، Ichimoku Cloud موجودہ حالات کی طاقت کے تناظر کی عکاسی کرنے میں بہتر ہے ، جس سے سگنل کی درستگی میں اضافہ ہوتا ہے۔

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

خطرے کا تجزیہ

اس حکمت عملی کا بنیادی خطرہ یہ ہے کہ Ichimoku Cloud خود ہی کچھ پسماندگی رکھتا ہے۔ اس کے علاوہ ، مضبوط سگنل کی پیروی کی خصوصیت کے طور پر ، حکمت عملی کے فٹ ہونے کے امکانات میں اضافہ ہوسکتا ہے۔

تاخیر کے مسئلے سے پیدا ہونے والے خطرے کو کم کرنے کے لئے ، Ichimoku بادل کے پیرامیٹرز کی مدت کو مناسب طریقے سے کم کیا جاسکتا ہے۔ مضبوط سگنل سے پیدا ہونے والے خطرے کے لئے ، نقصان سے بچنے کی ترتیبات کو مضبوط بنانے کی ضرورت ہے۔

اصلاح کی سمت

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

  1. مختلف مارکیٹوں کے اعداد و شمار کی جانچ پڑتال کریں تاکہ حکمت عملی کی طاقت اور موافقت کا اندازہ لگایا جاسکے

  2. Ichimoku Cloud کے پیرامیٹرز کو بہتر بنانے کے لئے مخصوص مارکیٹ کے حالات کے مطابق

  3. ایل ایس ٹی ایم جیسے گہری سیکھنے کے الگورتھم کو آزمائیں ، جس سے بریکٹ سگنل کی طاقت کا اندازہ لگایا جاسکے

  4. توانائی کے اشارے شامل کریں تاکہ آپ کو گرنے سے بچنے کا امکان نہ ہو

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 3h
basePeriod: 15m
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/
// © mikul_se
//@version=5
strategy("mikul's Ichimoku Cloud Strategy v 2.0", shorttitle="mikul's Ichi strat", overlay=true, margin_long=100, margin_short=100, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// Strategy settings
strategySettingsGroup = "Strategy settings"
trailSource         = input.string(title="Trail Source", defval="Lows/Highs", options=["Lows/Highs", "Close", "Open"], confirm=true, group=strategySettingsGroup)
trailMethod         = input.string(title="Trail Method", defval="ATR", options=["ATR", "Percent", "Ichi exit"], confirm=true, tooltip="Ichi rules means it follows the rules of the Ichimoku cloud for exiting the trade.", group=strategySettingsGroup)
trailPercent        = input.float(title="Trail Percent", defval=10, minval=0.1, confirm=true, group=strategySettingsGroup)
swingLookback       = input.int(title="Lookback", defval=7, confirm=true, group=strategySettingsGroup)
atrPeriod           = input.int(title="ATR Period", defval=14, confirm=true, group=strategySettingsGroup)
atrMultiplier       = input.float(title="ATR Multiplier", defval=1.0, confirm=true, group=strategySettingsGroup)
addIchiExit         = input.bool(false, "Add Ichimoku exit", "You can use this to add Ichimoku cloud exit signals on top of Percent or ATR", group=strategySettingsGroup)
useTakeProfit       = input.bool(false, "Use Take Profit", confirm=true, group=strategySettingsGroup)
takeProfitPercent   = input.float(title="Take Profit Percentage", defval=5, minval=0.1, confirm=true, group=strategySettingsGroup)

// Ichimoku settings
ichimokuSettingsGroup = "Ichimoku settings"
conversionPeriods       = input.int(9, minval=1, title="Conversion Line Length", group=ichimokuSettingsGroup)
basePeriods             = input.int(26, minval=1, title="Base Line Length", group=ichimokuSettingsGroup)
laggingSpan2Periods     = input.int(52, minval=1, title="Leading Span B Length", group=ichimokuSettingsGroup)
displacement            = input.int(26, minval=1, title="Lagging Span", group=ichimokuSettingsGroup)
delta                   = input.int(26, minval=1, title="Delta", group=ichimokuSettingsGroup)

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine       = donchian(basePeriods)
leadLine1      = math.avg(conversionLine, baseLine)
leadLine2      = donchian(laggingSpan2Periods)

uppercloud     = leadLine1[displacement-1]
bottomcloud    = leadLine2[displacement-1]

// Ichi exit variables and calculations 
delta2 = delta-3
average(len) => math.avg(ta.lowest(len), ta.highest(len))

conversion_line = average(conversionPeriods)
base_line       = average(basePeriods)
lead_line_a     = math.avg(conversion_line, base_line)
lead_line_b     = average(laggingSpan2Periods)
lagging_span    = close
lead_line_a_delta = lead_line_a[delta]
lead_line_b_delta = lead_line_b[delta]
lagging_span_delta = lagging_span[delta]
prisgris = hlc3[delta]
prisgris2 = hlc3[delta2]

// Declare trailing price variable (stores our trail stop value)
var float trailPrice    = na
float next_trailPrice   = na

// Get required trailing stop variables
atrValue       = ta.atr(atrPeriod) * atrMultiplier
swingLow       = ta.lowest(low, swingLookback)
swingHigh      = ta.highest(high, swingLookback)

// Ichi plotting
plot(conversionLine, color=#2962FF, title="Conversion Line")
plot(baseLine, color=#B71C1C, title="Base Line")
plot(close, offset=-displacement + 1, color=#43A047, title="Lagging Span")
p1 = plot(leadLine1, offset=displacement - 1, color=#A5D6A7, title="Leading Span A")
p2 = plot(leadLine2, offset=displacement - 1, color=#EF9A9A, title="Leading Span B")
fill(p1, p2, color=leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

// Plotting ichi crossover signals
ichiup = ta.crossover(conversionLine, baseLine)
ichidown = ta.crossover(baseLine, conversionLine)

plotshape(ichiup ? conversionLine : na, 'Ichi long 1', style=shape.circle, location=location.absolute, offset=0, color=#00ff00b0, size=size.tiny)
plotshape(ichidown ? conversionLine : na, 'Ichi short 1', style=shape.circle, location=location.absolute, offset=0, color=#ff1100c7, size=size.tiny)

// Pamp signal
signal5 = close > bottomcloud[displacement] and close > uppercloud[displacement] and close > high[displacement]
signal5b = close[1] <= bottomcloud[displacement+1] or close[1] <= uppercloud[displacement+1] or close <= high[displacement+1]
signal6 = close > bottomcloud and close > uppercloud and close > open
signal6b = close[1] <= bottomcloud[1] or close[1] <= uppercloud[1]
signal7 = leadLine1 > leadLine2
signal7b = leadLine1[1] <= leadLine2[1]
signal8 = conversionLine > baseLine

pamp = signal5 and signal6 and signal7 and signal8 and strategy.position_size == 0 and (signal5b or signal6b or signal7b)

// Trend signal
nsignal5 = close > close[displacement]
nsignal6 = close > bottomcloud and close > uppercloud and close > open
nsignal8 = ta.crossover(conversionLine, baseLine) and conversionLine > bottomcloud and conversionLine > uppercloud and baseLine > bottomcloud and baseLine > uppercloud

trend = nsignal5 and nsignal6 and nsignal8 and strategy.position_size == 0

plotshape(trend, style=shape.triangleup, location=location.belowbar, color=color.green)

if (trend or pamp)
    trailPrice := na
    strategy.entry(trend ? "Trend" : "Pamp", direction = strategy.long)

// Get trailing stop price
if trailMethod == "ATR"
    next_trailPrice := switch trailSource
        "Close" => strategy.position_size > 0 ? close - atrValue : close + atrValue
        "Open" => strategy.position_size > 0 ? open - atrValue : open + atrValue
        => strategy.position_size > 0 ? swingLow - atrValue : swingHigh + atrValue
else if trailMethod == "Percent"
    float percentMulti = strategy.position_size > 0 ? (100 - trailPercent) / 100 : (100 + trailPercent) / 100
    next_trailPrice := switch trailSource
        "Close" => close * percentMulti
        "Open" => open * percentMulti
        => strategy.position_size > 0 ? swingLow * percentMulti : swingHigh * percentMulti
else
    short_signal = (ta.crossunder(lagging_span, prisgris)) or ta.crossover(base_line, conversion_line) and ((close)) < ((lead_line_a)) or ta.crossunder(lagging_span, prisgris) or (ta.crossover(base_line, conversion_line) and ((lagging_span) < (lead_line_a)) and ((lagging_span) < (lead_line_b)))

    if short_signal
        strategy.close("Trend", "Ichi trend over")
        strategy.close("Pamp", "Ichi pamp over")
        alert("Sell")

if (addIchiExit)
    short_signal = (ta.crossunder(lagging_span, prisgris)) or ta.crossover(base_line, conversion_line) and ((close)) < ((lead_line_a)) or ta.crossunder(lagging_span, prisgris) or (ta.crossover(base_line, conversion_line) and ((lagging_span) < (lead_line_a)) and ((lagging_span) < (lead_line_b)))

    if short_signal
        strategy.close("Trend", "Ichi trend over")
        strategy.close("Pamp", "Ichi pamp over")
        alert("Sell")

// Check for trailing stop update
if strategy.position_size != 0 and barstate.isconfirmed
    if (next_trailPrice > trailPrice or na(trailPrice)) and strategy.position_size > 0
        trailPrice := next_trailPrice
        alert(message="Trailing Stop updated for " + syminfo.tickerid + ": " + str.tostring(trailPrice, "#.#####"), freq=alert.freq_once_per_bar_close)

    if (next_trailPrice < trailPrice or na(trailPrice)) and strategy.position_size < 0
        trailPrice := next_trailPrice
        alert(message="Trailing Stop updated for " + syminfo.tickerid + ": " + str.tostring(trailPrice, "#.#####"), freq=alert.freq_once_per_bar_close)

// Draw data to chart
plot(strategy.position_size != 0 ? trailPrice : na, color=color.red, title="Trailing Stop")

// Take Profit
float profitTarget = strategy.position_avg_price * (1 + takeProfitPercent / 100)

// Exit trade if stop is hit
strategy.exit(id="trend Exit", from_entry="Trend", stop=trailPrice, limit=useTakeProfit ? profitTarget : na)
strategy.exit(id="pamp Exit", from_entry="Pamp", stop=trailPrice, limit=useTakeProfit ? profitTarget : na)

if strategy.position_size == 0
    trailPrice = 0