رفتار واپس لینے کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-26 11:07:47
ٹیگز:

img

جائزہ

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

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

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

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

ایک اختیاری فلٹر فراہم کیا جاتا ہے جہاں موجودہ موم بتیاں بند ہونے سے تھوڑا سا کم یا زیادہ ہونا چاہئے گیپ موم بتیاں مزید تصدیق کے لئے بند ہوجاتی ہیں ، غلط سگنلز سے بچنے کے ل.

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

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

خطرے کا تجزیہ

  • عام تکنیکی تجزیہ کے خطرات جیسے رجحانات میں پھنس جانا ، رن ٹرانس کو روکنا
  • چلتی اوسط کی پسماندہ نوعیت تیزی سے الٹ جانے سے محروم ہوسکتی ہے
  • رینج سے منسلک مارکیٹوں میں مزید غلط سگنل کا امکان
  • ناقص پیرامیٹر ٹوننگ سے زیادہ تجارت

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

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

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

نتیجہ

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


/*backtest
start: 2024-01-18 00:00:00
end: 2024-01-25 00:00:00
period: 15m
basePeriod: 5m
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/
// © TradingInsights2

//@version=5
strategy("Ultimate 5EMA Strategy By PowerOfStocks", overlay=true)

Eusl = input.bool(false, title="Enable the Extra SL shown below")
usl = input.int(defval=5, title='Value to set SL number of points below-low or above-high', minval=1, maxval=100)
RiRe = input.int(defval=3, title='Risk to Reward Ratio', minval=1, maxval=25)
ShowSell = input.bool(true, 'Show Sell Signals')
ShowBuy = input.bool(false, 'Show Buy Signals')
BSWCon = input.bool(defval=false, title='Buy/Sell with Extra Condition - candle close')

// Moving Average 

ema5 = ta.ema(close, 5)
pema5 = plot(ema5, '5 Ema', color=color.new(#da1a1a, 0), linewidth=2)

var bool Short = na
var bool Long = na
var shortC = 0
var sslhitC = 0
var starhitC = 0
var float ssl = na
var float starl = na
var float star = na
var float sellat = na
var float alert_shorthigh = na
var float alert_shortlow = na
var line lssl = na
var line lstar = na
var line lsell = na
var label lssllbl = na
var label lstarlbl = na
var label lselllbl = na
var longC = 0
var lslhitC = 0
var ltarhitC = 0
var float lsl = na
var float ltarl = na
var float ltar = na
var float buyat = na
var float alert_longhigh = na
var float alert_longlow = na
var line llsl = na
var line lltar = na
var line lbuy = na
var label llsllbl = na
var label lltarlbl = na
var label lbuylbl = na

ShortWC = low[1] > ema5[1] and low[1] > low and shortC == 0 and close < close[1]
ShortWOC = low[1] > ema5[1] and low[1] > low and shortC == 0
Short := BSWCon ? ShortWC : ShortWOC
sslhit = high > ssl and shortC > 0 and sslhitC == 0
starhit = low < star and shortC > 0 and starhitC == 0
LongWC = high[1] < ema5[1] and high[1] < high and longC == 0 and close > close[1]
LongWOC = high[1] < ema5[1] and high[1] < high and longC == 0
Long := BSWCon ? LongWC : LongWOC
lslhit = low < lsl and longC > 0 and lslhitC == 0
ltarhit = high > ltar and longC > 0 and ltarhitC == 0

if Short and ShowSell
    shortC := shortC + 1
    sslhitC := 0
    starhitC := 0
    alert_shorthigh := high[1]
    if Eusl
        ssl := high[1] + usl
        starl := BSWCon ? ((high[1] - close) + usl) * RiRe : ((high[1] - low[1]) + usl) * RiRe
    else
        ssl := high[1]
        starl := BSWCon ? (high[1] - close) * RiRe : (high[1] - low[1]) * RiRe
    star := BSWCon ? close - starl : low[1] - starl
    sellat := BSWCon ? close : low[1]
    // lssl := line.new(bar_index, ssl, bar_index, ssl, color=color.new(#fc2d01, 45), style=line.style_dashed)
    // lstar := line.new(bar_index, star, bar_index, star, color=color.new(color.green, 45), style=line.style_dashed)
    // lsell := line.new(bar_index, sellat, bar_index, sellat, color=color.new(color.orange, 45), style=line.style_dashed)
    // lssllbl := label.new(bar_index, ssl, style=label.style_none, text='Stop Loss - Short' + ' (' + str.tostring(ssl) + ')', textcolor=color.new(#fc2d01, 35), color=color.new(#fc2d01, 35))
    // lstarlbl := label.new(bar_index, star, style=label.style_none, text='Target - Short' + ' (' + str.tostring(star) + ')', textcolor=color.new(color.green, 35), color=color.new(color.green, 35))
    // lselllbl := label.new(bar_index, sellat, style=label.style_none, text='Sell at' + ' (' + str.tostring(sellat) + ')', textcolor=color.new(color.orange, 35), color=color.new(color.orange, 35))

if sslhit == false and starhit == false and shortC > 0
    // line.set_x2(lssl, bar_index)
    // line.set_x2(lstar, bar_index)
    // line.set_x2(lsell, bar_index)
    sslhitC := 0
    starhitC := 0
else
    if sslhit
        shortC := 0
        sslhitC := sslhitC + 1
    else
        if starhit
            shortC := 0
            starhitC := starhitC + 1

if Long and ShowBuy
    longC := longC + 1
    lslhitC := 0
    ltarhitC := 0
    alert_longlow := low[1]
    if Eusl
        lsl := low[1] - usl
        ltarl := BSWCon ? ((close - low[1]) + usl) * RiRe : ((high[1] - low[1]) + usl) * RiRe
    else
        lsl := low[1]
        ltarl := BSWCon ? (close - low[1]) * RiRe : (high[1] - low[1]) * RiRe
    ltar := BSWCon ? close + ltarl : high[1] + ltarl
    buyat := BSWCon ? close : high[1]
    llsl := line.new(bar_index, lsl, bar_index, lsl, color=color.new(#fc2d01, 45), style=line.style_dotted)
    lltar := line.new(bar_index, ltar, bar_index, ltar, color=color.new(color.green, 45), style=line.style_dotted)
    lbuy := line.new(bar_index, buyat, bar_index, buyat, color=color.new(color.orange, 45), style=line.style_dotted)
    llsllbl := label.new(bar_index, lsl, style=label.style_none, text='Stop Loss - Long' + ' (' + str.tostring(lsl) + ')', textcolor=color.new(#fc2d01, 35), color=color.new(#fc2d01, 35))
    lltarlbl := label.new(bar_index, ltar, style=label.style_none, text='Target - Long' + ' (' + str.tostring(ltar) + ')', textcolor=color.new(color.green, 35), color=color.new(color.green, 35))
    lbuylbl := label.new(bar_index, buyat, style=label.style_none, text='Buy at' + ' (' + str.tostring(buyat) + ')', textcolor=color.new(color.orange, 35), color=color.new(color.orange, 35))

if lslhit == false and ltarhit == false and longC > 0
    // line.set_x2(llsl, bar_index)
    // line.set_x2(lltar, bar_index)
    // line.set_x2(lbuy, bar_index)
    lslhitC := 0
    ltarhitC := 0
else
    if lslhit
        longC := 0
        lslhitC := lslhitC + 1
    else
        if ltarhit
            longC := 0
            ltarhitC := ltarhitC + 1

strategy.entry("Buy", strategy.long, when=Long)
strategy.entry("Sell", strategy.short, when=Short)
strategy.close("ExitBuy", when=sslhit or starhit)
strategy.close("ExitSell", when=lslhit or ltarhit)

plotshape(ShowSell and Short, title='Sell', location=location.abovebar, offset=0, color=color.new(#e74c3c, 45), style=shape.arrowdown, size=size.normal, text='Sell', textcolor=color.new(#e74c3c, 55))
plotshape(ShowSell and sslhit, title='SL Hit - Short', location=location.abovebar, offset=0, color=color.new(#fc2d01, 25), style=shape.arrowdown, size=size.normal, text='SL Hit - Short', textcolor=color.new(#fc2d01, 25))
plotshape(ShowSell and starhit, title='Target Hit - Short', location=location.belowbar, offset=0, color=color.new(color.green, 45), style=shape.arrowup, size=size.normal, text='Target Hit - Short', textcolor=color.new(color.green, 55))
plotshape(ShowBuy and Long, title='Buy', location=location.belowbar, offset=0, color=color.new(#2ecc71, 45), style=shape.arrowup, size=size.normal, text='Buy', textcolor=color.new(#2ecc71, 55))
plotshape(ShowBuy and lslhit, title='SL Hit - Long', location=location.belowbar, offset=0, color=color.new(#fc2d01, 25), style=shape.arrowdown, size=size.normal, text='SL Hit - Long', textcolor=color.new(#fc2d01, 25))
plotshape(ShowBuy and ltarhit, title='Target Hit - Long', location=location.abovebar, offset=0, color=color.new(color.green, 45), style=shape.arrowup, size=size.normal, text='Target Hit - Long', textcolor=color.new(color.green, 55))

if ShowSell and Short
    alert("Go Short@ " + str.tostring(sellat) + " : SL@ " + str.tostring(ssl) + " : Target@ " + str.tostring(star) + " ", alert.freq_once_per_bar )

if ShowBuy and Long
    alert("Go Long@ " + str.tostring(buyat) + " : SL@ " + str.tostring(lsl) + " : Target@ " + str.tostring(ltar) + " ", alert.freq_once_per_bar )

///// End of code

مزید