عارضی زونز کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-29 17:03:27
ٹیگز:

img

جائزہ

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

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

یہ حکمت عملی قیمتوں میں اتار چڑھاؤ کے زون کی تعمیر کے لئے پچھلے N موم بتیوں کی اعلی اور کم قیمتوں کا حساب لگاتی ہے۔ جب تازہ ترین موم بتی اس زون میں داخل ہوتی ہے تو ، یہ فیصلہ کرتی ہے کہ رجحان کی تبدیلی واقع ہوئی ہے اور تجارتی سگنل تیار کرتی ہے۔

خاص طور پر، حکمت عملی مسلسل آخری N شمعدانوں کی سب سے زیادہ اور سب سے کم قیمتوں کو ٹریک کرتی ہے (قابل ایڈجسٹ پیرامیٹر N) ، جہاں:

  • سب سے کم قیمت = پچھلے N شمعدانوں میں سب سے کم نقطہ
  • سب سے زیادہ قیمت = پچھلے N شمعدانوں میں سب سے زیادہ نقطہ

اس سے قیمتوں میں اتار چڑھاؤ کا زون بنتا ہے۔

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

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

فوائد

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

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

خطرات

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

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

زون پیرامیٹرز کو ایڈجسٹ کرنے، سگنل فلٹرز کو بہتر بنانے وغیرہ کے ذریعے ان خطرات کو کم کیا جاسکتا ہے۔

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

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

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

نتیجہ

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


/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's Transient Zones Strategy v1.0", shorttitle = "TZ str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings 
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")

usecol = input(true, defval = true, title = "Use Color-Filter")
usebod = input(true, defval = true, title = "Use Body-Filter")

h_left = input(title = "H left", defval = 10)
h_right = -1
sample_period = input(title = "Sample bars for % TZ",  defval = 5000)
show_ptz = input(title = "Show PTZ", type = bool, defval = true)
show_channel = input(title = "Show channel", type = bool, defval = true)

fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//By Jurij w/ TZ percent occurrence by SPYderCrusher

//barCount = nz(barCount[1]) + 1
//check history and realtime PTZ
h_left_low = lowest(h_left)
h_left_high = highest(h_left)
newlow = low <= h_left_low
newhigh = high >= h_left_high
plotshape(newlow and show_ptz, style=shape.triangledown, location=location.belowbar, color=red)
plotshape(newhigh and show_ptz, style=shape.triangleup, location=location.abovebar, color=green)
channel_high = plot(show_channel ? h_left_low : 0, color=silver)
channel_low = plot (show_channel ? h_left_high : 0, color=silver)

//check true TZ back in history
central_bar_low = low[h_right + 1]
central_bar_high = high[h_right + 1]
full_zone_low = lowest(h_left + h_right + 1)
full_zone_high = highest(h_left + h_right + 1)
central_bar_is_highest = central_bar_high >= full_zone_high
central_bar_is_lowest = central_bar_low <= full_zone_low
plotarrow(central_bar_is_highest ? -1 : 0, offset=-h_right-1)
plotarrow(central_bar_is_lowest ? 1 : 0, offset=-h_right-1)

//Color Filter
bar = close > open ? 1 : close < open ? -1 : 0

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 3 or usebod == false

//Signals
up1 = central_bar_is_lowest and body and (bar == -1 or usecol == false)
dn1 = central_bar_is_highest and body and (bar == 1 or usecol == false)
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up1
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

مزید