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


تخلیق کی تاریخ: 2024-05-15 16:30:14 آخر میں ترمیم کریں: 2024-05-15 16:30:14
کاپی: 1 کلکس کی تعداد: 568
1
پر توجہ دیں
1617
پیروکار

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

جائزہ

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

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

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

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

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

اسٹریٹجک رسک

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

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

  1. سگنل کی درستگی اور وشوسنییتا کو بہتر بنانے کے لئے مزید تکنیکی اشارے جیسے ٹرانسمیشن، MACD وغیرہ کو متعارف کرانے پر غور کیا جاسکتا ہے۔
  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')