رینج بریک آؤٹ مومنٹم ٹریکنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-14 15:10:46
ٹیگز:

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

یہ حکمت عملی قلیل مدتی رجحانات کو پکڑنے کے لئے رینج ، رفتار اور رجحان کی پیروی کرنے والے اشارے کو جوڑتی ہے۔ قواعد یہ ہیں:

  1. ایک مدت (اعلی مائنس کم) میں قیمت کی حد کا حساب لگائیں اور اسے ہموار حد کا اشارے حاصل کرنے کے لئے ہموار کریں۔ اس سے رجحان کی طاقت کا اندازہ ہوتا ہے۔

  2. کسی وقت کے فریم پر ہل وکر کی طرح رفتار کے اشارے کا حساب لگائیں۔ ہل وکر قلیل مدتی رجحان کی سمت اور طاقت کا اندازہ کرنے میں موثر ہے۔

  3. جب ہموار رینج اشارے کا رنگ بدل جاتا ہے (مثال کے طور پر سرخ سے سبز) ، تو یہ توسیع کی حد کی نشاندہی کرتا ہے ، اور اگر ہول وکر سیدھ میں آتا ہے (مثال کے طور پر اوپر کی طرف اشارہ کرتا ہے) تو ایک طویل اندراج لیا جاتا ہے۔

  4. جب ہموار رینج رنگ بدلتا ہے (مثال کے طور پر سبز سے سرخ) ، تو یہ معاہدہ رینج کی نشاندہی کرتا ہے ، اور اگر ہول وکر سیدھ ہو جاتا ہے (مثال کے طور پر نیچے کی طرف اشارہ) تو ایک مختصر اندراج لیا جاتا ہے۔

  5. ایک رجحان کے بعد سٹاپ نقصان کے طریقہ کار کو شامل کریں جیسے ہول وکر نیچے کی طرف جاتا ہے تو باہر نکلنے کی لمبی.

سمت کی رفتار کے ساتھ پھیلاؤ کی حدیں قلیل مدتی رجحانات کو تیزی سے پکڑنے کی اجازت دیتی ہیں۔ رجحان کے بعد رکنے سے خطرے پر قابو پایا جاتا ہے۔

فوائد

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

خطرات

  • پھنسنے کا شکار، بروقت رکنے کی ضرورت
  • تجارت کی زیادہ کثرت کا مطلب زیادہ اخراجات ہیں
  • لمبی جانب کی حدوں میں کم موثر

خلاصہ

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


