इचिमोकू क्लाउड पर आधारित क्वांट ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-12 14:20:43
टैगः

img

अवलोकन

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

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

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

यह रणनीति एटीआर संकेतक के आधार पर स्टॉप लॉस और टेक प्रॉफिट भी सेट करती है। एटीआर संकेतक प्रभावी रूप से बाजार में उतार-चढ़ाव की डिग्री को पकड़ सकता है। स्टॉप लॉस एटीआर के 2 गुना और टेक प्रॉफिट एटीआर के 4 गुना पर सेट किया गया है। यह प्रभावी रूप से एकल नुकसान को नियंत्रित कर सकता है और कुछ मुनाफे में लॉक कर सकता है।

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

लाभ विश्लेषण

  1. Ichimoku बादल चार्ट संकेतक के आधार पर, यह प्रभावी ढंग से रुझानों को पकड़ सकता है
  2. एटीआर आधारित स्टॉप लॉस और ले लाभ के साथ, यह जोखिमों को नियंत्रित कर सकता है
  3. लाभ में अच्छी तरह से लॉक करने के लिए ट्रैलिंग स्टॉप लॉस तंत्र को अपनाएं
  4. रणनीति तर्क सरल और स्पष्ट है, समझने और सत्यापित करने में आसान है
  5. पैरामीटर उपलब्ध है, पैरामीटर विभिन्न बाजारों के अनुसार समायोजित किया जा सकता है

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

  1. Ichimoku बादल नक्शे पैरामीटर सेटिंग्स के लिए बहुत संवेदनशील हैं, अनुचित सेटिंग्स व्यापार के अवसरों को याद कर सकते हैं या गलत संकेत उत्पन्न कर सकते हैं
  2. यदि ट्रेलिंग स्टॉप लॉस आयाम बहुत बड़ा सेट किया जाता है, तो स्टॉप लॉस समय से पहले हो सकता है
  3. एटीआर संकेतक द्वारा दी गई स्टॉप लॉस लाइन या ट्रेलिंग स्टॉप लॉस लाइन के माध्यम से मजबूत स्टॉक टूट सकते हैं
  4. लेनदेन की लागत का लाभप्रदता पर भी कुछ प्रभाव पड़ेगा

संबंधित जोखिमों के समाधानः

  1. सबसे उपयुक्त सेटिंग्स खोजने के लिए Ichimoku बादल नक्शे के मापदंडों का अनुकूलन करें
  2. उचित अनुवर्ती स्टॉप लॉस आयाम का मूल्यांकन करें, न तो बहुत बड़ा और न ही बहुत छोटा
  3. मजबूत शेयरों के लिए, स्टॉप लॉस रेंज को उचित रूप से ढीला करें
  4. कम कमीशन वाले ब्रोकर चुनें

अनुकूलन दिशाएँ

  1. गलत ट्रेडों को कम करने के लिए सिग्नल फ़िल्टरिंग के लिए अन्य तकनीकी संकेतकों को मिलाएं
  2. ऐतिहासिक डेटा/बैकटेस्टिंग के आधार पर मापदंडों का अनुकूलन
  3. विभिन्न किस्मों के लिए मापदंडों को अलग से अनुकूलित किया जा सकता है
  4. गतिशील रूप से स्टॉप हानि आयाम समायोजित करने पर विचार करें
  5. अधिक विश्वसनीय ट्रेडिंग संकेतों के निर्माण के लिए सुविधा इंजीनियरिंग करने के लिए एल्गोरिदम गठबंधन

सारांश

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


/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud Strategy with SL, TP, and Trailing Stop", overlay=true)

conversionPeriods = input(9, "Conversion Line Length")
basePeriods = input(26, "Base Line Length")
laggingSpan2Periods = input(52, "Leading Span B Length")
displacement = input(26, "Lagging Span")
atrLength = input(14, title="ATR Length")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

// Plot the Ichimoku Cloud components
plot(conversionLine, color=color.blue, title="Conversion Line")
plot(baseLine, color=color.red, title="Base Line")
plot(leadLine1, color=color.green, title="Leading Span A")
plot(leadLine2, color=color.orange, title="Leading Span B")
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, color=color.green, title="Kumo Cloud Upper Line")
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, color=color.red, title="Kumo Cloud Lower Line")

// ATR for stop loss and take profit
atrValue = ta.atr(atrLength)
stopLoss = atrValue * 2
takeProfit = atrValue * 4

// Strategy entry and exit conditions
longCondition = ta.crossover(close, leadLine1) and close > leadLine2
shortCondition = ta.crossunder(close, leadLine1) and close < leadLine2

// Plot buy and sell signals
plotshape(series=longCondition ? leadLine1 : na, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition ? leadLine1 : na, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Execute strategy orders with stop loss and take profit
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition) // Close buy position when sell condition is met
strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition) // Close sell position when buy condition is met

// Trailing stop
strategy.cancel("Trailing Stop")
var float trailingStopPrice = na
if (longCondition)
    trailingStopPrice := math.max(trailingStopPrice, close - atrValue * 2)
    strategy.exit("Trailing Stop", from_entry="Buy", trail_offset=atrValue * 2, trail_price=trailingStopPrice)
else if (shortCondition)
    trailingStopPrice := math.min(trailingStopPrice, close + atrValue * 2)
    strategy.exit("Trailing Stop", from_entry="Sell", trail_offset=atrValue * 2, trail_price=trailingStopPrice)


अधिक