संसाधन लोड हो रहा है... लोड करना...

अंतिम एन मोमबत्ती रिवर्स तर्क रणनीति

लेखक:चाओझांग, दिनांकः 2023-12-26 11:00:29
टैगः

img

अवलोकन

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

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

यह रणनीति मुख्य रूप से निम्नलिखित महत्वपूर्ण मापदंडों पर आधारित हैः

  1. numCandlesToCheck: जांचने के लिए मोमबत्तियों की संख्या निर्दिष्ट करने के लिए प्रयोग किया जाता है
  2. numCandlesToExit: खुलने की स्थिति के बाद बाहर निकलने के लिए आवश्यक मोमबत्तियों की संख्या निर्दिष्ट करता है
  3. उलटा तर्क: उलटा तर्क पैरामीटर। जब सच होता है, तो मूल लंबा और छोटा तर्क उलटा होता है

मुख्य तर्क अंतिम numCandlesToCheck मोमबत्तियों को एक for लूप के माध्यम से पार करना है, और वास्तविक समय में लगातार हरी और लाल मोमबत्तियों को गिनना है। यदि लगातार लाल मोमबत्तियां ≥numCandlesToCheck हैं, तो lastNCandlesRed को सही के रूप में चिह्नित करें। यदि लगातार हरी मोमबत्तियां ≥numCandlesToCheck हैं, तो lastNCandlesGreen को सही के रूप में चिह्नित करें।

जब lastNCandlesGreen सही है, तो यदि उलटा तर्क गलत है तो लंबा हो, अन्यथा छोटा हो। इसके विपरीत, जब lastNCandlesRed सही है, तो यदि उलटा तर्क गलत है तो छोटा हो, अन्यथा लंबा हो।

कोई फर्क नहीं पड़ता कि लंबे या छोटे, barsSinceEntry काउंटर खोलने की स्थिति के बाद 0 पर रीसेट हो जाएगा. जब barsSinceEntry numCandlesToExit से अधिक या बराबर है, तो वर्तमान स्थिति बंद हो जाएगी.

लाभ विश्लेषण

यह एक दिलचस्प रणनीति है जो निर्णय लेने के लिए मोमबत्ती के रंग का उपयोग करती है, एक विपरित तर्क पैरामीटर के साथ जो लचीले ढंग से लंबे और छोटे तर्क को समायोजित कर सकती है। मुख्य फायदे हैंः

  1. यह विचार नया है और बाजार के सामान्य तर्क के खिलाफ रिवर्स निवेश का गठन कर सकता है
  2. कोड स्पष्ट और संक्षिप्त है, समझने और संशोधित करने में आसान है
  3. मापदंडों को समायोजित करके इष्टतम पैरामीटर संयोजन पा सकते हैं
  4. कोई फर्क नहीं पड़ता कि बाजार की स्थिति, इस रणनीति चल रहा है और संकेत उत्पन्न कर सकते हैं

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

इस रणनीति के लिए कुछ जोखिम भी ध्यान देने योग्य हैंः

  1. मोमबत्ती का रंग बाजार की स्थिति का पूरी तरह से प्रतिनिधित्व नहीं कर सकता है, गलत संकेत का पता लगाने का जोखिम मौजूद है
  2. numCandlesToCheck के लिए इष्टतम मान निर्धारित करने में असमर्थ
  3. numCandlesToExit के लिए इष्टतम मान निर्धारित करने में असमर्थ
  4. गलत उलटा तर्क पैरामीटर नुकसान को बढ़ा सकता है
  5. एकल स्टॉप हानि को प्रभावी ढंग से नियंत्रित करने में असमर्थ

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

  1. गलत संकेतों से बचने के लिए अन्य फ़िल्टर बढ़ाएं, उदाहरण के लिए उच्च समय सीमा पर प्रवृत्ति निर्धारित करें
  2. इष्टतम पैरामीटर संयोजन खोजने के लिए विभिन्न पैरामीटर मूल्यों को पार करें
  3. एकल हानि को नियंत्रित करने के लिए स्टॉप लॉस तंत्र जोड़ें
  4. उलटा तर्क पैरामीटर की प्रभावशीलता सत्यापित करें

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

इस रणनीति के लिए मुख्य अनुकूलन दिशाएं हैंः

  1. फंसने से बचने के लिए ऑर्डर बुक की स्थिति बढ़ाएं
  2. numCandlesToCheck और numCandlesToExit के मानों को अनुकूलित करें
  3. झूठे संकेत को फ़िल्टर करने के लिए उच्च समय सीमा पर प्रवृत्ति संकेतक जोड़ें
  4. स्टॉप लॉस और ले लाभ जोड़ें
  5. प्रभावकारिता सत्यापित करने के लिए विभिन्न उत्पादों पर बैकटेस्ट
  6. मूल और उलटा तर्क के बीच वापसी की तुलना करें

निष्कर्ष

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


/*backtest
start: 2022-12-25 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Last Number of  Candles", overlay=true)

// Define the condition for a green candle
isGreenCandle(candle) =>
    close[candle] > open[candle]

// Define the condition for a red candle
isRedCandle(candle) =>
    close[candle] < open[candle]

// Input to specify the number of candles to check
numCandlesToCheck = input(5, title="Number of Candles to Check")
numCandlesToExit = input(2, title="Number of Candles To Exit")  // Corrected the input title

// Initialize variables to count consecutive green and red candles
var int consecutiveGreenCandles = 0
var int consecutiveRedCandles = 0

// Initialize barsSinceEntry outside the loop
var int barsSinceEntry = 0

// Loop through the last "numCandlesToCheck" candles
for i = 0 to numCandlesToCheck - 1
    if isGreenCandle(i)
        consecutiveGreenCandles := consecutiveGreenCandles + 1
        consecutiveRedCandles := 0 // Reset the count for consecutive red candles
    else if isRedCandle(i)
        consecutiveRedCandles := consecutiveRedCandles + 1
        consecutiveGreenCandles := 0 // Reset the count for consecutive green candles

// Check if the last "numCandlesToCheck" candles are green or red
lastNCandlesGreen = consecutiveGreenCandles >= numCandlesToCheck
lastNCandlesRed = consecutiveRedCandles >= numCandlesToCheck

// Calculate the quantity based on the investment value and current asset price
investmentValue = input(10000, title="Investment Value")
var assetPrice = close
var quantity = investmentValue / assetPrice


inverseLogic = input(false, title="inverseLogic")

// Entry condition: Open a buy order if the last "numCandlesToCheck" candles are green
if lastNCandlesGreen
    if inverseLogic
        strategy.entry("Short", strategy.long, qty = quantity)
    else 
        strategy.entry("Buy", strategy.long, qty = quantity)// Reset barsSinceEntry when entering a trade
    barsSinceEntry := 0

// Entry condition: Open a short order if the last "numCandlesToCheck" candles are red
if lastNCandlesRed
    if inverseLogic
        strategy.entry("Buy", strategy.long, qty = quantity)

    else 
        strategy.entry("Short", strategy.short, qty = quantity)
    // Reset barsSinceEntry when entering a trade
    barsSinceEntry := 0

// Increment barsSinceEntry
barsSinceEntry := barsSinceEntry + 1

// Exit condition: Close the position after 2 bars
if barsSinceEntry >= numCandlesToExit
    strategy.close("Buy")
    strategy.close("Short")


अधिक