کیفیئر کی پوشیدہ ایم ایف آئی/اسٹوچ ڈائیورجنسی/ٹرینڈ بریکر ٹریڈنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-19 15:18:09
ٹیگز:

img

جائزہ

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

تجارتی منطق

اس حکمت عملی میں دو انٹری منطق ہیں:

  1. ایم ایف آئی پوشیدہ تغیر + اسٹاک فلٹر: جب قیمت اور ایم ایف آئی کے مابین پوشیدہ تغیر ہوتا ہے ، یعنی قیمت نئی اونچائی تک پہنچ جاتی ہے لیکن ایم ایف آئی نہیں پہنچتی ہے تو ، یہ ایک ممکنہ رجحان کی تبدیلی کی نشاندہی کرتا ہے۔ غلط اشاروں سے بچنے کے ل we ، ہم مزید فلٹر کے طور پر اسٹاک> 50٪ شامل کرتے ہیں۔

  2. اسٹاک / ایم ایف آئی ٹرینڈ سسٹم: جب اسٹاک> 50٪ اور ایم ایف آئی 50 سے اوپر جاتا ہے تو ، اس سے عمل میں ایک اپ ٹرینڈ کا اشارہ ہوتا ہے۔ ہم بہتر رسک ایڈجسٹڈ منافع کے ل the اس رجحان پر سوار ہوسکتے ہیں۔

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

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

فوائد کا تجزیہ

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

خطرے کا تجزیہ

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

ہم ان مسائل کو اضافی رجحان اور مارکیٹ کی حالت فلٹرز، زیادہ روادار TP / SL سطحوں وغیرہ کے ذریعے حل کرتے ہیں۔ بڑے سیاہ بچھو واقعات کی صورت میں یا وقت پر نقصانات کو کم کرنے میں ناکامی کے معاملے میں اب بھی اہم نقصانات ہوسکتے ہیں۔

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

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

  1. بہتر پوشیدہ تغیرات کی درستگی کے لئے ایم ایف آئی / اسٹاک پیرامیٹرز کو بہتر بنائیں

  2. مارکیٹ کے حالات کا تعین کرنے اور پیرامیٹرز کو ٹھیک کرنے کے لئے ایم ایل ماڈل شامل کریں

  3. منافع بخش اور خطرے کے کنٹرول کو متوازن کرنے کے لئے ٹیسٹ متحرک TP/SL

  4. کراس اثاثوں کے اختلافات کی جانچ پڑتال کریں اور ذاتی پیرامیٹرز مقرر کریں

  5. بہتر معیار کے انتخاب کے لئے اسٹاک انتخاب فلٹرز شامل کریں

یہ کوششیں ممکنہ طور پر استحکام اور منافع کو مزید بڑھا سکتی ہیں۔

نتیجہ

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


/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
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/
// © kifier

//@version=4
strategy("Kifier's MFI/STOCH Hidden Divergence/Trend Beater", shorttitle = "Kifier's MFI/STOCH", overlay=false, margin_long=100, margin_short=100, default_qty_type  = strategy.percent_of_equity, default_qty_value = 95, max_boxes_count = 500)

//Values
enb_date     = input(false                                  ,"Enable Date Range?",      type = input.bool, inline = "1")
enb_current  = input(true                                   ,"Today as End Date" ,      type = input.bool, inline = "1")
i_start_date = input(timestamp("01 Jan 2021 00:00 +0300")   ,"Start Date"        ,      type=input.time)
i_end_date   = input(timestamp("16 July 2021 00:00 +0300")  ,"End Date"          ,      type=input.time)

time_check   = true

i_vwma_length   = input(50,     "VWMA Length"               ,type = input.integer,   group = "Indicator Settings", inline = "2")
i_sma_length    = input(50,     "SMA Length"                ,type = input.integer,   group = "Indicator Settings", inline = "2")
i_stoch_length  = input(28,     "Stoch Length"              ,type = input.integer,   group = "Indicator Settings", inline = "3")
i_mfi_length    = input(7 ,     "MFI Length"                ,type = input.integer,   group = "Indicator Settings", inline = "3")
i_obv_length    = input(100,    "OBV Length"                ,type = input.integer,   group = "Indicator Settings")
i_atr_len       = input(100,    "ATR Ranging-trend len"     ,type = input.integer,   group = "Indicator Settings", tooltip = "This is the length of the ATR Emas that check when the market in a general trend or is just ranging")


