दोहरी मात्रा व्यापार प्रणाली

लेखक:चाओझांग, दिनांकः 2024-02-26 14:30:54
टैगः

img

यह रणनीति CCI संकेतक, RSI संकेतक और दो चलती औसत को एक यौगिक ट्रेडिंग प्रणाली में जोड़ती है। यह कुछ शोर को फ़िल्टर करने के लिए प्रविष्टियों के लिए पुष्टि जोड़ने के लिए RSI क्रॉसओवर का उपयोग करते हुए पारंपरिक रुझानों को पकड़ सकती है।

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

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

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

रणनीति केवल निर्दिष्ट ट्रेडिंग सत्र के दौरान पदों को खोलती है, रातोंरात जोखिम से बचने के लिए बंद होने से 15 मिनट पहले सभी पदों को सक्रिय रूप से बंद कर देती है। पदों को खोलने के बाद, लाभ में लॉक करने के लिए ट्रैलिंग स्टॉप का उपयोग किया जाता है।

लाभ विश्लेषण

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

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

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

अनुकूलन के सुझाव

  • इष्टतम सेटिंग्स खोजने के लिए विभिन्न सीसीआई पैरामीटर संयोजनों का परीक्षण करें
  • आरएसआई क्रॉसओवर स्थिति को हटाने और सीसीआई के आधार पर सीधे प्रवेश करने वाला परीक्षण
  • इष्टतम सेटिंग्स खोजने के लिए बैकटेस्ट और ऑप्टिमाइज़ ट्रैलिंग स्टॉप पैरामीटर
  • जबरन स्थिति बंद करने के तर्क को हटाने का परीक्षण करें और इसके बजाय लाभ को अधिकतम करने के लिए पदों के दौरान ट्रेलिंग स्टॉप के साथ लाभ का ट्रैक करें

सारांश

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


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © rwestbrookjr

//@version=5
strategy("EMA with RSI Cross Strategy", overlay=true)

//EMA
fastLen = input(title='Fast EMA Length', defval=9)
slowLen = input(title='Slow EMA Length', defval=20)

fastEMA = ta.ema(close, fastLen)
slowEMA = ta.ema(close, slowLen)

fema = plot(fastEMA, title='FastEMA', color=color.new(color.green, 0), linewidth=1, style=plot.style_line)
sema = plot(slowEMA, title='SlowEMA', color=color.new(color.red, 0), linewidth=1, style=plot.style_line)

fill(fema, sema, color=fastEMA > slowEMA ? color.new(#417505, 50) : color.new(#890101, 50), title='Cloud')

// Bull and Bear Alerts
//Bull = ta.crossover(fastEMA, slowEMA)
Bull = fastEMA > slowEMA
//Bear = ta.crossunder(fastEMA, slowEMA)
Bear = fastEMA < slowEMA

//RSIs
rsiLength1Input = input.int(9, minval=1, title="RSI Length", group="RSI Settings")
rsiSource1Input = input.source(close, "Source", group="RSI Settings")
rsiLength2Input = input.int(20, minval=1, title="RSI Length", group="RSI Settings")
rsiSource2Input = input.source(close, "Source", group="RSI Settings")

up1 = ta.rma(math.max(ta.change(rsiSource1Input), 0), rsiLength1Input)
down1 = ta.rma(-math.min(ta.change(rsiSource1Input), 0), rsiLength1Input)
rsi = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1))
up2 = ta.rma(math.max(ta.change(rsiSource2Input), 0), rsiLength2Input)
down2 = ta.rma(-math.min(ta.change(rsiSource2Input), 0), rsiLength2Input)
rsi2 = down2 == 0 ? 100 : up2 == 0 ? 0 : 100 - (100 / (1 + up2 / down2))

//CCI
cciLength = input.int(20, minval=1)
src = input(hlc3, title="Source")
ma = ta.sma(src, cciLength)
cci = (src - ma) / (0.015 * ta.dev(src, cciLength))

//Trail Stop Setup
trstp = input.float(title="Trail Loss($)", minval = 0.0, step = 0.01, defval = 0.5)

longStop = 0.0, shortStop = 0.0

longStop := if Bull
    stopValue = close - trstp
    math.max(stopValue, longStop[1])
else
    0.0

shortStop := if Bear
    stopValue = close + trstp
    math.min(stopValue, shortStop[1])
else
    999999


//Session Setup
open_session=input(defval="0930-1545")
session = time("1", open_session)
validSession=(na(session) ? 0 : 1)

//Trade Signals
longCondition = Bull and cci > 100 and ta.crossover(rsi,rsi2) and validSession
if (longCondition)
    strategy.entry("Long", strategy.long, 1)
    
//longExit = close > strategy.opentrades.entry_price(0) + 1.5 or close < strategy.opentrades.entry_price(0) - 0.75
longExit = close < longStop or not validSession
if (longExit)
    strategy.close("Long")

shortCondition = Bear and cci < 100 and ta.crossunder(rsi,rsi2) and validSession
if (shortCondition)
    strategy.entry("Short", strategy.short, 1)

//shortExit = close < strategy.opentrades.entry_price(0) - 1.5 or close > strategy.opentrades.entry_price(0) + 0.75
shortExit = close > shortStop or not validSession
if (shortExit)
    strategy.close("Short")


अधिक