دوہری رجحان لائنز ذہین ٹریکنگ بی ٹی سی سرمایہ کاری کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-22 15:18:53
ٹیگز:

img

جائزہ

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

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

  1. دوہری چلتی اوسط بنانے کے لئے 25 پیریڈ ای ایم اے اور 100 پیریڈ ایل ایس ایم اے کا استعمال کریں۔ ان کا کراس اوور مارکیٹ کے رجحان کا تعین کرنے کے لئے استعمال ہوتا ہے۔ ای ایم اے قیمتوں میں تبدیلیوں کا تیزی سے جواب دیتا ہے جبکہ ایل ایس ایم اے جھوٹے بریک آؤٹ کو فلٹر کرتا ہے۔

  2. جب تیز EMA سست LSMA کے اوپر سے گزرتا ہے تو ، یہ طے ہوتا ہے کہ اپ ٹرینڈ ابھی بھی برقرار ہے اور لمبی پوزیشنیں لی جاتی ہیں۔ اس کے برعکس ، جب تیز EMA سست LSMA کے نیچے سے گزرتا ہے تو ، یہ طے ہوتا ہے کہ نیچے کا رجحان شروع ہو گیا ہے اور موجودہ پوزیشنیں بند ہوجاتی ہیں۔

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

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

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

  1. رجحان کا تعین کرنے کے لئے دوہری چلتی اوسط کا استعمال زیادہ قابل اعتماد ہے اور غلط سگنل کو مؤثر طریقے سے روک سکتا ہے.

  2. اے ٹی آر متحرک ٹریلنگ اسٹاپ نقصان اکثر چھوٹے اسٹاپ نقصان سے بچنے کے دوران زیادہ تر منافع میں مقفل کرسکتا ہے۔

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

  4. اس حکمت عملی میں دستی مداخلت کے بغیر آٹومیشن کی ایک اعلی ڈگری ہے، جس سے یہ طویل مدتی لائیو ٹریڈنگ کے لئے موزوں ہے.

خطرے کا تجزیہ

  1. پھر بھی اچانک اہم خبروں پر توجہ دینے کی ضرورت ہے تاکہ بڑے پیمانے پر نقصانات سے بچنے کے لئے.

  2. اگرچہ دوہری حرکت پذیر اوسطوں کا مجموعہ جھوٹے سگنل کو کم کرسکتا ہے ، لیکن اس سے مکمل طور پر بچنا اب بھی مشکل ہے۔

  3. اے ٹی آر کی غلط پیرامیٹرز کی ترتیبات بھی اسٹاپ نقصان کے اثر کو متاثر کرسکتی ہیں۔ مختلف مصنوعات کی بنیاد پر ایڈجسٹمنٹ کی ضرورت ہے۔

  4. غیر معقول حرکت پذیر اوسط ادوار یا ان کو وقت پر اپ ڈیٹ کرنے میں ناکامی سگنل کی تاخیر کا باعث بن سکتی ہے۔

  5. غیر معمولی حادثات سے بچنے کے لئے سرور کی استحکام کو یقینی بنائیں جو خودکار تجارت میں خلل ڈالتے ہیں۔

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

  1. رجحان کا تعین کرنے کے لئے بولنگر بینڈ جیسے مزید اشارے شامل کیے جاسکتے ہیں۔ قیمتوں کی پیش گوئی کے لئے مشین لرننگ ماڈل بھی استعمال کیے جاسکتے ہیں۔

  2. ATR متحرک سٹاپ نقصان کا حساب کتاب کا طریقہ بھی سٹاپ نقصان کو ہموار بنانے کے لئے ایڈجسٹ اور بہتر بنایا جا سکتا ہے.

  3. اہم خبروں کے اثرات سے بچاؤ کے لئے تجارتی حجم پر مبنی الرٹ میکانزم اور دن کے اندر گردش کی خصوصیات شامل کی جاسکتی ہیں۔

  4. پیرامیٹرز مختلف سککوں کے لئے مختلف ہوتے ہیں۔ ذاتی پیرامیٹرز کی تربیت کے لئے مزید تاریخی اعداد و شمار کا استعمال کیا جاسکتا ہے۔

خلاصہ

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


// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Wunderbit Trading

//@version=4
strategy("Automated Bitcoin (BTC) Investment Strategy", overlay=true, initial_capital=5000,pyramiding = 0, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100,  commission_type=strategy.commission.percent,commission_value=0.1)

////////////  Functions

Atr(p) =>
    atr = 0.
    Tr = max(high - low, max(abs(high - close[1]), abs(low - close[1])))
    atr := nz(atr[1] + (Tr - atr[1])/p,Tr)

