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

ایس آر بریک آؤٹ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-05-15 16:30:14
ٹیگز:

img

جائزہ

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

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

  1. ایک مخصوص وقت کی مدت کے دوران اعلی اور کم حساب کرنے کے لئے pivothigh اور pivotlow افعال کا استعمال کریں اور انہیں صفوں میں ذخیرہ کریں.
  2. اس بات کا تعین کریں کہ کیا موجودہ اختتامی قیمت مزاحمت کی سطح سے زیادہ ہے۔ اگر ایسا ہے تو ، اس کا فیصلہ ایک تیزی سے توڑ کے طور پر کیا جاتا ہے اور ایک لمبا سگنل تیار کیا جاتا ہے۔
  3. اس بات کا تعین کریں کہ کیا موجودہ اختتامی قیمت سپورٹ کی سطح سے کم ہے۔ اگر ایسا ہے تو ، اس کا فیصلہ bearish توڑ کے طور پر کیا جاتا ہے اور ایک مختصر سگنل تیار کیا جاتا ہے۔
  4. تجارتی سگنل پیدا کرنے کے بعد، مقررہ سٹاپ نقصان اور منافع لینے کے نرخوں کی بنیاد پر اسٹاپ نقصان اور منافع لینے کے تناسب کا حساب لگائیں، اور اس کے مطابق سٹاپ نقصان اور منافع لینے کے احکامات مقرر کریں۔
  5. بریک آؤٹ کی سمت کے مطابق متعلقہ بریک آؤٹ رینج بنائیں۔

حکمت عملی کے فوائد

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

حکمت عملی کے خطرات

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

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

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

خلاصہ

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


