رفتار توڑنے کی تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-28 10:33:31
ٹیگز:

img

یہ مضمون موم بتی کے نمونوں پر مبنی ایک رفتار توڑنے والی تجارتی حکمت عملی متعارف کراتا ہے۔ یہ حکمت عملی موم بتی کی تشکیل کو پہچان کر مارکیٹ کے رجحانات اور داخلے کے مواقع کی نشاندہی کرتی ہے۔

حکمت عملی کا جائزہ

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

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

مومنٹم بریک آؤٹ کی حکمت عملی کا بنیادی منطق گلے لگانے کے نمونوں کی نشاندہی پر مبنی ہے ، بشمول بولش گلے لگانے اور bearish گلے لگانے۔

جب موجودہ مدت کی اختتامی قیمت افتتاحی قیمت سے زیادہ ہوتی ہے ، اور پچھلی مدت کی اختتامی قیمت پچھلی مدت کی افتتاحی قیمت سے کم ہوتی ہے تو ایک تیزی سے گھسنے والا نمونہ بنتا ہے۔ یہ نمونہ اکثر مارکیٹ کے جذبات میں bearish سے bullish میں الٹ جانے کی نشاندہی کرتا ہے ، جس سے یہ اپ ٹرینڈ کا پیچھا کرنے کا ایک اچھا موقع بنتا ہے۔

جب موجودہ مدت کی اختتامی قیمت افتتاحی قیمت سے کم ہوتی ہے اور پچھلی مدت کی اختتامی قیمت پچھلی مدت کی افتتاحی قیمت سے زیادہ ہوتی ہے تو ایک bearish engulfing پیٹرن بنتا ہے۔ اس سے مارکیٹ کے جذبات میں تبدیلی کا اشارہ بھی ہوتا ہے ، جس سے مارکیٹ کو مختصر کرنے کا موقع ملتا ہے۔

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

فوائد

  1. مارکیٹ میں تبدیلی کے مواقع کی فوری نشاندہی کریں
  2. مناسب سٹاپ نقصان اور منافع لینے کے ساتھ متوازن رسک - انعام کا تناسب
  3. مختلف خطرے کی خواہشات کو پورا کرنے کے لئے ایڈجسٹ لیوریج
  4. خودکار تجارت کے ساتھ اعلی کارکردگی

خطرات

  1. نگلنے کے پیٹرن مکمل طور پر الٹ کو یقینی نہیں بناتے ہیں
  2. ناکام بریک آؤٹ اور قیمتوں میں ضمنی حرکت کا امکان
  3. زیادہ لیوریج سے معاوضہ کا خطرہ
  4. مناسب پوزیشن سائزنگ کی حمایت کرنے کے لئے کافی سرمایہ کی ضرورت

بہتری

حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:

  1. سگنل فلٹر کرنے کے لئے دیگر اشارے شامل کریں
  2. خطرے کو محدود کرنے کے لئے لیول کو ایڈجسٹ کریں
  3. کم لاگت کی بنیاد پر پیمانے پر
  4. سٹاپ نقصان کو بہتر بنائیں اور منافع میں مقفل کرنے کے لئے منافع لیں

خلاصہ

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


