आउट-ऑफ-द-बॉक्स मशीन लर्निंग ट्रेडिंग रणनीतियाँ


निर्माण तिथि: 2024-01-29 11:20:42 अंत में संशोधित करें: 2024-01-29 11:20:42
कॉपी: 0 क्लिक्स: 723
1
ध्यान केंद्रित करना
1617
समर्थक

आउट-ऑफ-द-बॉक्स मशीन लर्निंग ट्रेडिंग रणनीतियाँ

अवलोकन

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

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

यह रणनीति मुख्य रूप से निम्नलिखित बिंदुओं पर आधारित हैः

  1. बाजार के रुझान की दिशा का आकलन करने के लिए हुल औसत रेखा का उपयोग करना
  2. ईएमए का उपयोग अल्पकालिक और मध्यावधि रुझानों का आकलन करने के लिए
  3. K लाइन एंटिटी चैनल का उपयोग करके महत्वपूर्ण SUPPORT/RESISTANCE स्थिति का निर्धारण करें
  4. निर्णय लेने के लिए बहु-चक्र SECURITY के उद्घाटन और समापन मूल्य के क्रॉसिंग का उपयोग करना

विशेष रूप से, रणनीति एक पतवार औसत रेखा, 13-चक्र ईएमए और 21-चक्र ईएमए को रेखांकित करती है। ईएमए की रिक्त स्थिति के माध्यम से अल्पकालिक और मध्यावधि प्रवृत्ति की दिशा निर्धारित की जाती है। इसके बाद पतवार औसत रेखा के साथ मिलकर लंबी अवधि की प्रवृत्ति का निर्धारण किया जाता है। यह बाद के व्यापारिक संकेतों के लिए एक व्यापक दिशा प्रदान करता है।

स्थिति को समायोजित करने से पहले, रणनीति समर्थन और प्रतिरोध के स्तरों को संदर्भित करती है जो वास्तविक चैनल के भीतर उच्चतम और निम्नतम मूल्य के अनुरूप हैं। यह महत्वपूर्ण मूल्य क्षेत्रों में व्यापार संकेतों को उत्पन्न करने से बचा सकता है।

अंत में, रणनीति 60 चक्र के उद्घाटन और समापन मूल्य को कॉल करती है, जो कि समापन मूल्य पर एक खरीद संकेत उत्पन्न करता है जब वह उद्घाटन मूल्य को पार करता है और नीचे एक बेचने का संकेत उत्पन्न करता है। इस तरह से पूरे व्यापार तर्क को पूरा किया जाता है।

रणनीति का विश्लेषण

इस रणनीति का सबसे बड़ा लाभ यह है कि यह मशीन सीखने और तकनीकी विश्लेषण के संकेतकों को जोड़ती है, जिससे एक स्वचालित व्यापारिक कार्यक्रम प्राप्त होता है जो तर्क स्पष्ट, पैरामीटर समायोज्य और संचालित करने में आसान है।

  1. सिग्नल सटीकता में सुधार के लिए बहु-सूचक संयोजन

रणनीति केवल एक या दो संकेतकों पर निर्भर नहीं करती है, लेकिन व्यापक रूप से प्रवृत्ति, समर्थन प्रतिरोध, मूल्य टूटने आदि जैसे कई कारकों पर विचार करती है, जिससे संकेतों की विश्वसनीयता और सटीकता में काफी सुधार होता है।

  1. लचीला पैरामीटर सेटिंग

पतवार औसत रेखा की लंबाई, ईएमए चक्रों की संख्या और ओपनिंग और क्लोजिंग क्रॉसिंग चक्रों की संख्या को पैरामीटर के माध्यम से समायोजित किया जा सकता है, जिससे रणनीति को विभिन्न बाजार स्थितियों के लिए लचीला बनाया जा सकता है।

  1. स्वचालित व्यापार संकेत

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

  1. दृश्य प्रदर्शन

रणनीति में चार्ट स्पष्ट रूप से बाजार संरचना, रुझान की स्थिति और महत्वपूर्ण कीमतों को प्रदर्शित करते हैं, जो रणनीति के निर्णय के आधार को दिखाते हैं।

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

हालांकि इस रणनीति को कई तरह से अनुकूलित किया गया है, फिर भी इसके कुछ संभावित जोखिम हैंः

  1. बड़ी संख्या में ट्रैक नहीं किया जा सका

जब कीमतों में भारी उतार-चढ़ाव होता है, तो सूचक विफल हो सकते हैं या देरी हो सकती है, जिससे रणनीति को समय पर मूल्य परिवर्तनों को ट्रैक करने में असमर्थ बनाया जा सकता है। इस स्थिति के अनुकूल पैरामीटर को अनुकूलित करने की आवश्यकता है।

  1. सिग्नल त्रुटि दर

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

  1. मल्टी-फ्लोर मिक्स जोखिम

रणनीति एक ही समय में बहुत अधिक घाटे में है, अगर गलत निर्णय लिया जाता है, तो दो-तरफा नुकसान का जोखिम होता है। इसे नियंत्रित करने के लिए सख्त कटौती या स्थिति को कम करने की आवश्यकता होती है।

  1. अति-अनुकूलित जोखिम

पैरामीटर सेट करना बहुत जटिल है, जो अति-अनुकूलित होने का जोखिम उठाता है। इसके लिए सिस्टम को सरल बनाने और पैरामीटर संयोजनों की संख्या को नियंत्रित करने की आवश्यकता है।

रणनीति अनुकूलन दिशा

इस रणनीति को अनुकूलित करने के लिए कुछ जगह है, जो मुख्य रूप से निम्नलिखित पहलुओं से संबंधित हैः

  1. अधिक संकेत संकेत जोड़ें

पहले से मौजूद संकेतक के अलावा, अधिक सहायक संकेतक जैसे कि BOLL चैनल, KD संकेतक आदि को पेश किया जा सकता है, जो सिस्टम निर्णय के आधार को समृद्ध करता है।

  1. डीप लर्निंग मॉडल

सिंगल इंडिकेटर को फीचर के रूप में उपयोग करें, एलएसटीएम जैसे डीप लर्निंग मॉडल को प्रशिक्षित करें ताकि सिग्नल की गुणवत्ता में सुधार हो सके।

  1. बुनियादी आंकड़ों के साथ

मैक्रोइकॉनॉमिक डेटा और नीतिगत जानकारी जैसे बुनियादी तत्वों को जोड़ा गया, जो दीर्घकालिक निर्णयों को अनुकूलित करता है।

  1. जोखिम और स्थिति प्रबंधन

स्टॉप-लॉस रणनीति को लागू करें, रणनीति के अनुसार आय की अस्थिरता को गतिशील रूप से समायोजित करें, और जोखिम को सख्ती से नियंत्रित करें।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title='Ali Jitu Abus', shorttitle='Ali_Jitu_Abis_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:',  defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0  ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")

//============ signal Generator ==================================//
Period=input('60')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)
longCondition = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

plot(request.security(syminfo.tickerid, Period, close), color=red, title="Period request.security Close")
plot(request.security(syminfo.tickerid, Period, open), color=green, title="Period request.security Open")

///////////////////////////////////////////////////////////////////////////////////////////