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


निर्माण तिथि: 2023-11-15 11:24:16 अंत में संशोधित करें: 2023-11-15 11:24:16
कॉपी: 0 क्लिक्स: 682
1
ध्यान केंद्रित करना
1617
समर्थक

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

अवलोकन

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

सिद्धांत

  1. lastg और lastr की गणना करें, जो क्रमशः अंतिम वृद्धि K लाइन के समापन मूल्य और अंतिम गिरावट K लाइन के समापन मूल्य को दर्शाते हैं।

  2. dist को lastg और lastr के मूल्य अंतर के रूप में गणना करें।

  3. adist को dist के लिए 30 चक्र सरल चलती औसत के रूप में गणना करें।

  4. जब dist dist की तुलना में दोगुना बड़ा होता है, तो एक लेनदेन संकेत उत्पन्न करता है।

  5. एक त्वरित आरएसआई संकेत के साथ, यह संकेतों को फ़िल्टर करता है ताकि झूठे ब्रेक से बचा जा सके।

  6. यदि कोई संकेत है और कोई स्थिति नहीं है, तो एक निश्चित प्रतिशत पर प्रवेश करें और स्थिति खोलें।

  7. मार्टिंगेल सिद्धांत का उपयोग करके, घाटे के बाद जमा करें।

  8. कीमतों ने स्टॉपलॉस या स्टॉपलॉस के बाद सपाट स्थिति को ट्रिगर किया।

लाभ

  1. डीसीबी सूचकांक का उपयोग प्रवृत्ति की दिशा का आकलन करने के लिए किया जाता है, जो मध्यम और दीर्घकालिक रुझानों को प्रभावी ढंग से पकड़ने में सक्षम है।

  2. आरएसआई सूचकांक को जल्दी से फ़िल्टर करने से नकली ब्रेकआउट से बचने में मदद मिलती है।

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

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

  5. विभिन्न बाजार स्थितियों के लिए उचित रणनीति पैरामीटर सेटिंग

जोखिम

  1. डीसीबी संकेतक गलत संकेत दे सकता है और अन्य संकेतक के साथ संयोजन में फ़िल्टर की आवश्यकता होती है।

  2. मार्टिंगेल ने कहा, “हमारे लिए यह बहुत महत्वपूर्ण है कि हम अपने पैसे का सही प्रबंधन करें।

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

  4. स्टॉक की क्षमता से अधिक न होने के लिए स्टॉक की संख्या पर सख्त नियंत्रण की आवश्यकता होती है।

  5. ट्रेडिंग कॉन्ट्रैक्ट की गलत सेटिंग से चरम स्थितियों में भारी नुकसान हो सकता है।

सोच को अनुकूलित करें

  1. डीसीबी पैरामीटर को अनुकूलित करें, सबसे अच्छा पैरामीटर संयोजन ढूंढें

  2. त्वरित आरएसआई को फ़िल्टर करने के लिए अन्य संकेतकों का प्रयास करें।

  3. स्टॉपलॉस और स्टॉपबॉक्स पैरामीटर को अनुकूलित करें और रणनीति जीतने की संभावना बढ़ाएं

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

  5. विभिन्न व्यापारिक किस्मों का परीक्षण करें और सर्वश्रेष्ठ किस्मों के लिए सट्टा चुनें।

  6. मशीन लर्निंग जैसे तकनीकी गतिशीलता अनुकूलन रणनीति पैरामीटर के साथ संयुक्त।

संक्षेप

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

रणनीति स्रोत कोड
/*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()