/*backtest
start: 2023-01-01 00:00:00
end: 2023-04-30 00:00:00
period: 4h
basePeriod: 15m
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/
// © flygalaxies

// Strategy based on the Follow Line Indicator by Dreadblitz, Hull Suite by InSilico and Range Filter Buy and Sell 5 min by guikroth
// Designed for the purpose of back testing
// Strategy:
//  - When the Range Filter Color Changes, And the HULL Suite is in that direction, Enter In that direction
//  - e.g Range Filter Changes color from red to green, and Hull Suite is in Green. Enter Long
//  - e.g Range Filter Changes color from green to red, and Hull Suite is in red. Enter Short
//
// Credits:
// Hull Suite by InSilico  https://www.tradingview.com/u/InSilico/
// Range Filter Buy and Sell 5 min https://www.tradingview.com/u/guikroth/
// Follow Line Indicator by Dreadblitz https://www.tradingview.com/u/Dreadblitz/
// Follow line not used at this moment

//@version=5
strategy("Follow The Ranging Hull", overlay=true, initial_capital = 50000)




////////////////////
// COLOR INPUTS ///
//////////////////
rngFilterColorUp = input.color(title="Range Filter Color Up", defval = color.green, group="Color")
rngFilterColorDown = input.color(title="Range Filter Color Up", defval = color.red, group="Color")
hullColorUp = input.color(title="Hull Color Up", defval = color.green, group="Color")
hullColorDown = input.color(title="Hull Color Up", defval = color.red, group="Color")
fliColorUp = input.color(title="Follow Line Color Up", defval = color.green, group="Color")
fliColorDown = input.color(title="Follow Line Color Up", defval = color.red, group="Color")
    

///////////////////////////
// Range Filter INPUTS ///
/////////////////////////
src = input(defval=ohlc4, title="Source", group="Range Filter")
per = input.int(defval=33, minval=1, title="Sampling Period", group="Range Filter")
mult = input.float(defval=2.1, minval=0.1, title="Range Multiplier", group="Range Filter", step=0.1)

/////////////////////////
// Hull Suite INPUTS ///
///////////////////////
srcHull = input(close, title="Source", group="Hull Suite")
modeSwitch = input("Ehma", title="Hull Variation", options=["Hma", "Thma", "Ehma"], group="Hull Suite")
length = input(55, title="Length(180-200 for floating S/R , 55 for swing entry)")
switchColor = input(true, "Color Hull according to trend?", group="Hull Suite")
visualSwitch  = input(true, title="Show as a Band?", group="Hull Suite")
thicknesSwitch = input(1, title="Line Thickness", group="Hull Suite")
transpSwitch = input.int(40, title="Band Transparency",step=5, group="Hull Suite")

//////////////////////////
// FOLLOW LINE INPUTS ///
////////////////////////
BBperiod      = input.int(defval = 21, title = "BB Period", minval = 1)
BBdeviations  = input.float(defval = 1.00, title = "BB Deviations", minval = 0.1, step=0.05)
UseATRfilter  = input.bool(defval = true, title = "ATR Filter")
ATRperiod     = input.int(defval = 5, title = "ATR Period", minval = 1)
hl            = input.bool(defval = false, title = "Hide Labels")

//////////////////////////
// Range Filter Logic ///
////////////////////////

smoothrng(x, t, m) =>
    wper = t * 2 - 1
    avrng = ta.ema(math.abs(x - x[1]), t)
    smoothrng = ta.ema(avrng, wper) * m
    smoothrng
smrng = smoothrng(src, per, mult)

rngfilt(x, r) =>
    rngfilt = x
    rngfilt := x > nz(rngfilt[1]) ? x - r < nz(rngfilt[1]) ? nz(rngfilt[1]) : x - r : 
       x + r > nz(rngfilt[1]) ? nz(rngfilt[1]) : x + r
    rngfilt
filt = rngfilt(src, smrng)

upward = 0.0
upward := filt > filt[1] ? nz(upward[1]) + 1 : filt < filt[1] ? 0 : nz(upward[1])
downward = 0.0
downward := filt < filt[1] ? nz(downward[1]) + 1 : filt > filt[1] ? 0 : nz(downward[1])

filtcolor = upward > 0 ? rngFilterColorUp : downward > 0 ? rngFilterColorDown : color.orange

filtplot = plot(filt, color=filtcolor, linewidth=3, title="Range Filter")

////////////////////////
// Hull Suite Logic ///
//////////////////////


HMA(_srcHull, _length) =>  ta.wma(2 * ta.wma(_srcHull, _length / 2) - ta.wma(_srcHull, _length), math.round(math.sqrt(_length)))
EHMA(_srcHull, _length) =>  ta.ema(2 * ta.ema(_srcHull, _length / 2) - ta.ema(_srcHull, _length), math.round(math.sqrt(_length)))
THMA(_srcHull, _length) =>  ta.wma(ta.wma(_srcHull,_length / 3) * 3 - ta.wma(_srcHull, _length / 2) - ta.wma(_srcHull, _length), _length)

Mode(modeSwitch, src, len) =>
      modeSwitch == "Hma"  ? HMA(src, len) :
      modeSwitch == "Ehma" ? EHMA(src, len) : 
      modeSwitch == "Thma" ? THMA(src, len/2) : na

_hull = Mode(modeSwitch, src, int(length))
HULL =  _hull
MHULL = HULL[0]
SHULL = HULL[2]

hullColor = switchColor ? (HULL > HULL[2] ? hullColorUp : hullColorDown) : #ff9800
Fi1 = plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
Fi2 = plot(visualSwitch ? SHULL : na, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)

fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)


/////////////////////////
// Follow Line Logic ///
///////////////////////
BBUpper=ta.sma (close,BBperiod)+ta.stdev(close, BBperiod)*BBdeviations
BBLower=ta.sma (close,BBperiod)-ta.stdev(close, BBperiod)*BBdeviations

TrendLine = 0.0
iTrend = 0.0
buy = 0.0
sell = 0.0

BBSignal = close>BBUpper? 1 : close<BBLower? -1 : 0

if BBSignal == 1 and UseATRfilter == 1
    TrendLine:=low-ta.atr(ATRperiod)
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 1
    TrendLine:=high+ta.atr(ATRperiod)
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 1
    TrendLine:=TrendLine[1]
//
if BBSignal == 1 and UseATRfilter == 0
    TrendLine:=low
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 0
    TrendLine:=high
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 0
    TrendLine:=TrendLine[1]
//
iTrend:=iTrend[1]
if TrendLine>TrendLine[1] 
    iTrend:=1
if TrendLine<TrendLine[1] 
    iTrend:=-1
//
buy:=iTrend[1]==-1 and iTrend==1 ? 1 : na
sell:=iTrend[1]==1 and iTrend==-1? 1 : na
//
plot(TrendLine, color=iTrend > 0? fliColorUp : fliColorDown ,style=plot.style_line,linewidth=2,transp=0,title="Trend Line") 
plotshape(buy == 1 and hl == false? TrendLine-ta.atr(8) :na, text='💣', style= shape.labelup, location=location.absolute, color=color.blue, textcolor=color.white, offset=0, transp=0,size=size.auto)
plotshape(sell == 1 and hl == false ?TrendLine+ta.atr(8):na, text='🔨', style=shape.labeldown, location=location.absolute, color=color.red, textcolor=color.white, offset=0, transp=0,size=size.auto)



if(true)
    // RANGE FILTER ENTRY LONG WITH HULL
    // if(filtcolor[1] == rngFilterColorDown and filtcolor == rngFilterColorUp)
    strategy.entry("rngFiltLong", strategy.long, when = buy == 1 and hl == false)
    // RANGE FILTER ENTRY SHORT WITH HULL
    // if(filtcolor[1] == rngFilterColorUp and filtcolor == rngFilterColorDown)
    strategy.entry("rngFiltShort", strategy.short, when = sell == 1 and hl == false)
        
    
    // strategy.close("rngFiltLong", when = HULL < HULL[2] )
    // strategy.close("rngFiltShort", when = HULL > HULL[2] )
    
    
    



مزید