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


تخلیق کی تاریخ: 2023-11-24 15:32:57 آخر میں ترمیم کریں: 2023-11-24 15:32:57
کاپی: 0 کلکس کی تعداد: 706
1
پر توجہ دیں
1617
پیروکار

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

جائزہ

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

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

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

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

طاقت کا تجزیہ

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

خطرے کا تجزیہ

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

اصلاح کی سمت

  1. گولڈ کراس اور ڈیڈ فورک کے فیصلے کو مزید بہتر بنانے کے لئے شامل کریں
  2. مختلف نسلوں کے لئے مختلف پیرامیٹرز ، مشین لرننگ کی تربیت کے لئے بہترین پیرامیٹرز پر غور کریں
  3. ہوا کے کنٹرول میں اضافے کے لئے رجحانات کے جھٹکے کا اندازہ لگانے کے لئے اتار چڑھاؤ کے اشاریہ کے ساتھ مل کر

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-10-24 00:00:00
end: 2023-11-23 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/
// © HeWhoMustNotBeNamed

//@version=4
strategy("BuyTheDip", overlay=true, initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, pyramiding = 1, commission_value = 0.01, calc_on_order_fills = true)

MAType = input(title="Moving Average Type", defval="sma", options=["ema", "sma", "hma", "rma", "vwma", "wma"])
exitType = input(title="Exit Strategy", defval="Signal", options=["Signal", "TrailingStop", "Both"])
LookbackPeriod = input(30, minval=10,step=10)

BBStdDev = input(2, minval=1, maxval=10, step=0.5)
BBLength = input(60, minval=5, step=5)

atrLength = input(22)
atrMult = input(6)

tradeDirection = input(title="Trade Direction", defval=strategy.direction.all, options=[strategy.direction.all, strategy.direction.long, strategy.direction.short])
backtestYears = input(10, minval=1, step=1)
includePartiallyAligned = true
f_getMovingAverage(source, MAType, length)=>
    ma = sma(source, length)
    if(MAType == "ema")
        ma := ema(source,length)
    if(MAType == "hma")
        ma := hma(source,length)
    if(MAType == "rma")
        ma := rma(source,length)
    if(MAType == "vwma")
        ma := vwma(source,length)
    if(MAType == "wma")
        ma := wma(source,length)
    ma

f_getTrailingStop(atr, atrMult)=>
    stop = close - atrMult*atr
    stop := strategy.position_size > 0 ? max(stop, stop[1]) : stop
    stop

f_getMaAlignment(MAType, includePartiallyAligned)=>
    ma5 = f_getMovingAverage(close,MAType,5)
    ma10 = f_getMovingAverage(close,MAType,10)
    ma20 = f_getMovingAverage(close,MAType,20)
    ma30 = f_getMovingAverage(close,MAType,30)
    ma50 = f_getMovingAverage(close,MAType,50)
    ma100 = f_getMovingAverage(close,MAType,100)
    ma200 = f_getMovingAverage(close,MAType,200)

    upwardScore = 0
    upwardScore := close > ma5? upwardScore+1:upwardScore
    upwardScore := ma5 > ma10? upwardScore+1:upwardScore
    upwardScore := ma10 > ma20? upwardScore+1:upwardScore
    upwardScore := ma20 > ma30? upwardScore+1:upwardScore
    upwardScore := ma30 > ma50? upwardScore+1:upwardScore
    upwardScore := ma50 > ma100? upwardScore+1:upwardScore
    upwardScore := ma100 > ma200? upwardScore+1:upwardScore
    
    upwards = close > ma5 and ma5 > ma10 and ma10 > ma20 and ma20 > ma30 and ma30 > ma50 and ma50 > ma100 and ma100 > ma200
    downwards = close < ma5 and ma5 < ma10 and ma10 < ma20 and ma20 < ma30 and ma30 < ma50 and ma50 < ma100 and ma100 < ma200
    upwards?1:downwards?-1:includePartiallyAligned ? (upwardScore > 5? 0.5: upwardScore < 2?-0.5:upwardScore>3?0.25:-0.25) : 0
    
inDateRange = time >= timestamp(syminfo.timezone, year(timenow) - backtestYears, 01, 01, 0, 0)

exitBySignal = exitType == "Signal" or exitType == "Both"
exitByTrailingStop = exitType == "TrailingStop" or exitType == "Both"
maAlignment = f_getMaAlignment(MAType,includePartiallyAligned)
atr = atr(atrLength)

trailingStop = f_getTrailingStop(atr, atrMult)
maAligned = highest(maAlignment,LookbackPeriod)
[middle, upper, lower] = bb(close, BBLength, BBStdDev)

buyCondition = maAligned == 1 and (crossover(close, lower) or crossover(close, middle))
buyExitCondition = crossunder(close, upper)

strategy.entry("Buy", strategy.long, when=buyCondition and inDateRange, oca_name="oca_buy")
strategy.close("Buy", when=buyExitCondition and exitBySignal)
strategy.exit("ExitBuy", "Buy", stop = trailingStop, when=exitByTrailingStop )