व्हाइट बॉक्स आइसबर्ग रणनीति


निर्माण तिथि: 2023-09-26 21:02:21 अंत में संशोधित करें: 2023-09-26 21:02:21
कॉपी: 0 क्लिक्स: 754
1
ध्यान केंद्रित करना
1617
समर्थक

अवलोकन

रणनीति के आधार पर औसत व्यापार, के माध्यम से सेट बहु सिर और खाली सिर के तीन प्रवेश लाइनों, के माध्यम से बहु खुले दोतरफा स्थिति खोलने के लिए, प्रवृत्ति का पालन करने की रणनीति के अंतर्गत आते हैं. जब कीमत के माध्यम से तोड़ने के लिए लाइन, के बाद में स्थिति खोलने के लिए और अधिक कमरों, के माध्यम से लटकने के लिए आदेश के माध्यम से प्रवेश करने के लिए विभाजन.

रणनीति सिद्धांत

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

अतिरिक्त खाली करने के लिए आदेश की संख्या में वृद्धि हुई है, जो कि लटकने वाले आदेशों को सेट करके स्टॉक खोलने के लिए किया जाता है। उदाहरण के लिए, प्रवेश लाइन 1 ट्रिगर 1 हाथ खोलने के लिए अधिक / खाली है, प्रवेश लाइन 2 ट्रिगर 1 हाथ रखने के लिए है, और प्रवेश लाइन 3 में 1 हाथ रखने के लिए है। इस तरह प्रवेश की लागत को फैलाया जा सकता है, जिससे एकल आदेश का जोखिम कम हो सकता है।

इस रणनीति में एक प्रतिपूर्ति तंत्र भी है। जब पोजीशन की मात्रा 0 से कम होती है, तो स्टॉप लॉस को औसत मूल्य पर सेट किया जाता है, और यदि कीमत फिर से औसत से नीचे गिरती है, तो पोजीशन को बंद कर दिया जाता है। यह कुछ मुनाफे को लॉक कर सकता है और धन की रक्षा कर सकता है।

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

श्रेष्ठता विश्लेषण

इस रणनीति के निम्नलिखित फायदे हैं:

  1. औसत रेखा का उपयोग करके प्रवृत्ति की दिशा को स्पष्ट रूप से निर्धारित किया जा सकता है। औसत रेखा बाजार के शोर को प्रभावी ढंग से फ़िल्टर कर सकती है और मुख्य प्रवृत्ति की दिशा का निर्धारण कर सकती है।

  2. बहु स्तरीय प्रवेश रेखा, प्रवृत्ति चलाने के क्षेत्र का पूरा उपयोग करें। कई प्रवेश रेखाओं के माध्यम से, प्रवृत्ति के पूरे चलने वाले क्षेत्र को अधिकतम रूप से कैप्चर किया जा सकता है, जिससे लाभ की जगह बढ़ जाती है।

  3. अलग-अलग स्थान खोलना, एकल जोखिम को कम करना। कई प्रविष्टियों को विभाजित करना, ऑर्डर के जोखिम को विभाजित करना, और स्थिति की औसत स्थिति लागत को कम करना।

  4. एक प्रतिपूर्ति रोकथाम तंत्र स्थापित करें और जोखिम को प्रभावी ढंग से नियंत्रित करें। प्रतिपूर्ति रोकथाम पत्र के माध्यम से, जब कीमत फिर से औसत रेखा से नीचे आती है, तो बहुत अधिक नुकसान से बचा जा सकता है।

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

जोखिम विश्लेषण

इस रणनीति के कुछ जोखिम भी हैं:

  1. औसत रेखा द्वारा गलत संकेतों की संभावना. औसत रेखा ने रुझान में देरी का आकलन किया है, जो गलत संकेत दे सकता है।

  2. रुझान में बदलाव के कारण होने वाले नुकसान का जोखिम। रणनीति को रुझान के रूप में माना जाता है, यदि रुझान में बदलाव होता है, तो अधिक नुकसान होगा।

  3. प्रवेश लाइनों को अधिक घने होने के कारण लेनदेन की आवृत्ति और स्लाइडिंग लागत बढ़ जाती है।

  4. बैचों के साथ स्थिति खोलने से स्थिति एकाग्रता का जोखिम बढ़ जाता है।

  5. स्टॉप पॉइंट सेटअप अनुचित है, जो समय से पहले या बहुत छोटा हो सकता है।

संबंधित जोखिम प्रबंधन उपाय:

  1. औसत रेखा पैरामीटर का अनुकूलन करें और एक उपयुक्त आवधिक औसत रेखा चुनें।

  2. महत्वपूर्ण तकनीकी संकेतकों पर ध्यान दें, प्रवृत्ति के संकेतों का आकलन करें और समय पर स्टॉप लॉस करें।

  3. लेनदेन की आवृत्ति को कम करने के लिए अंतर को समायोजित करें।

  4. स्थिति के आकार और अनुपात का अनुकूलन करें और एकाग्रता जोखिम को नियंत्रित करें।

  5. स्टॉप लॉस के जोखिम को कम करने के लिए स्टॉप लॉस बिट्स का परीक्षण और अनुकूलन करना।

अनुकूलन दिशा

इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः

  1. विभिन्न औसत रेखा मापदंडों और डेटा स्रोतों का परीक्षण करें और ट्रेंड प्रभाव को निर्धारित करने के लिए सबसे अच्छा औसत रेखा सूचक चुनें।

  2. मल्टी-फ्लोर एंट्री लाइनों के बीच दूरी के अंतराल और स्थिति की संख्या के अनुपात को अनुकूलित करने के लिए, इष्टतम पैरामीटर ढूंढें।

  3. अन्य संकेतकों के साथ संयोजन के रूप में फ़िल्टर शर्तों, गलत संकेतों को रोकने के लिए। जैसे कि एमएसीडी, आरएसआई आदि।

  4. स्टॉप लॉस लाइन की स्थिति का अनुकूलन करें, और एटीआर गतिशील सेटिंग्स के अनुसार स्टॉप लॉस पॉइंट्स सेट करें।

  5. प्रवृत्ति के उलट होने के बारे में अधिक निर्णय, सभी पदों को बंद करने की शर्तें निर्धारित करें।

  6. बाजार के अलग-अलग समय के लिए रणनीति को अनुकूलित करने के लिए पैरामीटर।

  7. पदों की संख्या में वृद्धि के लिए गतिशील समायोजन फ़ंक्शन, धन के उपयोग के अनुपात के आधार पर खुले पदों की संख्या निर्धारित करें।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Robot WhiteBox Iceberg", shorttitle = "Robot WhiteBox Iceberg", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Length")
s = input(defval = "7. OHLC4", options = ["1. Open", "2. High", "3. Low", "4. Close", "5. HL2", "6. HLC3", "7. OHLC4", "8. OC2", "9. PCMA"], title = "Data")
short3 = input(true, title = "short 3")
short2 = input(true, title = "short 2")
short1 = input(true, title = "short 1")
long1 = input(true, title = "long 1")
long2 = input(true, title = "long 2")
long3 = input(true, title = "long 3")
shortlevel3 = input(15.0, title = "Short line 3")
shortlevel2 = input(10.0, title = "Short line 2")
shortlevel1 = input(5.0, title = "Short line 1")
longlevel1 = input(-5.0, title = "Long line 1")
longlevel2 = input(-10.0, title = "Long line 2")
longlevel3 = input(-15.0, title = "Long line 3")
needoffset = input(true, title = "Offset")
fromyear = input(1900, defval = 1900, 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")

//Variables
lots = 0.0
size = strategy.position_size
mult = 1 / syminfo.mintick
needtime = true

//MA
oc2 = (open + close) / 2
pcma = (highest(high, len) + lowest(low, len)) / 2
src = s == "1. Open" ? open : s == "2. High" ? high : s == "3. Low" ? low : s == "4. Close" ? close : s == "5. HL2" ? hl2 : s == "6. HLC3" ? hlc3 : s == "7. OHLC4" ? ohlc4 : s == "8. OC2" ? oc2: close
sma = sma(src, len)
ma = s == "9. PCMA" ? round(pcma * mult) / mult : round(sma * mult) / mult

//Levels
longline1 = 0.0
longline2 = 0.0
longline3 = 0.0
shortline1 = 0.0
shortline2 = 0.0
shortline3 = 0.0
longline1 := long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
longline2 := lots[1] == 0 ? long2 ? round(ma * ((100 + longlevel2) / 100) * mult) / mult : close : longline2[1]
longline3 := lots[1] == 0 ? long3 ? round(ma * ((100 + longlevel3) / 100) * mult) / mult : close : longline3[1]
shortline1 := short1 ? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close
shortline2 := lots[1] == 0 ? short2 ? round(ma * ((100 + shortlevel2) / 100) * mult) / mult : close : shortline2[1]
shortline3 := lots[1] == 0 ? short3 ? round(ma * ((100 + shortlevel3) / 100) * mult) / mult : close : shortline3[1]

//Lines
colorlong1 = long1 ? color.lime : na
colorlong2 = long2 ? color.lime : na
colorlong3 = long3 ? color.lime : na
colorshort1 = short1 ? color.red : na
colorshort2 = short2 ? color.red : na
colorshort3 = short3 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline3, offset = offset, color = colorshort3, title = "Short line 3")
plot(shortline2, offset = offset, color = colorshort2, title = "Short line 2")
plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1")
plot(ma, offset = offset, color = color.blue, title = "MA line")
plot(longline1, offset = offset, color = colorlong1, title = "Long line 1")
plot(longline2, offset = offset, color = colorlong2, title = "Long line 2")
plot(longline3, offset = offset, color = colorlong3, title = "Long line 3")

//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if ma > 0
    lots := round(size / lot)
    strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0 and long1 and needtime))
    lots := round(size / lot)
    strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1 and long2 and needtime))
    lots := round(size / lot)
    strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2 and long3 and needtime))
    lots := round(size / lot)
    strategy.entry("S1", strategy.short, lot, limit = shortline1, when = (lots == 0 and short1 and needtime))
    lots := round(size / lot)
    strategy.entry("S2", strategy.short, lot, limit = shortline2, when = (lots >= -1 and short2 and needtime))
    lots := round(size / lot)
    strategy.entry("S3", strategy.short, lot, limit = shortline3, when = (lots >= -2 and short3 and needtime))
if size > 0
    strategy.entry("TPL", strategy.short, 0, limit = ma, when = needtime)
if size < 0
    strategy.entry("TPS", strategy.long, 0, limit = ma, when = needtime)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("L1")
    strategy.cancel("L2")
    strategy.cancel("L3")
    strategy.cancel("S1")
    strategy.cancel("S2")
    strategy.cancel("S3")
    strategy.cancel("TPL")
    strategy.cancel("TPS")