فاصلہ پر مبنی ٹریلنگ اسٹاپ نقصان مقداری حکمت عملی


تخلیق کی تاریخ: 2023-11-15 11:24:16 آخر میں ترمیم کریں: 2023-11-15 11:24:16
کاپی: 0 کلکس کی تعداد: 682
1
پر توجہ دیں
1617
پیروکار

فاصلہ پر مبنی ٹریلنگ اسٹاپ نقصان مقداری حکمت عملی

جائزہ

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

اصول

  1. lastg اور lastr کا حساب لگائیں جو بالترتیب آخری بڑھتی ہوئی K لائن کی اختتامی قیمت اور آخری گرتی ہوئی K لائن کی اختتامی قیمت کی نمائندگی کرتے ہیں۔

  2. lastg اور lastr کی قیمتوں میں فرق کے طور پر dist کا حساب لگائیں۔

  3. adist کو dist کے 30 سیکنڈ کی سادہ حرکت پذیری اوسط کے طور پر شمار کریں۔

  4. جب ڈسٹ ایڈسٹ سے دوگنا بڑا ہو تو ٹرانزیکشن سگنل پیدا کریں۔

  5. فاسٹ آر ایس آئی اشارے کے ساتھ مل کر فلٹر سگنل ، جھوٹے توڑ سے بچنے کے لئے

  6. اگر سگنل ہے اور کوئی پوزیشن نہیں ہے تو ، فکسڈ فیصد پر داخلہ پوزیشن کھولیں۔

  7. مارٹینگل اصول کا استعمال کرتے ہوئے، نقصان کے بعد جمع کرنا

  8. اسٹاپ نقصان یا اسٹاپ اسٹاپ کے بعد قیمتوں میں کمی کا سبب بنتا ہے۔

فوائد

  1. ڈی سی بی کے اشارے کا استعمال کرتے ہوئے رجحان کی سمت کا تعین کرنے کے لئے ، درمیانی اور لمبی لائن کے رجحانات کو مؤثر طریقے سے پکڑنے کے قابل ہے۔

  2. فوری آر ایس آئی اشارے فلٹرنگ سے غلط توڑ سے بچنے سے نقصان ہوتا ہے۔

  3. موبائل نقصان روکنے کا طریقہ کار منافع کو مقفل کرتا ہے اور خطرے کو مؤثر طریقے سے کنٹرول کرتا ہے۔

  4. مارٹینگل اصول نقصان کے بعد زیادہ منافع کے حصول کے لئے پوزیشن بڑھا دیتا ہے۔

  5. حکمت عملی کے پیرامیٹرز کو مختلف مارکیٹ کے حالات کے مطابق مناسب طریقے سے ترتیب دیا گیا ہے۔

خطرات

  1. ڈی سی بی کے اشارے سے غلط سگنل نکل سکتے ہیں اور انہیں دوسرے اشارے کے ساتھ مل کر فلٹر کرنے کی ضرورت ہے۔

  2. مارٹینگل نے مزید کہا کہ اس طرح کے ہاؤسنگ سے نقصانات میں اضافہ ہوتا ہے اور اس کے لیے سخت فنڈ مینجمنٹ کی ضرورت ہے۔

  3. غیر معقول اسٹاپ نقصان کی ترتیب سے توقع سے زیادہ نقصان ہوسکتا ہے۔

  4. اس کے علاوہ ، آپ کو اپنے اسٹاک کی پوزیشنوں کی تعداد کو سختی سے کنٹرول کرنے کی ضرورت ہے ، تاکہ آپ کی مالی صلاحیت سے تجاوز نہ ہو۔

  5. ٹریڈنگ کے معاہدوں کی غلط ترتیب سے انتہائی صورت حال میں بڑے پیمانے پر نقصانات کا سامنا کرنا پڑتا ہے۔

آپٹمائزیشن

  1. DCB پیرامیٹرز کو بہتر بنانے کے لئے ، بہترین پیرامیٹرز کا مجموعہ تلاش کریں۔

  2. تیز رفتار RSI کو فلٹر کرنے کے لئے دوسرے اشارے کی کوشش کریں.

  3. اسٹریٹجک جیت کی شرح کو بہتر بنانے کے لئے سٹاپ نقصان اور سٹاپ بریک پیرامیٹرز کو بہتر بنائیں۔

  4. مارٹینگل پیرامیٹرز کو بہتر بنائیں اور ان میں اضافے کے خطرے کو کم کریں۔

  5. مختلف تجارتی اقسام کو آزمائیں اور بہترین قسم کا سودا منتخب کریں۔

  6. مشین لرننگ جیسے تکنیکی متحرک اصلاح کی حکمت عملی کے پیرامیٹرز کے ساتھ مل کر۔

خلاصہ کریں۔

یہ حکمت عملی مجموعی طور پر ایک زیادہ پختہ رجحان کی پیروی کرنے والی حکمت عملی ہے۔ DCB کا استعمال کرتے ہوئے رجحان کی سمت کا تعین کیا جاتا ہے ، RSI فلٹرنگ سگنل کو فوری طور پر غلط کھلنے سے بچا جاسکتا ہے۔ اس کے ساتھ ہی ، نقصان کو روکنے کا طریقہ کار ایک ہی نقصان کو مؤثر طریقے سے کنٹرول کرسکتا ہے۔ لیکن اس حکمت عملی میں کچھ خطرہ بھی ہے ، خطرے کو کم کرنے اور استحکام کو بڑھانے کے لئے پیرامیٹرز کو مزید بہتر بنانے کی ضرورت ہے۔ مجموعی طور پر ، اس حکمت عملی کا نظریہ واضح اور سمجھنے میں آسان ہے ، جو درمیانی لمبی رجحانات کے تاجروں کے لئے موزوں ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-11-07 00:00:00
end: 2023-11-14 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Distance Strategy v1.0", shorttitle = "Distance str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10)

//Settings 
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usemar = input(true, defval = true, title = "Use Martingale")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
usersi = input(true, defval = true, title = "Use RSI-Filter")
periodrsi = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limitrsi = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI Limit")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
fastup = rma(max(change(close), 0), periodrsi)
fastdown = rma(-min(change(close), 0), periodrsi)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Distance
bar = close > open ? 1 : close < open ? -1 : 0
lastg = bar == 1 ? close : lastg[1]
lastr = bar == -1 ? close : lastr[1]
dist = lastg - lastr
adist = sma(dist, 30)
plot(lastg, linewidth = 3, color = lime)
plot(lastr, linewidth = 3, color = red)
up = bar == -1 and dist > adist * 2
dn = bar == 1 and dist > adist * 2

//RSI Filter
rsidn = fastrsi < limitrsi or usersi == false
rsiup = fastrsi > 100 - limitrsi or usersi == false

//Signals
up1 = up and rsidn
dn1 = dn and rsiup
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open))

//Arrows
plotarrow(up1 ? 1 : na, colorup = blue, colordown = blue)
plotarrow(dn1 ? -1 : na, colorup = blue, colordown = blue)

//Trading
profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1]
mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1]

signalup = up1
if signalup
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

signaldn = dn1
if signaldn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()