یہ حکمت عملی بولنگر بینڈز اشارے اور رشتہ دار طاقت انڈیکس (آر ایس آئی) اشارے پر مبنی ایک مقداری تجارتی حکمت عملی ہے۔ یہ حکمت عملی پیتھون زبان کا استعمال کرتے ہوئے تقریبا 1 سال کے تاریخی اعداد و شمار پر پیرامیٹرز کو بیک ٹیسٹ اور بہتر بنانے کے لئے مشینی سیکھنے کے طریقوں کا استعمال کرتی ہے ، پیرامیٹرز کا بہترین امتزاج تلاش کرتی ہے۔
اس حکمت عملی کے تجارتی سگنل ڈبل بولنگر بینڈ اور آر ایس آئی اشارے کے مشترکہ فیصلے سے آتے ہیں۔ ان میں سے ، بولنگر بینڈ اشارے قیمت کے معیاری انحراف کی بنیاد پر شمار ہونے والا اتار چڑھاؤ کا چینل ہے۔ جب قیمت چینل کے قریب یا اس کو چھوتی ہے تو یہ تجارتی سگنل تیار کرتا ہے۔ آر ایس آئی اشارے قیمت کی زیادہ خرید اور فروخت کی صورتحال کا فیصلہ کرتا ہے۔
خاص طور پر ، جب اختتامی قیمت 1.0 معیاری انحراف کی نچلی ریل سے نیچے ہوتی ہے اور آر ایس آئی ایک ہی وقت میں 42 سے زیادہ ہوتا ہے تو خرید کا اشارہ پیدا ہوتا ہے۔ جب اختتامی قیمت 1.0 معیاری انحراف کی اوپری ریل سے اوپر ہوتی ہے اور آر ایس آئی ایک ہی وقت میں 70 سے زیادہ ہوتا ہے تو فروخت کا اشارہ پیدا ہوتا ہے۔ اس کے علاوہ ، اس حکمت عملی میں بی بی اور آر ایس آئی پیرامیٹرز کے دو سیٹ بھی مرتب کیے جاتے ہیں ، جو بالترتیب اندراج اور اسٹاپ نقصان کی بندش کی پوزیشنوں کے لئے استعمال ہوتے ہیں۔ یہ پیرامیٹرز وسیع پیمانے پر بیک ٹیسٹنگ اور مشین لرننگ کے ذریعے حاصل کردہ زیادہ سے زیادہ اقدار ہیں۔
اس حکمت عملی کا سب سے بڑا فائدہ پیرامیٹرز کی درستگی ہے۔ مشین لرننگ کے طریقوں کے ذریعے ، ہر پیرامیٹر کو بہترین شارپ تناسب حاصل کرنے کے لئے جامع بیک ٹیسٹنگ کے ذریعے حاصل کیا جاتا ہے۔ اس سے حکمت عملی کی واپسی کی شرح دونوں کو یقینی بنایا جاتا ہے اور خطرات پر قابو پایا جاتا ہے۔ اس کے علاوہ ، ڈبل اشارے کے امتزاج سے سگنلز کی درستگی اور جیت کی شرح میں بھی بہتری آتی ہے۔
اس حکمت عملی کا بنیادی خطرہ اسٹاپ نقصان پوائنٹس کی ترتیب سے آتا ہے۔ اگر اسٹاپ نقصان کا نقطہ بہت بڑا ہے تو ، یہ نقصانات کو مؤثر طریقے سے کنٹرول نہیں کرے گا۔ اس کے علاوہ ، اگر اسٹاپ نقصان کا نقطہ کمیشن اور سکڑ جیسے دیگر تجارتی اخراجات کا صحیح طریقے سے حساب نہیں لگاتا ہے تو ، اس سے خطرات میں بھی اضافہ ہوگا۔ خطرات کو کم کرنے کے لئے ، مناسب اسٹاپ نقصان کی پوزیشن کا حساب کرتے ہوئے ، تجارتی تعدد کو کم کرنے کے لئے اسٹاپ نقصان کی شدت کے پیرامیٹر کو ایڈجسٹ کرنے کی سفارش کی جاتی ہے۔
اس حکمت عملی کو مزید بہتر بنانے کے لئے ابھی بھی گنجائش ہے۔ مثال کے طور پر ، آپ بولنگر بینڈ کے لمبائی پیرامیٹرز کو تبدیل کرنے کی کوشش کر سکتے ہیں ، یا آر ایس آئی کی زیادہ خرید اور زیادہ فروخت کی حد کو ایڈجسٹ کرسکتے ہیں۔ آپ ملٹی اشارے کے امتزاج کی تعمیر کے لئے دوسرے اشارے متعارف کرانے کی بھی کوشش کر سکتے ہیں۔ اس سے منافع کی جگہ اور حکمت عملی کے استحکام میں اضافہ ہوسکتا ہے۔
یہ حکمت عملی دوہری بی بی اشارے اور آر ایس آئی اشارے کو جوڑتی ہے ، اور مشین لرننگ کے طریقوں کے ذریعہ زیادہ سے زیادہ پیرامیٹرز حاصل کرتی ہے تاکہ اعلی منافع اور قابل کنٹرول رسک کی سطح حاصل کی جاسکے۔ اس میں اشارے کے مشترکہ فیصلے اور پیرامیٹر کی اصلاح کے فوائد ہیں۔ مسلسل بہتری کے ساتھ ، اس حکمت عملی میں ایک بہترین مقداری تجارتی حکمت عملی بننے کی صلاحیت ہے۔
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Bunghole 2020 strategy(overlay=true, shorttitle="Flawless Victory Strategy" ) // Stoploss and Profits Inputs v1 = input(true, title="Version 1 - Doesn't Use SL/TP") v2 = input(false, title="Version 2 - Uses SL/TP") stoploss_input = input(6.604, title='Stop Loss %', type=input.float, minval=0.01)/100 takeprofit_input = input(2.328, title='Take Profit %', type=input.float, minval=0.01)/100 stoploss_level = strategy.position_avg_price * (1 - stoploss_input) takeprofit_level = strategy.position_avg_price * (1 + takeprofit_input) //SL & TP Chart Plots plot(v2 and stoploss_input and stoploss_level ? stoploss_level: na, color=color.red, style=plot.style_linebr, linewidth=2, title="Stoploss") plot(v2 and takeprofit_input ? takeprofit_level: na, color=color.green, style=plot.style_linebr, linewidth=2, title="Profit") // Bollinger Bands 1 length = 20 src1 = close mult = 1.0 basis = sma(src1, length) dev = mult * stdev(src1, length) upper = basis + dev lower = basis - dev // Bollinger Bands 2 length2 = 17 src2 = close mult2 = 1.0 basis2 = sma(src1, length2) dev2 = mult2 * stdev(src2, length2) upper2 = basis2 + dev2 lower2 = basis2 - dev2 // RSI len = 14 src = close up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down) // Strategy Parameters RSILL= 42 RSIUL= 70 RSILL2= 42 RSIUL2= 76 rsiBuySignal = rsi > RSILL rsiSellSignal = rsi > RSIUL rsiBuySignal2 = rsi > RSILL2 rsiSellSignal2 = rsi > RSIUL2 BBBuySignal = src < lower BBSellSignal = src > upper BBBuySignal2 = src2 < lower2 BBSellSignal2 = src2 > upper2 // Strategy Long Signals Buy = rsiBuySignal and BBBuySignal Sell = rsiSellSignal and BBSellSignal Buy2 = rsiBuySignal2 and BBBuySignal2 Sell2 = rsiSellSignal2 and BBSellSignal2 if v1 == true strategy.entry("Long", strategy.long, when = Buy, alert_message = "v1 - Buy Signal!") strategy.close("Long", when = Sell, alert_message = "v1 - Sell Signal!") if v2 == true strategy.entry("Long", strategy.long, when = Buy2, alert_message = "v2 - Buy Signal!") strategy.close("Long", when = Sell2, alert_message = "v2 - Sell Signal!") strategy.exit("Stoploss/TP", "Long", stop = stoploss_level, limit = takeprofit_level)