/*backtest
start: 2024-05-07 00:00:00
end: 2024-05-14 00:00:00
period: 10m
basePeriod: 1m
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/
// © LonesomeTheBlue © chanu_lev10k

//@version=5
strategy('SR Breakout Strategy', overlay=true, max_bars_back=500, max_lines_count=400)
prd = input.int(defval=5, title='Period', minval=2)
bo_len = input.int(defval=71, title='Max Breakout Length', minval=30, maxval=300)
cwidthu = input.float(defval=3., title='Threshold Rate %', minval=1., maxval=10) / 100
mintest = input.int(defval=2, title='Minimum Number of Tests', minval=1)
bocolorup = input.color(defval=color.blue, title='Breakout Colors', inline='bocol')
bocolordown = input.color(defval=color.red, title='', inline='bocol')
// lstyle = input.string(defval=line.style_solid, title='Line Style')
issl = input.bool(title='SL', inline='linesl1', group='Stop Loss / Take Profit:', defval=false)
slpercent = input.float(title=', %', inline='linesl1', group='Stop Loss / Take Profit:', defval=18.0, minval=0.0, step=0.1)
istp = input.bool(title='TP', inline='linetp1', group='Stop Loss / Take Profit:', defval=false)
tppercent = input.float(title=', %', inline='linetp1', group='Stop Loss / Take Profit:', defval=18.0, minval=0.0, step=0.1)

//width
lll = math.max(math.min(bar_index, 300), 1)
float h_ = ta.highest(lll)
float l_ = ta.lowest(lll)
float chwidth = (h_ - l_) * cwidthu

// check if PH/PL
ph = ta.pivothigh(prd, prd)
pl = ta.pivotlow(prd, prd)

//keep Pivot Points and their locations in the arrays
var phval = array.new_float(0)
var phloc = array.new_int(0)
var plval = array.new_float(0)
var plloc = array.new_int(0)

// keep PH/PL levels and locations
if bool(ph)
    array.unshift(phval, ph)
    array.unshift(phloc, bar_index - prd)
    if array.size(phval) > 1  // cleanup old ones
        for x = array.size(phloc) - 1 to 1 by 1
            if bar_index - array.get(phloc, x) > bo_len
                array.pop(phloc)
                array.pop(phval)

if bool(pl)
    array.unshift(plval, pl)
    array.unshift(plloc, bar_index - prd)
    if array.size(plval) > 1  // cleanup old ones
        for x = array.size(plloc) - 1 to 1 by 1
            if bar_index - array.get(plloc, x) > bo_len
                array.pop(plloc)
                array.pop(plval)

// check bullish cup
float bomax = na
int bostart = bar_index
num = 0
hgst = ta.highest(prd)[1]
if array.size(phval) >= mintest and close > open and close > hgst
    bomax := array.get(phval, 0)
    xx = 0
    for x = 0 to array.size(phval) - 1 by 1
        if array.get(phval, x) >= close
            break
        xx := x
        bomax := math.max(bomax, array.get(phval, x))
        bomax
    if xx >= mintest and open <= bomax
        for x = 0 to xx by 1
            if array.get(phval, x) <= bomax and array.get(phval, x) >= bomax - chwidth
                num += 1
                bostart := array.get(phloc, x)
                bostart
        if num < mintest or hgst >= bomax
            bomax := na
            bomax

// if not na(bomax) and num >= mintest
//     line.new(x1=bar_index, y1=bomax, x2=bostart, y2=bomax, color=bocolorup)
//     line.new(x1=bar_index, y1=bomax - chwidth, x2=bostart, y2=bomax - chwidth, color=bocolorup)
//     line.new(x1=bostart, y1=bomax - chwidth, x2=bostart, y2=bomax, color=bocolorup)
//     line.new(x1=bar_index, y1=bomax - chwidth, x2=bar_index, y2=bomax, color=bocolorup)

plotshape(not na(bomax) and num >= mintest, location=location.belowbar, style=shape.triangleup, color=bocolorup, size=size.small)
//alertcondition(not na(bomax) and num >= mintest, title='Breakout', message='Breakout')

// check bearish cup
float bomin = na
bostart := bar_index
num1 = 0
lwst = ta.lowest(prd)[1]
if array.size(plval) >= mintest and close < open and close < lwst
    bomin := array.get(plval, 0)
    xx = 0
    for x = 0 to array.size(plval) - 1 by 1
        if array.get(plval, x) <= close
            break
        xx := x
        bomin := math.min(bomin, array.get(plval, x))
        bomin
    if xx >= mintest and open >= bomin
        for x = 0 to xx by 1
            if array.get(plval, x) >= bomin and array.get(plval, x) <= bomin + chwidth
                num1 += 1
                bostart := array.get(plloc, x)
                bostart
        if num1 < mintest or lwst <= bomin
            bomin := na
            bomin

// if not na(bomin) and num1 >= mintest
//     line.new(x1=bar_index, y1=bomin, x2=bostart, y2=bomin, color=bocolordown)
//     line.new(x1=bar_index, y1=bomin + chwidth, x2=bostart, y2=bomin + chwidth, color=bocolordown)
//     line.new(x1=bostart, y1=bomin + chwidth, x2=bostart, y2=bomin, color=bocolordown)
//     line.new(x1=bar_index, y1=bomin + chwidth, x2=bar_index, y2=bomin, color=bocolordown)

plotshape(not na(bomin) and num1 >= mintest, location=location.abovebar, style=shape.triangledown, color=bocolordown, size=size.small)

//alertcondition(not na(bomin) and num1 >= mintest, title='Breakdown', message='Breakdown')
//alertcondition(not na(bomax) and num >= mintest or not na(bomin) and num1 >= mintest, title='Breakout or Breakdown', message='Breakout or Breakdown')

// Long Short conditions
longCondition = not na(bomax) and num >= mintest
if longCondition
    strategy.entry('Long', strategy.long)
shortCondition = not na(bomin) and num1 >= mintest
if shortCondition
    strategy.entry('Short', strategy.short)

// Entry price / Take Profit / Stop Loss
//entryprice = strategy.position_avg_price
entryprice = ta.valuewhen(condition=longCondition or shortCondition, source=close, occurrence=0)
pm = longCondition ? 1 : shortCondition ? -1 : 1 / math.sign(strategy.position_size)
takeprofit = entryprice * (1 + pm * tppercent * 0.01)
stoploss = entryprice * (1 - pm * slpercent * 0.01)
strategy.exit(id='Exit Long', from_entry='Long', stop=issl ? stoploss : na, limit=istp ? takeprofit : na, alert_message='Exit Long')
strategy.exit(id='Exit Short', from_entry='Short', stop=issl ? stoploss : na, limit=istp ? takeprofit : na, alert_message='Exit Short')

مزید