قیمت کی حدود اور کامیابیوں پر مبنی موثر مقداری تجارتی حکمت عملی

Pivot CONSOLIDATION ZONE BREAKOUT
تخلیق کی تاریخ: 2025-02-20 11:41:51 آخر میں ترمیم کریں: 2025-02-27 17:46:06
کاپی: 2 کلکس کی تعداد: 363
2
پر توجہ دیں
319
پیروکار

قیمت کی حدود اور کامیابیوں پر مبنی موثر مقداری تجارتی حکمت عملی قیمت کی حدود اور کامیابیوں پر مبنی موثر مقداری تجارتی حکمت عملی

جائزہ

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

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

اس حکمت عملی کی بنیادی منطق میں درج ذیل اہم اقدامات شامل ہیں:

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

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

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

اسٹریٹجک رسک

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-09-01 00:00:00
end: 2025-02-18 08:00:00
period: 5d
basePeriod: 5d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This code is released under the Mozilla Public License 2.0
// More details at: https://mozilla.org/MPL/2.0/
// © LonesomeTheBlue

//@version=5
strategy("Consolidation Zones - Live [Strategy]", overlay=true, max_bars_back=1100)

//-----------------------------------------------------------------------//
//                        Input Variables
//-----------------------------------------------------------------------//
prd       = input.int(defval=10, title="Loopback Period", minval=2, maxval=50)
conslen   = input.int(defval=5,  title="Min. Consolidation Length", minval=2, maxval=20)
paintcons = input.bool(defval=true, title="Color Consolidation Zone?")
zonecol   = input.color(defval=color.new(color.blue, 70), title="Zone Color")

//-----------------------------------------------------------------------//
//                  Variables and Calculations for ZZ (ZigZag) Detection
//-----------------------------------------------------------------------//

// Check if the bar has the highest High or lowest Low in the last prd bars
float hb_ = ta.highestbars(prd) == 0 ? high : na
float lb_ = ta.lowestbars(prd)  == 0 ? low  : na

// Convert to bool to check if hb_ and lb_ are valid (not na)
bool hasHb = not na(hb_)
bool hasLb = not na(lb_)

// Direction variable to determine the trend, based on the last high or low pivot
var int dir = 0

// ZigZag value and last pivot
float zz = na
float pp = na

// 1) Determine direction based on whether a high or low pivot occurred
dir := if hasHb and not hasLb
    1
else if hasLb and not hasHb
    -1
else
    dir  // unchanged direction

// 2) If both a high and low pivot occurred in the same bar
bool sameBar = hasHb and hasLb
if sameBar
    if dir == 1
        zz := hb_
    else
        zz := lb_
else
    zz := hasHb ? hb_ : (hasLb ? lb_ : na)

// 3) Storing last pivots (pp) - iterate over older bars
for x = 0 to 1000
    if na(close) or dir != dir[x]
        break
    if not na(zz[x])  // if zz[x] is a valid value
        if na(pp)
            pp := zz[x]
        else
            if dir[x] == 1 and zz[x] > pp
                pp := zz[x]
            if dir[x] == -1 and zz[x] < pp
                pp := zz[x]

//-----------------------------------------------------------------------//
//                Logic for Consolidation Zone Detection
//-----------------------------------------------------------------------//
var int   conscnt    = 0
var float condhigh   = na
var float condlow    = na

float H_ = ta.highest(conslen)
float L_ = ta.lowest(conslen)

var line upline      = na
var line dnline      = na

bool breakoutup    = false
bool breakoutdown  = false

// Check if pp has changed
bool changedPP = ta.change(pp) != 0

if changedPP
    // If enough candles are in consolidation, check for breakout
    if conscnt > conslen and not na(condhigh) and not na(condlow) and not na(pp)
        if pp > condhigh
            breakoutup := true
        if pp < condlow
            breakoutdown := true
    
    // Check if we are still "in the zone"
    bool inZone = conscnt > 0 and not na(pp) and not na(condhigh) and not na(condlow) and (pp <= condhigh) and (pp >= condlow)
    if inZone
        conscnt += 1
    else
        conscnt := 0
else
    // No change in pivot -> continue consolidation
    conscnt += 1

if conscnt >= conslen
    // At the first "touch" of the required number of candles
    if conscnt == conslen
        condhigh := H_
        condlow  := L_
    else
        condhigh := math.max(condhigh, high)
        condlow  := math.min(condlow, low)
    

//-----------------------------------------------------------------------//
//                          Drawing Fill
//-----------------------------------------------------------------------//
// Declare two plot variables (just ordinary assignment)
condHighPlot = plot(condhigh, color=na, style=plot.style_stepline)
condLowPlot  = plot(condlow,  color=na, style=plot.style_stepline)

// bool to check if we want to color the zone
bool doFill = paintcons and (conscnt > conslen)

// Calling fill
fill(condHighPlot, condLowPlot, color= doFill ? zonecol : color.new(color.white, 100))

//-----------------------------------------------------------------------//
//                          Alerts & STRATEGY
//-----------------------------------------------------------------------//
alertcondition(breakoutup,   title="Breakout Up",   message="Breakout Up")
alertcondition(breakoutdown, title="Breakout Down", message="Breakout Down")

if breakoutup
    // Close short first
    if strategy.position_size < 0
        strategy.close("Breakout Short")
    // Open LONG
    strategy.entry("Breakout Long", strategy.long)

if breakoutdown
    // Close long first
    if strategy.position_size > 0
        strategy.close("Breakout Long")
    // Open SHORT
    strategy.entry("Breakout Short", strategy.short)