یہ حکمت عملی بنیادی طور پر بی ٹی سی میں خودکار طویل مدتی سرمایہ کاری کے لئے استعمال ہوتی ہے۔ یہ رجحان کی سمت کا تعین کرنے کے لئے دوہری ای ایم اے اور ایل ایس ایم اے کے کراس اوور کا استعمال کرتی ہے اور بی ٹی سی کے تیزی کے رجحان کو مؤثر طریقے سے ٹریک کرنے کے لئے متحرک اسٹاپ نقصان کا حساب لگانے کے لئے اے ٹی آر اشارے کا استعمال کرتی ہے۔
دوہری چلتی اوسط بنانے کے لئے 25 پیریڈ ای ایم اے اور 100 پیریڈ ایل ایس ایم اے کا استعمال کریں۔ ان کا کراس اوور مارکیٹ کے رجحان کا تعین کرنے کے لئے استعمال ہوتا ہے۔ ای ایم اے قیمتوں میں تبدیلیوں کا تیزی سے جواب دیتا ہے جبکہ ایل ایس ایم اے جھوٹے بریک آؤٹ کو فلٹر کرتا ہے۔
جب تیز EMA سست LSMA کے اوپر سے گزرتا ہے تو ، یہ طے ہوتا ہے کہ اپ ٹرینڈ ابھی بھی برقرار ہے اور لمبی پوزیشنیں لی جاتی ہیں۔ اس کے برعکس ، جب تیز EMA سست LSMA کے نیچے سے گزرتا ہے تو ، یہ طے ہوتا ہے کہ نیچے کا رجحان شروع ہو گیا ہے اور موجودہ پوزیشنیں بند ہوجاتی ہیں۔
لانگ پوزیشن لینے کے بعد ، اے ٹی آر اشارے کا استعمال کرتے ہوئے حساب لگایا جانے والا متحرک اسٹاپ نقصان بی ٹی سی کے عروج کے رجحان کو مؤثر طریقے سے ٹریک کرنے کے لئے ایڈجسٹ ہوتا رہتا ہے۔ خاص طور پر ، اسٹاپ نقصان لائن کا ابتدائی نقطہ انٹری قیمت ہے۔ اس کے بعد ، ہر ایڈجسٹمنٹ اے ٹی آر طول و عرض کا ایک مقررہ فیصد بڑھ جائے گی۔
اسٹاپ نقصان کی لائن مؤثر طریقے سے بی ٹی سی اپ ٹرینڈ کے ذریعہ لائے جانے والے تیرتے منافع کو مقفل کرسکتی ہے ، جبکہ اسٹاپ نقصان کے نقطہ کو حالیہ قیمت کے بہت قریب آنے سے روکتی ہے تاکہ کثرت سے اسٹاپ نقصان سے بچ سکے۔ اس کے علاوہ ، حکمت عملی میں مزید منافع میں مقفل کرنے کے لئے مختلف تناسب کے دو متحرک اسٹاپ منافع بھی مقرر کیے جاتے ہیں۔
رجحان کا تعین کرنے کے لئے دوہری چلتی اوسط کا استعمال زیادہ قابل اعتماد ہے اور غلط سگنل کو مؤثر طریقے سے روک سکتا ہے.
اے ٹی آر متحرک ٹریلنگ اسٹاپ نقصان اکثر چھوٹے اسٹاپ نقصان سے بچنے کے دوران زیادہ تر منافع میں مقفل کرسکتا ہے۔
اس سے کوئی فرق نہیں پڑتا ہے کہ تیزی کا رجحان ختم ہوتا ہے یا نہیں، جب تک کہ چلتی اوسط باہر نکلنے کا اشارہ جاری کرتی ہے، پوزیشن کو خطرات کو کنٹرول کرنے کے لئے روک دیا جائے گا.
اس حکمت عملی میں دستی مداخلت کے بغیر آٹومیشن کی ایک اعلی ڈگری ہے، جس سے یہ طویل مدتی لائیو ٹریڈنگ کے لئے موزوں ہے.
پھر بھی اچانک اہم خبروں پر توجہ دینے کی ضرورت ہے تاکہ بڑے پیمانے پر نقصانات سے بچنے کے لئے.
اگرچہ دوہری حرکت پذیر اوسطوں کا مجموعہ جھوٹے سگنل کو کم کرسکتا ہے ، لیکن اس سے مکمل طور پر بچنا اب بھی مشکل ہے۔
اے ٹی آر کی غلط پیرامیٹرز کی ترتیبات بھی اسٹاپ نقصان کے اثر کو متاثر کرسکتی ہیں۔ مختلف مصنوعات کی بنیاد پر ایڈجسٹمنٹ کی ضرورت ہے۔
غیر معقول حرکت پذیر اوسط ادوار یا ان کو وقت پر اپ ڈیٹ کرنے میں ناکامی سگنل کی تاخیر کا باعث بن سکتی ہے۔
غیر معمولی حادثات سے بچنے کے لئے سرور کی استحکام کو یقینی بنائیں جو خودکار تجارت میں خلل ڈالتے ہیں۔
رجحان کا تعین کرنے کے لئے بولنگر بینڈ جیسے مزید اشارے شامل کیے جاسکتے ہیں۔ قیمتوں کی پیش گوئی کے لئے مشین لرننگ ماڈل بھی استعمال کیے جاسکتے ہیں۔
ATR متحرک سٹاپ نقصان کا حساب کتاب کا طریقہ بھی سٹاپ نقصان کو ہموار بنانے کے لئے ایڈجسٹ اور بہتر بنایا جا سکتا ہے.
اہم خبروں کے اثرات سے بچاؤ کے لئے تجارتی حجم پر مبنی الرٹ میکانزم اور دن کے اندر گردش کی خصوصیات شامل کی جاسکتی ہیں۔
پیرامیٹرز مختلف سککوں کے لئے مختلف ہوتے ہیں۔ ذاتی پیرامیٹرز کی تربیت کے لئے مزید تاریخی اعداد و شمار کا استعمال کیا جاسکتا ہے۔
مجموعی طور پر ، یہ ایک بہت ہی عملی خودکار بی ٹی سی سرمایہ کاری پروگرام ہے۔ اہم رجحان کا تعین کرنے کے لئے دوہری ای ایم اے کا استعمال کرنا بہت قابل اعتماد ہے۔ اے ٹی آر کے پیچھے اسٹاپ نقصان کے ساتھ ، یہ مہذب منافع حاصل کرسکتا ہے اور موزونیت کی مدت بہت لمبی ہوسکتی ہے۔ چونکہ پیرامیٹرز کو بہتر بنایا جارہا ہے ، اس حکمت عملی کی کارکردگی میں ابھی بھی بہتری کی گنجائش ہے۔ یہ براہ راست تجارت کی تصدیق کے قابل ہے۔
// 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")