i_div_price     = input(5       ,"Price Divergant Pivots"   ,type = input.integer, group = "Divergance Settings")
i_inacc         = input(0.05    ,"Price Inaccuracy"         ,type = input.float  , group = "Divergance Settings")
i_div_length    = input(3       ,"Divergance Valid Period"  ,type = input.integer, group = "Divergance Settings")
i_mfi_left      = input(5       ,"MFI Left/Right Pivots"    ,type = input.integer, group = "Divergance Settings", inline = "4")
i_mfi_right     = input(2       ,""                         ,type = input.integer, group = "Divergance Settings", inline = "4")

tp_percentage   = input(10  ,   "TP Percentage"         ,type = input.float             , group = "Exit Settings")/100
_inacc          = input(0.03,   "Support Inaccuracy"    ,type = input.float, step = 0.01, group = "Exit Settings")

enb_stoch_mfi     = input(true, "Use Stoch/MFI Trend"      , type = input.bool, group = "Individual Entries")
enb_stoch_mfi_div = input(true, "Use Stoch/MFI Divergance ", type = input.bool, group = "Individual Entries")

c_mfi           = input(color.yellow    ,"MFI/STOCH Colour     "        , type = input.color, group = "Indicator Colours", inline = "os")
c_stoch         = input(color.silver    ,""                             , type = input.color, group = "Indicator Colours", inline = "os")
c_buy           = input(color.green     ,"Buy/Sell Colour      "        , type = input.color, group = "Indicator Colours", inline = "pos")
c_sell          = input(color.red       ,""                             , type = input.color, group = "Indicator Colours", inline = "pos")
c_flat          = input(color.blue      ,"Flat/Trending Colours"        , type = input.color, group = "Indicator Colours", inline = "trend")
c_longtrend     = input(color.green     ,""                             , type = input.color, group = "Indicator Colours", inline = "trend")

//Global Variables
var float tpprice = na 

f_c_gradientAdvDec(_source, _center, _c_bear, _c_bull) =>
    var float _maxAdvDec = 0.
    var float _qtyAdvDec = 0.
    bool  _xUp     = crossover(_source, _center)
    bool  _xDn     = crossunder(_source, _center)
    float _chg     = change(_source)
    bool  _up      = _chg > 0
    bool  _dn      = _chg < 0
    bool  _srcBull = _source > _center
    bool  _srcBear = _source < _center
    _qtyAdvDec := 
      _srcBull ? _xUp ? 1 : _up ? _qtyAdvDec + 1 : _dn ? max(1, _qtyAdvDec - 1) : _qtyAdvDec :
      _srcBear ? _xDn ? 1 : _dn ? _qtyAdvDec + 1 : _up ? max(1, _qtyAdvDec - 1) : _qtyAdvDec : _qtyAdvDec
    _maxAdvDec := max(_maxAdvDec, _qtyAdvDec)
    float _transp = 100 - (_qtyAdvDec * 100 / _maxAdvDec)
    var color _return = na
    _return := _srcBull ? color.new(_c_bull, _transp) : _srcBear ? color.new(_c_bear, _transp) : _return

//Simple Sup/Res
var float _pH = na
var float _pL = na
_ph = pivothigh(high,20,20)
_pl = pivotlow(low,20,20)
_high_inacc = _inacc * high
_low_inacc = _inacc * low

if _ph
    _pH := high
if (high-_high_inacc) > _pH and _ph
    _pH := high
    _pH := nz(_pH)

if _pl
    _pL := low
if (low+_low_inacc) < _pL[1] 
    _pL := low
    _pL := nz(_pL)  

broke_res = iff(crossover(close, _pH), true, false)

//Indicator Initialisation
s_stoch = stoch(close, high, low, i_stoch_length) 
s_vwma = vwma(close,i_vwma_length)
s_sma = sma(close,i_sma_length)

//MONEY FLOW + BBW
atr1 =ema((atr(14)/close),i_atr_len/2)
atr2 =ema((atr(14)/close), i_atr_len)
is_ranging = iff(atr1 < atr2, true, false)
s_mfi = mfi(close,i_mfi_length)
overTop = iff(s_mfi >= 90, true, false)
underBot = iff(s_mfi <= 10, true, false)

//Price Divergance
ph = pivothigh(high, i_div_price,i_div_price)
pl = pivotlow(low,i_div_price,i_div_price)

var float pH = 0.0
var float pL = 0.0

high_acc = high * (i_inacc)
low_acc = low * i_inacc

if (high-high_acc) > pH or (high+high_acc < pH) and ph
    pH := high
    pH := nz(pH)
if (low+low_acc) < pL or (low-low_acc > pL) and pl
    pL := low
    pL := nz(pL)

