दोहरी मात्रात्मक व्यापार प्रणाली पर आधारित


निर्माण तिथि: 2024-02-26 14:30:54 अंत में संशोधित करें: 2024-02-26 14:30:54
कॉपी: 5 क्लिक्स: 654
1
ध्यान केंद्रित करना
1617
समर्थक

दोहरी मात्रात्मक व्यापार प्रणाली पर आधारित

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

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

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

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

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

श्रेष्ठता विश्लेषण

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

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

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

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

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

संक्षेप

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

रणनीति स्रोत कोड
/*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")