
ڈبل برابر لائن توڑنے کی حکمت عملی ایک رجحان سے باخبر رہنے کی حکمت عملی ہے جس میں خرید و فروخت کے اشارے کے طور پر دو مختلف ادوار پر مبنی حرکت پذیر اوسط کی کراسنگ ہوتی ہے۔ یہ حکمت عملی تیز اوسط اور سست اوسط کراسنگ پوائنٹس کو تجارت کے داخلے کے مقام کے طور پر استعمال کرتی ہے ، کراسنگ کے بعد اس رجحان کی سمت کا تعین کرتی ہے اور اسی کے مطابق اوور ہیڈ یا خالی پوزیشن بناتی ہے۔ یہ درمیانی سطح کے رجحانات کو پکڑنے کے ساتھ ساتھ غیر ضروری اتار چڑھاو کی وجہ سے ہونے والی اعلی تجارت کی فریکوئنسی کے مسئلے کو بھی کم کرتی ہے۔
یہ حکمت عملی دو حرکت پذیر اوسطوں کا استعمال کرتی ہے: ایک تیز ایم اے اور ایک سست ایم اے۔ تیز ایم اے کا دورانیہ عام طور پر مختصر مدت کے لئے ہوتا ہے (جیسے 15 پیراڈ) ، جو قلیل مدتی قیمتوں میں تبدیلی کو پکڑنے کے لئے استعمال ہوتا ہے۔ سست ایم اے کا دورانیہ عام طور پر طویل مدت کے لئے ہوتا ہے (جیسے 21 پیراڈ) ، جو اہم رجحانات کی سمت کا تعین کرنے کے لئے استعمال ہوتا ہے۔ حکمت عملی کا تجارتی سگنل دو ایم اے کے کراس سے آتا ہے۔ جب تیز ایم اے پر سست ایم اے ہوتا ہے تو خریدنے کا اشارہ ہوتا ہے۔ جب تیز ایم اے کے نیچے سست ایم اے ہوتا ہے تو فروخت کا اشارہ ہوتا ہے۔
مختلف ایم اے سائیکل کے جوڑے ترتیب دے کر حکمت عملی کو رجحانات کو پکڑنے کے لئے وقت کی لمبائی کو ایڈجسٹ کیا جاسکتا ہے۔ مختصر ایم اے جوڑے مختصر مختصر مدت کے لئے قیمتوں میں تبدیلی کے مواقع کو پکڑ سکتے ہیں۔ طویل ایم اے جوڑے صرف لمبی لائن کی سطح پر رجحانات کو پکڑنے کے لئے فلٹر کر سکتے ہیں۔
اس حکمت عملی میں رسک مینجمنٹ ماڈیولز بھی شامل ہیں: اسٹاپ اسٹاپ ، اسٹاپ نقصان ، اور چلنے والی روک تھام۔ اس سے کسی ایک تجارت میں زیادہ سے زیادہ نقصان کو محدود کیا جاسکتا ہے ، جس سے مجموعی منافع کو بچانے میں مدد ملتی ہے۔
دو طرفہ حکمت عملی کے درج ذیل فوائد ہیں:
اس کے علاوہ، دو طرفہ حکمت عملی کے کچھ خطرات بھی ہیں، جو بنیادی طور پر مندرجہ ذیل پہلوؤں پر توجہ مرکوز کرتے ہیں:
ان خطرات کو بہتر اور بہتر بنایا جاسکتا ہے ، جیسے کہ ایم اے پیرامیٹرز کو ایڈجسٹ کرنا ، فلٹرنگ شرائط شامل کرنا ، اور اسٹاپ لاسر منطق کو بہتر بنانا۔
ڈبل یکساں حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
ان اصلاحات اور بہتریوں کے ذریعے حکمت عملی کی کامیابی، منافع اور خطرے سے واپسی کی شرح میں نمایاں اضافہ کیا جاسکتا ہے۔
مجموعی طور پر ، ڈبل یکساں توڑنے والی حکمت عملی ایک رجحان سے باخبر رہنے کی حکمت عملی ہے جس پر عمل درآمد اور اصلاح کرنا آسان ہے۔ اس میں آسانی سے کام کرنے ، لچکدار ایڈجسٹ کرنے اور خطرے پر قابو پانے کے فوائد ہیں ، اور یہ مقدار کی تجارت کے لئے ایک ابتدائی حکمت عملی کے طور پر بہت موزوں ہے۔ مسلسل جانچ اور اصلاح کے ذریعہ ، اس حکمت عملی کو مستقل طور پر بہتر بنایا جاسکتا ہے ، اور اس میں معیار کی حکمت عملی بننے کی صلاحیت ہے۔
/*backtest
start: 2022-12-10 00:00:00
end: 2023-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "Silent Trader Strategy", shorttitle = "Silent Trader", overlay = true, pyramiding = 0, default_qty_type = strategy.cash, default_qty_value = 1000, commission_value = 0.0675, initial_capital = 1000, currency = currency.USD, calc_on_order_fills = true, calc_on_every_tick = true)
maFastSource = input(defval = ohlc4, title = "Fast MA Source")
maFastLength = input(defval = 15, title = "Fast MA Period", minval = 1)
maSlowSource = input(defval = ohlc4, title = "Slow MA Source")
maSlowLength = input(defval = 21, title = "Slow MA Period", minval = 1)
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
inpTakeProfit = input(defval = 100, title = "Take Profit percentage(0.1%)", minval = 0)
inpStopLoss = input(defval = 100, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
useTimeLimit = input(defval = true, title = "Use Start Time Limiter?")
startYear = input(defval = 2018, title = "Start From Year", minval = 0, step = 1)
startMonth = input(defval = 05, title = "Start From Month", minval = 0,step = 1)
startDay = input(defval = 01, title = "Start From Day", minval = 0,step = 1)
startHour = input(defval = 00, title = "Start From Hour", minval = 0,step = 1)
startMinute = input(defval = 00, title = "Start From Minute", minval = 0,step = 1)
startTimeOk() =>
inputTime = timestamp(syminfo.timezone, startYear, startMonth, startDay, startHour, startMinute)
timeOk = time > inputTime ? true : false
r = (useTimeLimit and timeOk) or not useTimeLimit
maFast = ema(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)
fast = plot(maFast, title = "Fast MA", color = #26A69A, linewidth = 1, style = line, transp = 50)
slow = plot(maSlow, title = "Slow MA", color = #EF5350, linewidth = 1, style = line, transp = 50)
aboveBelow = maFast >= maSlow ? true : false
tradeDirection = tradeInvert ? aboveBelow ? false : true : aboveBelow ? true : false
if( startTimeOk() )
enterLong = not tradeDirection[1] and tradeDirection
exitLong = tradeDirection[1] and not tradeDirection
strategy.entry( id = "Long", long = true, when = enterLong )
//strategy.close( id = "Long", when = exitLong )
enterShort = tradeDirection[1] and not tradeDirection
exitShort = not tradeDirection[1] and tradeDirection
strategy.entry( id = "Short", long = false, when = enterShort )
//strategy.close( id = "Short", when = exitShort )
strategy.exit("Exit Long", from_entry = "Long", profit = close * useTakeProfit / 1000 / syminfo.mintick, loss = close * useStopLoss / 1000 / syminfo.mintick, trail_points = close * useTrailStop / 1000 / syminfo.mintick, trail_offset = close * useTrailOffset / 1000 / syminfo.mintick)
strategy.exit("Exit Short", from_entry = "Short", profit = close * useTakeProfit / 1000 / syminfo.mintick, loss = close * useStopLoss / 1000 / syminfo.mintick, trail_points = close * useTrailStop / 1000 / syminfo.mintick, trail_offset = close * useTrailOffset / 1000 / syminfo.mintick)