इस रणनीति का मुख्य विचार अंतिम N मोमबत्तियों के रंग के आधार पर लंबा या छोटा निर्धारित करना है। यदि अंतिम N मोमबत्तियां हरी हैं, तो लंबी जाएं; यदि अंतिम N मोमबत्तियां लाल हैं, तो छोटी जाएं। अनूठा हिस्सा एक
यह रणनीति मुख्य रूप से निम्नलिखित महत्वपूर्ण मापदंडों पर आधारित हैः
मुख्य तर्क अंतिम numCandlesToCheck मोमबत्तियों को एक for लूप के माध्यम से पार करना है, और वास्तविक समय में लगातार हरी और लाल मोमबत्तियों को गिनना है। यदि लगातार लाल मोमबत्तियां ≥numCandlesToCheck हैं, तो lastNCandlesRed को सही के रूप में चिह्नित करें। यदि लगातार हरी मोमबत्तियां ≥numCandlesToCheck हैं, तो lastNCandlesGreen को सही के रूप में चिह्नित करें।
जब lastNCandlesGreen सही है, तो यदि उलटा तर्क गलत है तो लंबा हो, अन्यथा छोटा हो। इसके विपरीत, जब lastNCandlesRed सही है, तो यदि उलटा तर्क गलत है तो छोटा हो, अन्यथा लंबा हो।
कोई फर्क नहीं पड़ता कि लंबे या छोटे, barsSinceEntry काउंटर खोलने की स्थिति के बाद 0 पर रीसेट हो जाएगा. जब barsSinceEntry numCandlesToExit से अधिक या बराबर है, तो वर्तमान स्थिति बंद हो जाएगी.
यह एक दिलचस्प रणनीति है जो निर्णय लेने के लिए मोमबत्ती के रंग का उपयोग करती है, एक
इस रणनीति के लिए कुछ जोखिम भी ध्यान देने योग्य हैंः
इन जोखिमों से निपटने के लिए नियंत्रण और अनुकूलन के लिए निम्नलिखित उपायों को अपनाया जा सकता हैः
इस रणनीति के लिए मुख्य अनुकूलन दिशाएं हैंः
इस रणनीति का समग्र विचार स्पष्ट और समझने में आसान है, मोमबत्ती के रंग निर्धारण के आधार पर व्यापार संकेत उत्पन्न करना। पैरामीटर को समायोजित करने से विभिन्न बाजार वातावरण और उत्पादों को लक्षित करने के लिए अनुकूलन के लिए समृद्ध संयोजन भिन्नताएं बन सकती हैं। कुछ संभावित जोखिमों पर भी ध्यान देने की आवश्यकता है और उन्हें नियंत्रित करने के लिए आवश्यक उपाय करने की आवश्यकता है। रणनीति सामग्री को लगातार समृद्ध करके, यह रणनीति दीर्घकालिक व्यापार के लिए अनुकूलन बनाए रखने के लिए एक मूल्यवान बन सकती है।
/*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")