चलती औसत क्रॉसओवर पर आधारित बीटीसी ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांकः 2023-12-07 14:56:50
टैगः

img

अवलोकन

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

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

जब 50-दिवसीय चलती औसत गोल्डन क्रॉस बनाने के लिए 200-दिवसीय चलती औसत से ऊपर पार करती है, तो यह इंगित करता है कि BTC ने एक बैल बाजार में प्रवेश किया है और एक खरीद संकेत उत्पन्न करता है। जबकि जब 50-दिवसीय चलती औसत मृत्यु क्रॉस बनाने के लिए 200-दिवसीय चलती औसत से नीचे पार करती है, तो यह इंगित करती है कि BTC ने एक भालू बाजार में प्रवेश किया है और एक बिक्री संकेत उत्पन्न करता है।

मूल चलती औसत गोल्डन क्रॉस और मृत्यु क्रॉस सिग्नल निर्णय के अतिरिक्त, इस रणनीति में निर्णय में सहायता के लिए कुछ अतिरिक्त तकनीकी संकेतक भी शामिल हैं, जिनमें शामिल हैंः

  1. ईएमए संकेतकः लंबाई + ऑफसेट के साथ ईएमए संकेतक की गणना करें, जब यह ऊपर जाता है तो यह इंगित करता है कि वर्तमान बाजार तेजी से है, हम खरीद सकते हैं।

  2. चलती औसत और ईएमए के बीच मूल्य संबंध की तुलना करें: यदि ईएमए मूल्य 50 दिन के चलती औसत से अधिक है, तो एक खरीद संकेत उत्पन्न होता है।

  3. जांचें कि क्या कीमत पिछली K-लाइन के निचले स्तर की तुलना में 1% से अधिक गिर गई है, यदि ऐसा है तो एक बिक्री संकेत उत्पन्न करें।

उपरोक्त कई संकेतकों के उपयोग को मिलाकर, कुछ गलत संकेतों को फ़िल्टर किया जा सकता है और रणनीति के व्यापारिक निर्णय अधिक विश्वसनीय हो सकते हैं।

लाभ विश्लेषण

इस रणनीति के निम्नलिखित फायदे हैंः

  1. मुख्य ट्रेडिंग सिग्नल के रूप में चलती औसत का उपयोग बाजार शोर को फ़िल्टर कर सकता है और प्रवृत्ति की दिशा की पहचान कर सकता है।

  2. कई सहायक तकनीकी संकेतकों के साथ संयोजन सिग्नल की विश्वसनीयता को बढ़ा सकता है और झूठे संकेतों को फ़िल्टर कर सकता है।

  3. उचित स्टॉप-लॉस रणनीतियों को अपनाने से एकल हानि को प्रभावी ढंग से नियंत्रित किया जा सकता है।

  4. अपेक्षाकृत सरल व्यापारिक तर्क को समझना और लागू करना आसान है, जो मात्रात्मक व्यापार के शुरुआती लोगों के लिए उपयुक्त है।

  5. कई कॉन्फ़िगर करने योग्य पैरामीटर हैं जिन्हें आपकी अपनी प्राथमिकताओं के अनुसार समायोजित किया जा सकता है।

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

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

  1. चलती औसत में ही एक मजबूत पिछड़ती विशेषता है, संभवतः तेजी से मूल्य उलटने के अवसरों को याद किया जा सकता है।

  2. सहायक संकेतक जोड़ने से नियमों की संख्या बढ़ जाती है और गलत संकेत उत्पन्न होने की संभावना भी बढ़ जाती है।

  3. गलत स्टॉप-लॉस सेटिंग्स से नुकसान बढ़ सकता है।

  4. अनुचित पैरामीटर सेटिंग्स (जैसे चलती औसत लंबाई आदि) भी रणनीति परिणामों को प्रभावित करेंगे।

संबंधित समाधानः

  1. उचित रूप से चलती औसत चक्र को छोटा करें और पैरामीटर अनुकूलन सीमा बढ़ाएं।

  2. सिग्नल की गुणवत्ता की जाँच करने के लिए बैकटेस्ट डेटा मात्रा बढ़ाएँ।

  3. स्टॉप लॉस रेंज को ठीक से रिलेक्स कर लें।

  4. सबसे अच्छा पैरामीटर संयोजन खोजने के लिए पैरामीटर अनुकूलन बढ़ाएँ.

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

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

  1. स्वचालित पैरामीटर अनुकूलन प्राप्त करने के लिए मशीन लर्निंग एल्गोरिदम बढ़ाएं।

  2. कई उप-रणनीतियों का निर्माण करने और मतदान तंत्र के माध्यम से निर्णय लेने के लिए अधिक सहायक संकेतकों को जोड़ें।

  3. मूल्य की सफलताओं की पहचान करने के लिए ब्रेकआउट रणनीतियों का प्रयास करें।

  4. मूल्य रुझानों की भविष्यवाणी करने के लिए गहरी शिक्षा का उपयोग करें।

  5. गतिशील ट्रैकिंग स्टॉप-लॉस प्राप्त करने के लिए स्टॉप-लॉस तंत्रों का अनुकूलन करना।