/*backtest
start: 2022-11-27 00:00:00
end: 2023-11-09 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title = "MomGulfing", shorttitle = "MomGulfing", overlay = true, initial_capital=10000, pyramiding=3, calc_on_order_fills=false, calc_on_every_tick=false, currency="USD", default_qty_type=strategy.cash, default_qty_value=1000, commission_type=strategy.commission.percent, commission_value=0.04)

syear = input(2021)
smonth = input(1)
sday = input(1)
fyear = input(2022)
fmonth = input(12)
fday = input(31)
start = timestamp(syear, smonth, sday, 01, 00)
finish = timestamp(fyear, fmonth, fday, 23, 59)
date = time >= start and time <= finish ? true : false

longs = input(true)
shorts = input(true)
rr = input(2.5)
position_risk_percent = input(1)/100
signal_bar_check = input.string(defval="3", options=["1", "2", "3"])
margin_req = input(80)
sl_increase_factor = input(0.2)
tp_decrease_factor = input(0.0)
check_for_volume = input(true)
var long_sl = 0.0
var long_tp = 0.0
var short_sl = 0.0
var short_tp = 0.0
var long_lev = 0.0
var short_lev = 0.0

initial_capital = strategy.equity
position_risk = initial_capital * position_risk_percent

bullishEngulfing_st = close[1] < open[1] and close > open and high[1] < close and (check_for_volume ? volume[1]<volume : true)
bullishEngulfing_nd = close[2] < open[2] and close[1] > open[1] and close > open and high[2] > close[1] and high[2] < close and (check_for_volume ? volume[2]<volume : true)
bullishEngulfing_rd = close[3] < open[3] and close[2] > open[2] and close[1] > open[1] and close > open and high[3] > close[2] and high[3] > close[1] and high[3] < close and (check_for_volume ? volume[3]<volume : true)
bullishEngulfing = signal_bar_check == "1" ? bullishEngulfing_st : signal_bar_check == "2" ? bullishEngulfing_st or bullishEngulfing_nd : bullishEngulfing_st or bullishEngulfing_nd or bullishEngulfing_rd
long_stop_level = bullishEngulfing_st ? math.min(low[1], low) : bullishEngulfing_nd ? math.min(low[2], low[1], low) : bullishEngulfing_rd ? math.min(low[3], low[2], low[1], low) : na
rr_amount_long = close-long_stop_level
long_exit_level = close + rr*rr_amount_long
long_leverage = math.floor(margin_req/math.floor((rr_amount_long/close)*100))

bearishEngulfing_st = close[1] > open[1] and close < open and low[1] > close and (check_for_volume ? volume[1]<volume : true)
bearishEngulfing_nd = close[2] > open[2] and close[1] < open[1] and close < open and low[2] < close[1] and low[2] > close and (check_for_volume ? volume[2]<volume : true)
bearishEngulfing_rd = close[3] > open[3] and close[2] < open[2] and close[1] < open[1] and close < open and low[3] < close[2] and low[3] < close[1] and low[3] > close and (check_for_volume ? volume[3]<volume : true)
bearishEngulfing = signal_bar_check == "1" ? bearishEngulfing_st : signal_bar_check == "2" ? bearishEngulfing_st or bearishEngulfing_nd : bearishEngulfing_st or bearishEngulfing_nd or bearishEngulfing_rd
short_stop_level = bearishEngulfing_st ? math.max(high[1], high) : bearishEngulfing_nd ? math.max(high[2], high[1], high) : bearishEngulfing_rd ? math.max(high[3], high[2], high[1], high) : na
rr_amount_short = short_stop_level-close
short_exit_level = close - rr*rr_amount_short
short_leverage = math.floor(margin_req/math.floor((rr_amount_short/short_stop_level)*100))

long = longs and date and bullishEngulfing
short = shorts and date and bearishEngulfing
bgcolor(long[1] ? color.new(color.teal, 80) : (short[1] ? color.new(color.purple, 80) : na))

if long and strategy.position_size <= 0
    long_lev := long_leverage

if short and strategy.position_size >= 0
    short_lev := short_leverage

long_pos_size = long_lev * position_risk
long_pos_qty = long_pos_size/close
short_pos_size = short_lev * position_risk
short_pos_qty = short_pos_size/close

if long
    if strategy.position_size <= 0
        long_sl := long_stop_level
        long_tp := long_exit_level

    else if strategy.position_size > 0
        long_sl := long_stop_level + sl_increase_factor*rr_amount_long
        long_tp := long_exit_level - tp_decrease_factor*rr_amount_long

    strategy.entry("L"+str.tostring(long_lev)+"X", strategy.long, qty=long_pos_qty)
    label_text = str.tostring(long_lev)+"X\nSL:"+str.tostring(long_sl)+"\nTP:"+str.tostring(long_tp)
    label.new(bar_index+1, na, text=label_text, color=color.green, style=label.style_label_up, xloc=xloc.bar_index, yloc=yloc.belowbar)

else if short
    if strategy.position_size >= 0
        short_sl := short_stop_level
        short_tp := short_exit_level

    else if strategy.position_size < 0
        short_sl := short_stop_level - sl_increase_factor*rr_amount_short
        short_tp := short_exit_level + tp_decrease_factor*rr_amount_short

    strategy.entry("S"+str.tostring(short_lev)+"X", strategy.short, qty=short_pos_qty)
    label_text = str.tostring(short_lev)+"X\nSL:"+str.tostring(short_sl)+"\nTP:"+str.tostring(short_tp)
    label.new(bar_index+1, na, text=label_text, color=color.red, style=label.style_label_down, xloc=xloc.bar_index, yloc=yloc.abovebar)

if (strategy.position_size > 0)
    strategy.exit(id="L TP/SL", stop=long_sl, limit=long_tp)

if (strategy.position_size < 0)
    strategy.exit(id="S TP/SL", stop=short_sl, limit=short_tp)

sl_level = strategy.position_size > 0 ? long_sl : strategy.position_size < 0 ? short_sl : na
plot(sl_level, color=color.red, style=plot.style_linebr)

tp_level = strategy.position_size > 0 ? long_tp : strategy.position_size < 0 ? short_tp : na
plot(tp_level, color=color.green, style=plot.style_linebr)


مزید