Ichimoku Kinko Hyo اور اوسط سمتاتی انڈیکس پر مبنی مقداری تجارتی حکمت عملی


تخلیق کی تاریخ: 2024-01-23 11:14:54 آخر میں ترمیم کریں: 2024-01-23 11:14:54
کاپی: 0 کلکس کی تعداد: 820
1
پر توجہ دیں
1617
پیروکار

Ichimoku Kinko Hyo اور اوسط سمتاتی انڈیکس پر مبنی مقداری تجارتی حکمت عملی

جائزہ

اس حکمت عملی میں اسٹاک کی قیمتوں میں رجحانات اور اہم معاون مزاحمت کی سطحوں کی نشاندہی کرنے کے لئے دو تکنیکی اشارے استعمال کیے گئے ہیں۔ یہ حکمت عملی ایک رجحان کے دوران بڑے پیمانے پر قیمت کے اتار چڑھاو کو پکڑنے کے لئے تیار کی گئی ہے۔

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

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

ADX قیمتوں کے رجحانات کا اندازہ لگانے کے لئے استعمال کیا جاتا ہے۔ جب + DI اور -DI واضح طور پر الگ ہوجاتے ہیں تو ، رجحانات کی نشاندہی کی جاتی ہے۔ جب + DI اور -DI قریب ہوتے ہیں تو ، صف بندی کی نشاندہی کی جاتی ہے۔ یہ حکمت عملی تب ہی تجارت کا اشارہ دیتی ہے جب ADX 20 سے زیادہ ہو ، تاکہ صف بندی کی مدت میں جعلی توڑنے سے بچ سکے۔

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

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

  • دو اشارے کا مجموعہ استعمال کرکے ٹریڈنگ سگنل کو زیادہ قابل اعتماد بنایا گیا
  • ADX کے استعمال سے تجارت کو درست کرنے میں غلطیوں سے بچا جاسکتا ہے
  • ریٹرننگ بہتر ہے، منافع کا خطرہ زیادہ ہے

خطرے کا تجزیہ

  • یہ حکمت عملی رجحان سازی اسٹاک کے لئے زیادہ موزوں ہے ، اور اس میں کوئی اشارہ نہیں ہوسکتا ہے
  • ایک نظر میں توازن کی میز خود میں ردعمل کی تاخیر کا مسئلہ ہے ، جس سے تیزی سے الٹ جانے کا موقع ضائع ہوسکتا ہے
  • ای ڈی ایکس کے فیصلے میں ناکامی اور غلط فہمی کا امکان

اصلاح کی سمت

  • مختلف پیرامیٹرز کے مجموعے کی جانچ کی جاسکتی ہے ، جیسے ٹرانسمیشن لائن ، بیس لائن کی مدت میں ایڈجسٹمنٹ
  • دیگر اشارے جیسے MACD، KD وغیرہ کے ساتھ مل کر مزید بہتر بنایا جا سکتا ہے
  • مختلف ADX فلٹرنگ قواعد یا شرائط پر تحقیق کی جا سکتی ہے

خلاصہ کریں۔

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

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

//@version=4
strategy(title="Ichimoku + ADX", shorttitle="Ichimoku & ADX Backtest", overlay=true)

//------------------------------
//------------------------------
// ICHIMOKU
//------------------------------
//------------------------------

conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

Tenkan = donchian(conversionPeriods)
Kijun = donchian(basePeriods)
SSA = avg(Tenkan, Kijun)
SSB = donchian(laggingSpan2Periods)

SSAdisp = SSA[displacement]
SSBdisp = SSB[displacement]

// Plot Ichimoku
// --------------------

plot(Tenkan, color=color.red, title="Tenkan")
plot(Kijun, color=color.blue, title="Kijun")
plot(close, offset = -displacement + 1, color=#459915, title="Chikou")


p1 = plot(SSA, offset = displacement - 1, color=color.green,
 title="Senkou A")
p2 = plot(SSB, offset = displacement - 1, color=color.red, 
 title="Senkou B")
fill(p1, p2, color = SSA > SSB ? color.green : color.red)

//------------------------------
//------------------------------
// ADX
//------------------------------
//------------------------------

adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
keyLevel = input(23, title="key level for ADX")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
	minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) => 
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
	[adx, plus, minus]

[sig, up, down] = adx(dilen, adxlen)

// Plot ADX
// --------------------

