ट्रेलिंग स्टॉप लॉस के साथ दूरी पर आधारित रणनीति का अनुसरण करना

लेखक:चाओझांग, दिनांक: 2023-11-15 11:24:16
टैगः

img

अवलोकन

यह रणनीति मूल्य की प्रवृत्ति को निर्धारित करने के लिए दूरी बंद बार (डीसीबी) संकेतक और एक फ़िल्टर के रूप में तेजी से आरएसआई संकेतक का उपयोग करती है, ट्रेडिंग के बाद प्रवृत्ति के लिए ट्रेलिंग स्टॉप लॉस को लागू करती है। यह स्थिति आकार के लिए मार्टिंगेल सिद्धांत का भी उपयोग करती है। मध्यम-लंबी अवधि की प्रवृत्ति व्यापार के लिए उपयुक्त है।

सिद्धांत

  1. पिछले हरे रंग की पट्टी को बंद करने और अंतिम लाल पट्टी को बंद करने के लिए lastg और lastr की गणना करें।

  2. lastg और lastr के बीच अंतर के रूप में dist की गणना करें।

  3. अडिस्ट की गणना डिस्ट के 30-पीरियड एसएमए के रूप में की जाती है।

  4. ट्रेडिंग सिग्नल उत्पन्न करें जब dist adist के 2 गुना से अधिक हो।

  5. झूठे ब्रेकआउट से बचने के लिए संकेत को फ़िल्टर करने के लिए तेजी से आरएसआई संकेतक का उपयोग करें।

  6. यदि कोई स्थिति नहीं है तो इक्विटी के निश्चित प्रतिशत पर व्यापार करें।

  7. हार के बाद मार्टिंगेल को स्केल करने के लिए।

  8. बंद स्थिति जब स्टॉप लॉस या ले लाभ ट्रिगर किया जाता है।

लाभ

  1. डीसीबी संकेतक प्रभावी रूप से मध्यम और दीर्घकालिक रुझानों को दर्शाता है।

  2. फास्ट आरएसआई फिल्टर झूठे ब्रेकआउट से नुकसान से बचाता है।

  3. ट्रेलिंग स्टॉप लाभ में ताले लगाता है और जोखिमों को नियंत्रित करता है।

  4. मार्टिंगेल अधिक लाभ के लिए हानि के बाद स्थिति को बढ़ाता है।

  5. उचित पैरामीटर सेटिंग्स विभिन्न बाजार वातावरणों के अनुकूल हैं।

जोखिम

  1. डीसीबी गलत संकेत उत्पन्न कर सकता है, अन्य फिल्टर की जरूरत है।

  2. मार्टिंगेल नुकसान को बढ़ा सकता है, सख्त जोखिम प्रबंधन की आवश्यकता होती है।

  3. गलत स्टॉप लॉस सेटिंग से अत्यधिक नुकसान हो सकता है।

  4. अत्यधिक लाभप्रदता से बचने के लिए स्थिति का आकार सीमित होना चाहिए।

  5. अनुचित अनुबंध सेटिंग्स चरम बाजार में भारी नुकसान का कारण बन सकती हैं।

अनुकूलन

  1. सर्वोत्तम संयोजन के लिए डीसीबी मापदंडों का अनुकूलन करें.

  2. तेजी से आरएसआई फिल्टर को बदलने के लिए अन्य संकेतकों का प्रयास करें।

  3. उच्च जीत दर के लिए स्टॉप लॉस को अनुकूलित करें और लाभ लें।

  4. जोखिम को कम करने के लिए मार्टिंगेल मापदंडों का अनुकूलन करें।

  5. सर्वोत्तम परिसंपत्ति आवंटन के लिए विभिन्न उत्पादों पर परीक्षण।

  6. गतिशील रूप से मापदंडों का अनुकूलन करने के लिए मशीन लर्निंग का उपयोग करें.

सारांश

यह एक समग्र परिपक्व प्रवृत्ति के बाद की रणनीति है। डीसीबी प्रवृत्ति की दिशा निर्धारित करता है और गलत प्रविष्टियों से बचने के लिए तेजी से आरएसआई फ़िल्टर सिग्नल करता है। स्टॉप लॉस और ले लाभ प्रभावी रूप से एकल व्यापार हानि को नियंत्रित करता है। लेकिन अभी भी जोखिम हैं, जोखिम को कम करने और स्थिरता में सुधार के लिए मापदंडों को और अनुकूलन की आवश्यकता है। तर्क स्पष्ट और समझने में आसान है, मध्यम-लंबी अवधि के प्रवृत्ति व्यापारियों के लिए उपयुक्त है।


/*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()

अधिक