بولنگر بینڈ اور ایم اے سی ڈی پر مبنی تجارتی حکمت عملی

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

img

جائزہ

یہ حکمت عملی بلنگر بینڈ اور ایم اے سی ڈی اشارے کو یکجا کرتی ہے تاکہ مقدار کے لحاظ سے تجارت کے لئے زیادہ فروخت کے مواقع اور رجحان کی تبدیلیوں کی نشاندہی کی جاسکے۔ اس حکمت عملی کا نام بولنگر ایم اے سی ڈی ریورسنگ حکمت عملی ہے۔

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

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

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

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

اس حکمت عملی میں بولنگر بینڈ کو شامل کیا گیا ہے تاکہ oversold زون اور MACD کا فیصلہ کیا جاسکے تاکہ رجحان کے الٹ سگنل کا تعین کیا جاسکے ، جس سے نسبتا lower کم انٹری قیمت کا احساس ہو۔ اس میں منافع میں مقفل ہونے اور نقصانات سے بچنے کے لئے منافع لینے کے طریقے بھی شامل ہیں۔

خاص طور پر فوائد یہ ہیں:

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

خطرے کا تجزیہ

کچھ خطرات اب بھی موجود ہیں بنیادی طور پر مندرجہ ذیل پہلوؤں میں:

  1. بولنگر بینڈس کے بریک آؤٹ کا امکان موجود ہے جس کی وجہ سے oversold zone judgment میں ناکامی ہوسکتی ہے
  2. MACD ہسٹوگرام کراس اوور غلط بھی ہو سکتا ہے
  3. سٹاپ نقصان کی پوزیشن کی ترتیب غلط، یا تو بہت لچکدار یا سخت ہو سکتی ہے، جس سے ناکافی دفاع یا قبل از وقت سٹاپ نقصان ہو سکتا ہے

مذکورہ بالا خطرات سے بچاؤ کے لیے ہم درج ذیل اقدامات کر سکتے ہیں:

  1. Bollinger Bands بریکآؤٹ سگنلز کی صداقت کی تصدیق کے لئے دیگر اشارے کے ساتھ مل کر
  2. MACD غلط کراس اوور سے بچنے کے لئے فلٹرز کے طور پر رفتار کے اشارے وغیرہ شامل کریں
  3. مختلف سٹاپ نقصان پیرامیٹرز کو بہتر بنانے اور ٹیسٹ

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

مزید اصلاحات کے لئے ابھی بھی گنجائش موجود ہے ، جس میں بنیادی طور پر شامل ہیں:

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

نتیجہ

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


/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 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/
// © DojiEmoji

//@version=4
strategy("[KL] BOLL + MACD Strategy v2 (published)",overlay=true)

// BOLL bands {
BOLL_length = 20
BOLL_src = close
BOLL_mult = 2.0
BOLL_basis = sma(BOLL_src, BOLL_length)
BOLL_dev = BOLL_mult * stdev(BOLL_src, BOLL_length)
BOLL_upper = BOLL_basis + BOLL_dev
BOLL_lower = BOLL_basis - BOLL_dev
BOLL_offset = 0
plot(BOLL_basis, "Basis", color=#872323, offset = BOLL_offset)
BOLL_p1 = plot(BOLL_upper, "Upper", color=color.navy, offset = BOLL_offset, transp=50)
BOLL_p2 = plot(BOLL_lower, "Lower", color=color.navy, offset = BOLL_offset, transp=50)
fill(BOLL_p1, BOLL_p2, title = "Background", color=#198787, transp=85)
// }
// MACD signals {
MACD_fastLen = 12
MACD_slowLen = 26
MACD_Len = 9
MACD = ema(close, MACD_fastLen) - ema(close, MACD_slowLen)
aMACD = ema(MACD, MACD_Len)
MACD_delta = MACD - aMACD
// }
backtest_timeframe_start = input(defval = timestamp("01 Nov 2010 13:30 +0000"), title = "Backtest Start Time", type = input.time)
//backtest_timeframe_end = input(defval = timestamp("05 Mar 2021 19:30 +0000"), title = "Backtest End Time", type = input.time)
TARGET_PROFIT_MODE = input(false,title="Exit when Risk:Reward met")
REWARD_RATIO = input(3,title="Risk:[Reward] (i.e. 3) for exit")
// Trailing stop loss {
var entry_price = float(0)
ATR_multi_len = 26
ATR_multi = input(2, "ATR multiplier for stop loss")
ATR_buffer = atr(ATR_multi_len) * ATR_multi
risk_reward_buffer = (atr(ATR_multi_len) * ATR_multi) * REWARD_RATIO
take_profit_long = low > entry_price + risk_reward_buffer
take_profit_short = low < entry_price - risk_reward_buffer
var bar_count = 0 //number of bars since entry 
var trailing_SL_buffer = float(0)
var stop_loss_price = float(0)
stop_loss_price := max(stop_loss_price, close - trailing_SL_buffer)
// plot TSL line
trail_profit_line_color = color.green
if strategy.position_size == 0
    trail_profit_line_color := color.blue
    stop_loss_price := low
plot(stop_loss_price,color=trail_profit_line_color)
// } 

var touched_lower_bb = false

if true// and time <= backtest_timeframe_end
    if low <= BOLL_lower
        touched_lower_bb := true
    else if strategy.position_size > 0
        touched_lower_bb := false//reset state
    expected_rebound = MACD > MACD[1] and abs(MACD - aMACD) < abs(MACD[1] - aMACD[1])
    buy_condition = touched_lower_bb and MACD > aMACD or expected_rebound

    //ENTRY:
    if strategy.position_size == 0 and buy_condition
        entry_price := close
        trailing_SL_buffer := ATR_buffer
        stop_loss_price := close - ATR_buffer
        strategy.entry("Long",strategy.long, comment="buy")
        bar_count := 0
    else if strategy.position_size > 0
        bar_count := bar_count + 1

    //EXIT: 
    // Case (A) hits trailing stop
    if strategy.position_size > 0 and close <= stop_loss_price
        if close > entry_price
            strategy.close("Long", comment="take profit [trailing]")
            stop_loss_price := 0
        else if close <= entry_price and bar_count
            strategy.close("Long", comment="stop loss")
            stop_loss_price := 0
        bar_count := 0
    // Case (B) take targeted profit relative to risk 
    if strategy.position_size > 0 and TARGET_PROFIT_MODE
        if take_profit_long
            strategy.close("Long", comment="take profits [risk:reward]")
            stop_loss_price := 0
        bar_count := 0

مزید