//plot(sig, color=color.black, title="ADX")
//plot(up, color=color.green, title="+DI",linewidth=2, style=plot.style_columns, transp=40)
//plot(down, color=color.red, title="-DI",linewidth=2, style=plot.style_columns, transp=40)
//plot(keyLevel, color=color.white, title="Key Level")



//------------------------------
//------------------------------
// STRATEGY
//------------------------------
//------------------------------

// Buy & Sell Signals
// --------------------

// ADX
ABuy1 = up > keyLevel and up - down >5 and sig > down and sig < keyLevel * 2
ASell1 = down > keyLevel and down - up >5 and sig > up and sig < keyLevel * 2


// ICHIMOKU

Bull = close >= max(SSAdisp, SSBdisp)
Bear = close <= min(SSAdisp, SSBdisp)

//  1. Bull
Buy1 = (close >= max(SSAdisp, SSBdisp)) ? 1 : 0
Buy2 = (Tenkan - Kijun >= 0.001) ? 1 : 0
Buy3 = SSA > SSB ? 1 : 0
Buy4 = sig > 20 ? 1 : 0
Buy4a = close - close[displacement] >=0.001 ? 1:0
Buy5 = Buy1 and Buy2 and Buy3 and Buy4 and Buy4a and not(Buy1[1] and Buy2[1] and Buy3[1])

//  1. Bear
Sell1 = (close <= min(SSAdisp, SSBdisp)) ? 1 : 0
Sell2 = (Kijun - Tenkan >= 0.001) ? 1 : 0
Sell3 = SSA < SSB ? 1 : 0
Sell4 = sig > 20 ? 1 : 0
Sell4a = close <= close[displacement]
Sell5 = Sell1 and Sell2 and Sell3 and Sell4 and Sell4a and not(Sell1[1] and Sell2[1] and Sell3[1])


// CONSOLIDATED

buysignal = Buy5
buyexitsignal = crossunder(close,Kijun)

sellsignal = Sell5 
sellexitsignal = crossover(close,Kijun)    

longCondition = buysignal
shortCondition = sellsignal
    
// Plot Indicators
// --------------------

// ----- Buy & Sell

//plotshape(longCondition, title = "Buy Signal", text ="BUY", textcolor =#FFFFFF , style=shape.labelup, size = size.tiny, location=location.belowbar, color = #1B8112, transp = 0)
//plotshape(shortCondition, title = "Short Signal", text ="SHORT", textcolor =#FFFFFF , style=shape.labeldown, size = size.tiny, location=location.abovebar, color = #000000, transp = 0)

// ----- Ichimoku Signals

//plotshape(Sell2, title = "Sell Signal", text ="Kumo Twist", textcolor =#FFFFFF , style=shape.labelup, size = size.tiny, location=location.top, color = color.black, transp = 0)
//plotshape(Sell3, title = "Sell Signal", text ="TK/KJ", textcolor =#FFFFFF , style=shape.labelup, size = size.tiny, location=location.bottom, color = color.black, transp = 0)

//plotshape(Buy4, title = "Buy Signal", text ="Kumo Twist", textcolor =#FFFFFF , style=shape.diamond, size = size.tiny, location=location.belowbar, color = color.blue, transp = 0)
//plotshape(Buy3, title = "Buy Signal", text ="TK/KJ", textcolor =#FFFFFF , style=shape.circle, size = size.tiny, location=location.abovebar, color = color.green, transp = 0)
//plotshape(Buy4, title = "Buy Signal", text ="TK/KJ", textcolor =#FFFFFF , style=shape.circle, size = size.tiny, location=location.belowbar, color = color.red, transp = 0)



//plotshape(buyexitsignal, title = "Buy Exit", style=shape.triangledown, size = size.tiny, location=location.abovebar, color = color.green, transp = 0)
//plotshape(sellexitsignal, title = "Buy Exit", style=shape.triangleup, size = size.tiny, location=location.belowbar, color = color.black, transp = 0)

//------------------------------
//------------------------------
// EXECUTION
//------------------------------
//------------------------------


// Test Range
// --------------------

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 2, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2015, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// Orders
// --------------------


if longCondition
    strategy.entry("Buy", strategy.long, when=window())
    
if buyexitsignal 
    strategy.close("Buy")
    
if shortCondition
    strategy.entry("Sell", strategy.short, when=window())

if sellexitsignal
    strategy.close("Sell")