اس حکمت عملی کا بنیادی خیال یہ ہے کہ دو منافع حاصل کرنے کے اہداف طے کیے جائیں اور اسٹاپ نقصان کی تلاش سے بچنے کے لئے پہلے ہدف تک پہنچنے کے بعد اسٹاپ نقصان کو انٹری قیمت میں منتقل کیا جائے۔
یہ حکمت عملی بولنگر بینڈ اور اسٹوکاسٹک اشارے پر مبنی تجارت میں داخل ہوتی ہے۔ جب قیمت بولنگر کے اوپری بینڈ سے تجاوز کرتی ہے تو یہ مختصر ہوجاتی ہے اور جب اسٹوکاسٹک oversold دکھاتی ہے تو یہ لمبی ہوجاتی ہے۔
خاص طور پر، انٹری منطق یہ ہے:
جب بند Bollinger کی کم بینڈ سے نیچے ہے اور اسٹوکاسٹک K D سے نیچے عبور کرتا ہے تو لانگ درج کریں۔
مختصر میں داخل ہوں جب بند بولنگر کے اوپری بینڈ سے اوپر ہو اور اسٹوکاسٹک K D سے اوپر ہو۔
حکمت عملی میں دو منافع حاصل کرنے کے اہداف مقرر کیے گئے ہیں، TP1 200 پوائنٹس اور TP2 500 پوائنٹس پر مقرر کیا گیا ہے.
جب قیمت چلتی ہے اور ٹی پی 1 کو متحرک کیا جاتا ہے تو ، حکمت عملی اسٹاپ نقصان کو انٹری قیمت پر منتقل کرے گی۔ اس سے پہلے مرحلے سے منافع میں قفل ہوجاتا ہے اور اسٹاپ نقصان کے شکار کو روکتا ہے۔
یہ حکمت عملی TP2 یا سٹاپ نقصان کو چالو کرنے پر تمام پوزیشنوں کو بند کرتی ہے۔
اس دو مرحلے کے اسٹاپ نقصان کے نقطہ نظر کا سب سے بڑا فائدہ یہ ہے کہ یہ اسٹاپ نقصان کے شکار کو روکتے ہوئے منافع کو مقفل کرنے کی اجازت دیتا ہے۔ اسٹاپ نقصان کو انٹری قیمت میں منتقل کرکے ، یہ اسٹاپ نقصان کے شکار کے امکانات کو کم کرتا ہے اور منافع کی حفاظت کرتا ہے۔
ایک اور فائدہ بولنگر بینڈ کا امتزاج ہے جو اتار چڑھاؤ کی حد اور اسٹوکاسٹک کو زیادہ خرید / فروخت کے لئے زیادہ درست اندراجات کے لئے کرتا ہے.
اہم خطرات بولنگر بینڈ اور اسٹوکاسٹک اشارے سے ممکنہ غلط سگنلز سے پیدا ہوتے ہیں۔ غلط بولنگر رینج کی وجہ سے اندراجات یا خراب سگنل غائب ہوسکتے ہیں۔ اسٹوکاسٹک غلط بریک آؤٹ بھی غلط اندراجات کا سبب بنتے ہیں۔
اندراج کی قیمت میں منتقل ہونے کے بعد اسٹاپ نقصان کا دوبارہ شکار ہونے کا خطرہ بھی ہے۔ وی کی شکل میں الٹ جانا دوسری بار اسٹاپ نقصان کو متحرک کرسکتا ہے۔
ان خطرات کو دونوں اشارے کے لئے پیرامیٹرز کو بہتر بنانے اور سٹاپ نقصانات کے درمیان فاصلے کو بڑھانے سے کم کیا جا سکتا ہے.
اس حکمت عملی کے لیے مزید اصلاحات:
بہترین بولنگر اور اسٹوکاسٹک پیرامیٹرز تلاش کرنے کے لئے مختلف پیرامیٹر مجموعے کی جانچ کریں۔
مثالی ترتیب تلاش کرنے کے لئے مختلف منافع / نقصان کے اہداف کا تجربہ کریں.
زیادہ درستگی کے لئے کثیر اشارے کے نظام بنانے کے لئے چلتی اوسط جیسے دوسرے اشارے شامل کریں.
تحقیق متبادل سٹاپ نقصان پوزیشننگ منطق، داخلہ کی قیمت کے بجائے داخلہ سے مقررہ فاصلے کی طرح.
سٹاپ نقصان کی تحریک کے واقعات کو 3 یا اس سے زیادہ مراحل تک بڑھانا۔
یہ حکمت عملی اندراجات کے لئے بولنگر بینڈ اور اسٹوکاسٹک کا استعمال کرتی ہے ، دو منافع حاصل کرنے کے اہداف طے کرتی ہے ، اور پہلے ہدف تک پہنچنے کے بعد دو مرحلے کے اسٹاپ نقصان کو تشکیل دینے کے لئے اسٹاپ نقصان کو اندراج میں منتقل کرتی ہے۔ اس سے منافع میں مؤثر طریقے سے تالا لگ جاتا ہے اور اسٹاپ نقصان کے شکار کو روکتا ہے۔ حکمت عملی کے واضح فوائد ہیں لیکن پیرامیٹر کی اصلاح ، کثیر اشارے کے نظام ، اور اسٹاپ نقصان کی منطق کی ایڈجسٹمنٹ کے ذریعے بہتری کی گنجائش بھی ہے۔
/*backtest start: 2022-10-18 00:00:00 end: 2023-10-24 00:00:00 period: 1d basePeriod: 1h 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/ // © fpsd4ve //@version=5 // Add Bollinger Bands indicator (close, 20, 2) manually to visualise trading conditions strategy("2xTP, SL to entry", overlay=false, pyramiding=0, calc_on_every_tick=false, default_qty_type=strategy.percent_of_equity, default_qty_value=25, initial_capital=1000, commission_type=strategy.commission.percent, commission_value=0.01 ) // PARAMETERS // Assumes quote currency is FIAT as with BTC/USDT pair tp1=input.float(200, title="Take Profit 1") tp2=input.float(500, title="Take Profit 2") sl=input.float(200, title="Stop Loss") stOBOS = input.bool(true, title="Use Stochastic overbought/oversold threshold") // Colors colorRed = #FF2052 colorGreen = #66FF00 // FUNCTIONS // Stochastic f_stochastic() => stoch = ta.stoch(close, high, low, 14) stoch_K = ta.sma(stoch, 3) stoch_D = ta.sma(stoch_K, 3) stRD = ta.crossunder(stoch_K, stoch_D) stGD = ta.crossover(stoch_K, stoch_D) [stoch_K, stoch_D, stRD, stGD] // VARIABLES [bbMiddle, bbUpper, bbLower] = ta.bb(close, 20, 2) [stoch_K, stoch_D, stRD, stGD] = f_stochastic() // ORDERS // Active Orders // Check if strategy has open positions inLong = strategy.position_size > 0 inShort = strategy.position_size < 0 // Check if strategy reduced position size in last bar longClose = strategy.position_size < strategy.position_size[1] shortClose = strategy.position_size > strategy.position_size[1] // Entry Conditions // Enter long when during last candle these conditions are true: // Candle high is greater than upper Bollinger Band // Stochastic K line crosses under D line and is oversold longCondition = stOBOS ? low[1] < bbLower[1] and stGD[1] and stoch_K[1] < 25 : low[1] < bbLower[1] and stGD[1] // Enter short when during last candle these conditions are true: // Candle low is lower than lower Bollinger Band // Stochastic K line crosses over D line and is overbought shortCondition = stOBOS ? high[1] > bbUpper[1] and stRD[1] and stoch_K[1] > 75 : high[1] > bbUpper[1] and stRD[1] // Exit Conditions // Calculate Take Profit longTP1 = strategy.position_avg_price + tp1 longTP2 = strategy.position_avg_price + tp2 shortTP1 = strategy.position_avg_price - tp1 shortTP2 = strategy.position_avg_price - tp2 // Calculate Stop Loss // Initialise variables var float longSL = 0.0 var float shortSL = 0.0 // When not in position, set stop loss using close price which is the price used during backtesting // When in a position, check to see if the position was reduced on the last bar // If it was, set stop loss to position entry price. Otherwise, maintain last stop loss value longSL := if inLong and ta.barssince(longClose) < ta.barssince(longCondition) strategy.position_avg_price else if inLong longSL[1] else close - sl shortSL := if inShort and ta.barssince(shortClose) < ta.barssince(shortCondition) strategy.position_avg_price else if inShort shortSL[1] else close + sl // Manage positions strategy.entry("Long", strategy.long, when=longCondition) strategy.exit("TP1/SL", from_entry="Long", qty_percent=50, limit=longTP1, stop=longSL) strategy.exit("TP2/SL", from_entry="Long", limit=longTP2, stop=longSL) strategy.entry("Short", strategy.short, when=shortCondition) strategy.exit("TP1/SL", from_entry="Short", qty_percent=50, limit=shortTP1, stop=shortSL) strategy.exit("TP2/SL", from_entry="Short", limit=shortTP2, stop=shortSL) // DRAW // Stochastic Chart plot(stoch_K, color=color.blue) plot(stoch_D, color=color.orange) // Circles plot(stOBOS ? stRD and stoch_K >= 75 ? stoch_D : na : stRD ? stoch_D : na, color=colorRed, style=plot.style_circles, linewidth=3) plot(stOBOS ? stGD and stoch_K <= 25 ? stoch_D : na : stGD ? stoch_K : na, color=colorGreen, style=plot.style_circles, linewidth=3) // Levels hline(75, linestyle=hline.style_dotted) hline(25, linestyle=hline.style_dotted)