higher_low = false
lower_low = false
//Filter out innacurate
if ph or pl
    if pL < pL[1]
        lower_low := true
    if pL > pL[1]
        higher_low := true
        
//MFI Divergance
mh = pivothigh(s_mfi, i_mfi_left,i_mfi_right)
ml = pivotlow(s_mfi, i_mfi_left,i_mfi_right)
bl = bar_index

var float mH = 0.0
var float mL = 0.0
var int bL = 0

if mh
    mH := highest(nz(mh),i_mfi_left)
    mH := nz(mH)
if ml
    bL := bar_index
    mL := ml
    mL := nz(mL)

higher_low_m = false
lower_low_m = false

if ml 
    if mL < mL[1]
        lower_low_m := true
    if mL > mL[1]
        higher_low_m := true

//Combintion
var int price_range = na
var int rsi_range = na
var int mfi_range = na

//Higher low on price, lower low on rsi, then check with stoch
mfi_div_bullish = iff(higher_low and higher_low_m, true, false)

if mfi_div_bullish
    price_range := 0
    rsi_range := 0

//VWMA/SMA/OBV
_src = s_vwma-s_sma
sd_src = stdev(_src,14)
pooled_src = (_src/sd_src)*2

sd_s_vwma = stdev(s_vwma,14)
sd_s_sma = stdev(s_sma,14)

longTrend = obv > ema(obv,100) and is_ranging == false
crossOver = crossover(s_vwma , s_sma)
crossingOver = (s_vwma > s_sma) and (close >= s_vwma) 
crossUnder = crossunder(s_vwma, s_sma)
crossingUnder = (s_vwma < s_sma) and (close <= s_vwma)

hist_color = f_c_gradientAdvDec(s_vwma-s_sma, (s_vwma-s_sma)/2, color.new(c_sell,90), color.new(c_buy,80))

//Strategy Entries
mfi_stoch_trend = iff(enb_stoch_mfi, iff(s_stoch >= 50 and crossover(s_mfi, 50) and crossingOver and longTrend and is_ranging == false, true, false), false)

var buy_counter_rsi = 0
var buy_counter_mfi = 0

mfi_div = iff(enb_stoch_mfi_div, iff(mfi_div_bullish and crossingOver and s_stoch >= 50 and is_ranging, true, false), false)

if mfi_div
    buy_counter_mfi := bar_index + 5
    
mfi_divergent_buy = iff(bar_index <= buy_counter_mfi and strategy.position_size == 0, true, false)

//Strategy Entries
order_fired = false
var float previousRes = 0.0

tpprice := strategy.position_avg_price * (1+tp_percentage)
if time_check
    if mfi_stoch_trend
        strategy.entry("Buy", true, comment = "[B] STOCH/MFI")
        order_fired := true
    if mfi_divergent_buy
        strategy.entry("Buy", true, comment = "[B] MFI Hidden Divergance")
        order_fired := true
        
    if order_fired 
        previousRes := _pL
    if strategy.position_size > 0
        strategy.exit("Buy", limit = tpprice, comment = "TP")
    if close <= previousRes 
        strategy.exit("Buy", stop = previousRes, comment = "SL")
        
//Drawings
hline(0, "Base", color.white)
hline(100, "Max", color.white)

p_stoch = plot(s_stoch, color = c_stoch)
p_mfi = plot(s_mfi, color = c_mfi)

hline(70, "Top Line")
p_mid = plot(50, "Mid Line", color.new(color.white,100))
hline(50, "Mid Line")
hline(30, "Bot Line")
fill(p_stoch, p_mid, color.new(c_stoch, 60))

plotshape(crossOver ? 5 : crossUnder ? -5 : na, style = shape.square, color = crossOver ? c_buy : crossUnder ? c_sell : na, size = size.tiny, location = location.absolute)
plot((_src/sd_src)*2, color = hist_color, style = plot.style_histogram)

//Boxes
// var string same = ""

// var box _box = na
// if longTrend and is_ranging == false and same != "longtrend"
//     same := "longtrend"
//     _box := box.new(bar_index, 105, bar_index, 100, bgcolor = c_longtrend,border_color = color.new(color.white, 100))
// else if is_ranging and same != "isranging"
//     same := "isranging"
//     _box := box.new(bar_index, 105, bar_index, 100, bgcolor = c_flat,border_color = color.new(color.white, 100))

// if not na(_box)
//     box.set_right(_box,bar_index)

// //Div Lines
// var line _line = na
// if mfi_divergent_buy
//     _line = line.new(bL[1] -6, s_mfi[bar_index-bL[1]], bar_index + 6, s_mfi, color = color.green, width = 3)



مزید