//TEMA
TEMA(series, length) =>
    if (length > 0)
        ema1 = ema(series, length)
        ema2 = ema(ema1, length)
        ema3 = ema(ema2, length)
        (3 * ema1) - (3 * ema2) + ema3
    else
        na
tradeType = input("LONG", title="What trades should be taken : ", options=["LONG", "SHORT", "BOTH", "NONE"])

///////////////////////////////////////////////////
/// INDICATORS
source=close

/// TREND
trend_type1 = input("TEMA", title ="First Trend Line : ", options=["LSMA", "TEMA","EMA","SMA"])
trend_type2 = input("LSMA", title ="First Trend Line : ", options=["LSMA", "TEMA","EMA","SMA"])

trend_type1_length=input(25, "Length of the First Trend Line")
trend_type2_length=input(100, "Length of the Second Trend Line")

leadLine1 = if trend_type1=="LSMA"
    linreg(close, trend_type1_length, 0)
else if trend_type1=="TEMA"
    TEMA(close,trend_type1_length)
else if trend_type1 =="EMA"
    ema(close,trend_type1_length)
else
    sma(close,trend_type1_length)

leadLine2 = if trend_type2=="LSMA"
    linreg(close, trend_type2_length, 0)
else if trend_type2=="TEMA"
    TEMA(close,trend_type2_length)
else if trend_type2 =="EMA"
    ema(close,trend_type2_length)
else
    sma(close,trend_type2_length)

p3 = plot(leadLine1, color= #53b987, title="EMA", transp = 50, linewidth = 1)
p4 = plot(leadLine2, color= #eb4d5c, title="SMA", transp = 50, linewidth = 1)
fill(p3, p4, transp = 60, color = leadLine1 > leadLine2 ? #53b987 : #eb4d5c)

//Upward Trend
UT=crossover(leadLine1,leadLine2)
DT=crossunder(leadLine1,leadLine2)

// TP/ SL/  FOR LONG
// TAKE PROFIT AND STOP LOSS
long_tp1_inp = input(15, title='Long Take Profit 1 %', step=0.1)/100
long_tp1_qty = input(20, title="Long Take Profit 1 Qty", step=1)

long_tp2_inp = input(30, title='Long Take Profit 2%', step=0.1)/100
long_tp2_qty = input(20, title="Long Take Profit 2 Qty", step=1)

long_take_level_1 = strategy.position_avg_price * (1 + long_tp1_inp)
long_take_level_2 = strategy.position_avg_price * (1 + long_tp2_inp)

long_sl_input = input(5, title='stop loss in %', step=0.1)/100
long_sl_input_level = strategy.position_avg_price * (1 - long_sl_input)

// Stop Loss
multiplier = input(3.5, "SL Mutiplier", minval=1, step=0.1)
ATR_period=input(8,"ATR period", minval=1, step=1)

// Strategy
//LONG STRATEGY CONDITION

SC = input(close, "Source", input.source)
SL1 = multiplier * Atr(ATR_period)  // Stop Loss
Trail1 = 0.0
Trail1 :=  iff(SC < nz(Trail1[1], 0) and SC[1] < nz(Trail1[1], 0), min(nz(Trail1[1], 0), SC + SL1), iff(SC > nz(Trail1[1], 0), SC - SL1, SC + SL1))
Trail1_high=highest(Trail1,50)

// iff(SC > nz(Trail1[1], 0) and SC[1] > nz(Trail1[1], 0), max(nz(Trail1[1], 0), SC - SL1),

entry_long=crossover(leadLine1,leadLine2) and Trail1_high < close
exit_long = close < Trail1_high or crossover(leadLine2,leadLine1) or close < long_sl_input_level

///// BACKTEST PERIOD ///////
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(9999, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

if testPeriod()
    if tradeType=="LONG" or tradeType=="BOTH"
        if strategy.position_size == 0 or strategy.position_size > 0
            strategy.entry("long", strategy.long, comment="b8f60da7_ENTER-LONG_BINANCE_BTC/USDT_b8f60da7-BTC-Investment_4H", when=entry_long)
            strategy.exit("TP1", "long", qty_percent=long_tp1_qty, limit=long_take_level_1)
            strategy.exit("TP2", "long", qty_percent=long_tp2_qty, limit=long_take_level_2)
            strategy.close("long", when=exit_long, comment="b8f60da7_EXIT-LONG_BINANCE_BTC/USDT_b8f60da7-BTC-Investment_4H" )


// LONG POSITION

plot(strategy.position_size > 0 ? long_take_level_1 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="1st Long Take Profit")
plot(strategy.position_size > 0 ? long_take_level_2 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="2nd Long Take Profit")
plot(strategy.position_size > 0 ? Trail1_high : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Stop Loss")

مزید