उपरोक्त अनुकूलन निर्णय की सटीकता में सुधार कर सकते हैं और रणनीति की लाभप्रदता और स्थिरता को बढ़ा सकते हैं।

सारांश

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


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

//@version=5
strategy('JayJay BTC Signal', overlay=true, initial_capital=100, currency='USD', default_qty_value=100, default_qty_type=strategy.percent_of_equity, commission_value=0, calc_on_every_tick=true)

securityNoRepaint(sym, tf, src) => request.security(sym, tf, src[barstate.isrealtime ? 1 : 0])[barstate.isrealtime ? 0 : 1]

//200 50 Moving Average
ma50Len = input.int(50, minval=1, title='MA50-Length')
ma50Src = input(close, title='MA50-Source')
ma50Show = input(true, title='Show SMA50 on chart')
ma50Close = ta.sma(ma50Src, ma50Len)
ma50CloseTimeframe = input.timeframe("240", "Ma50 Timeframe", group = "EMA Options")
ma50Open = ta.sma(open, ma50Len)
ma200Len = input.int(200, minval=1, title='MA200-Length')
ma200Src = input(close, title='MA200-Source')
ma200Show = input(true, title='Show SMA200 on chart')
ma200CloseTimeframe = input.timeframe("D", "Ma200 Timeframe", group = "EMA Options")
ma200Close = ta.sma(ma200Src, ma200Len)
ma200Open = ta.sma(open, ma200Len)
//plot(ma200Close, color=color.new(#0b6ce5, 0), title='MA200')
//plot(ma50Close, color=color.new(#00d8ff, 0), title='MA50')

sma50 = securityNoRepaint(syminfo.tickerid, ma50CloseTimeframe, ma50Close)
plot(sma50 and ma50Show ? sma50 : na, color=color.new(#00d8ff, 0), title='SMA50')
sma200 = securityNoRepaint(syminfo.tickerid, ma200CloseTimeframe, ma200Close)
plot(sma200 and ma200Show ? sma200 : na, color=color.new(#00d8ff, 0), title='SMA200')

// Short/Long EMA
// Define the offset value
EMAOffsetValue = input.int(2, title='EMA Offset', minval=0)
emaplot = input(true, title='Show EMA on chart')
len = input.int(20, minval=1, title='ema Length') + EMAOffsetValue
emaCloseTimeframe = input.timeframe("240", "EMA 1 Timeframe", group = "EMA Options")
emaOpen = ta.ema(open, len)
emaClose = ta.ema(close, len)

ema = securityNoRepaint(syminfo.tickerid, emaCloseTimeframe, emaClose)

up = emaClose > ema[1]
down = emaClose < ema[1]
mycolor = up ? color.green : down ? color.red : color.blue

plot(ema and emaplot ? ema : na, title='Signal EMA', color=mycolor, linewidth=3)
//plot(emaClose and emaplot ? emaClose : na, title='Signal 20 EMA', color=color.yellow, linewidth=3)

ma50GreaterThanMa200 = sma50 > sma200

last3BarUp = ema > ema[1]

startLong = up and ema > sma50 and ma50GreaterThanMa200 and (100 - (sma50 / ema * 100) > 1.0)

startFrom = input(timestamp("20 Jan 2000 00:00"), "StartFrom")

yearFilter = true

alertLongPositionMessage = "{\"direction:\": \"long\", \"action\": \"{{strategy.order.action}}\", \"price\": \"{{strategy.order.price}}\", \"qty\": \"{{strategy.position_size}}\", \"symbol\": \"{{ticker}}\", \"date\": \"{{time}}\"}"

if true and startLong and yearFilter
    strategy.entry('Long', strategy.long, comment = "Long", alert_message = alertLongPositionMessage)

longStopLossLevel = open * 0.05
strategy.exit('StopLoss', from_entry='Long',comment = "StopLoss!", loss=longStopLossLevel, profit=close * 0.3, alert_message = alertLongPositionMessage)
longPercentageChange = low / close[1] * 100 - 100
is1PercentLower = longPercentageChange < -0.1
closeLongPositionWhen = (down and is1PercentLower) or (emaClose < sma50)
if closeLongPositionWhen
    strategy.close('Long', comment = "Fuck It!", alert_message =  alertLongPositionMessage)

bgcolor(startLong ? color.green : na, transp=90)



अधिक