आरएसआई गतिशील स्थिति औसतकरण रणनीति

लेखक:चाओझांग, दिनांक: 2024-02-06 09:44:05
टैगः

img

अवलोकन

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

रणनीति तर्क

  1. आरएसआई संकेतक का उपयोग बाजार के ओवरसोल्ड स्थितियों की पहचान करने के लिए किया जाता है, आरएसआई अवधि 14 और ओवरसोल्ड सीमा 30 पर सेट की जाती है।
  2. आरएसआई < 30 होने पर खाते के स्वामित्व के 5% के साथ पहली लंबी स्थिति शुरू करें।
  3. यदि मूल्य प्रारंभिक प्रवेश मूल्य से 0.5% गिरता है, तो स्थिति आकार को दोगुना करके औसत नीचे की ओर ले जाएं। यदि मूल्य में और गिरावट आती है, तो स्थिति आकार को चार गुना करके औसत नीचे की ओर ले जाएं।
  4. हर बार 0.5% की वृद्धि पर लाभ प्राप्त करें।
  5. चक्र दोहराएँ।

लाभ विश्लेषण

  • अच्छे प्रवेश बिंदुओं के लिए आरएसआई के साथ बाजार की ओवरसोल्ड स्थितियों की पहचान करें।
  • मार्टिंगेल स्थिति औसतकरण औसत प्रवेश मूल्य को कम करता है।
  • छोटे लाभ लेने से लगातार लाभ होता है।
  • नियंत्रित जोखिमों के लिए उच्च बाजार पूंजी के सिक्कों के स्पॉट ट्रेडिंग के लिए उपयुक्त।

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

  • लंबे समय तक बाजार में मंदी होने से भारी नुकसान हो सकता है।
  • कोई स्टॉप लॉस का मतलब है असीमित डाउनसाइड.
  • बहुत अधिक औसत घटाने से नुकसान बढ़ जाता है।
  • अभी भी दीर्घ दिशा जोखिम है।

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

  1. अधिकतम हानि को सीमित करने के लिए स्टॉप लॉस को शामिल करें।
  2. सबसे अच्छा ओवरबॉट/ओवरसोल्ड संकेत खोजने के लिए आरएसआई मापदंडों का अनुकूलन करें।
  3. विशिष्ट सिक्के की अस्थिरता के आधार पर उचित लाभ लेने की सीमा निर्धारित करें।
  4. कुल परिसंपत्तियों या स्थिति आकार के नियमों के आधार पर औसत गति निर्धारित करें।

सारांश

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


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Stavolt

//@version=5
strategy("RSI Martingale Strategy", overlay=true, default_qty_type=strategy.cash, currency=currency.USD)

// Inputs
rsiLength = input(14, title="RSI Length")
oversoldThreshold = input(30, title="Oversold Threshold") // Keeping RSI threshold
profitTargetPercent = input(0.5, title="Profit Target (%)") / 100
initialInvestmentPercent = input(5, title="Initial Investment % of Equity")

// Calculating RSI
rsiValue = ta.rsi(close, rsiLength)

// State variables for tracking the initial entry
var float initialEntryPrice = na
var int multiplier = 1

// Entry condition based on RSI
if (rsiValue < oversoldThreshold and na(initialEntryPrice))
    initialEntryPrice := close
    strategy.entry("Initial Buy", strategy.long, qty=(strategy.equity * initialInvestmentPercent / 100) / close)
    multiplier := 1

// Adjusting for errors and simplifying the Martingale logic
// Note: This section simplifies the aggressive position size adjustments without loops
if (not na(initialEntryPrice))
    if (close < initialEntryPrice * 0.995) // 0.5% drop from initial entry
        strategy.entry("Martingale Buy 1", strategy.long, qty=((strategy.equity * initialInvestmentPercent / 100) / close) * 2)
        multiplier := 2 // Adjusting multiplier for the next potential entry

    if (close < initialEntryPrice * 0.990) // Further drop
        strategy.entry("Martingale Buy 2", strategy.long, qty=((strategy.equity * initialInvestmentPercent / 100) / close) * 4)
        multiplier := 4

    // Additional conditional entries could follow the same pattern

// Checking for profit target to close positions
if (strategy.position_size > 0 and (close - strategy.position_avg_price) / strategy.position_avg_price >= profitTargetPercent)
    strategy.close_all(comment="Take Profit")
    initialEntryPrice := na // Reset for next cycle


अधिक