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

लेखक:चाओझांग, दिनांकः 2024-01-29 11:20:42
टैगः

img

अवलोकन

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

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

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

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

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

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

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

लाभ विश्लेषण

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

  1. मल्टी-इंडिकेटर कॉम्बो सिग्नल सटीकता में सुधार करता है

    रणनीति केवल एक या दो संकेतकों पर निर्भर नहीं करती है, बल्कि कई कारकों जैसे रुझान, समर्थन/प्रतिरोध और मूल्य सफलताओं को ध्यान में रखती है। इससे संकेतों की विश्वसनीयता और सटीकता में काफी सुधार होता है।

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

    हुल एमए, ईएमए अवधि, ओपन/क्लोज क्रॉसओवर अवधि की लंबाई को मापदंडों के माध्यम से समायोजित किया जा सकता है, जिससे रणनीति को विभिन्न बाजार वातावरणों के अनुकूल बनाया जा सकता है।

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

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

  4. विज़ुअलाइज़्ड डिस्प्ले

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

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

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

  1. कीमतों में भारी बदलावों को ट्रैक करने में विफलता

    अस्थिर बाजारों में, संकेतक अप्रभावी या विलंबित हो सकते हैं, जिससे रणनीति समय में मूल्य परिवर्तनों को ट्रैक करने में विफल हो जाती है। ऐसे बाजारों के अनुकूल होने के लिए मापदंडों को अनुकूलित करने की आवश्यकता होती है।

  2. सिग्नल त्रुटि दर का अस्तित्व

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

  3. दीर्घ/लघु मिश्रण जोखिम

    एक ही समय में लंबी और छोटी दोनों पोजीशन बनाने की रणनीति में दोनों पक्षों पर नुकसान का जोखिम होता है यदि निर्णय गलत हो गए। इसके लिए नियंत्रण के लिए सख्त स्टॉप लॉस या कम पोजीशन साइजिंग की आवश्यकता होती है।

  4. अधिक फिटनेस का जोखिम

    अत्यधिक जटिल पैरामीटर सेटिंग्स ओवरफिट होने का खतरा है। पैरामीटर संयोजनों की सीमित संख्या के साथ प्रणाली को सरल बनाने की आवश्यकता है।

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

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

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

    मौजूदा संकेतकों के अतिरिक्त, अधिक सहायक संकेतकों को सिस्टम संदर्भ को समृद्ध करने के लिए पेश किया जा सकता है, जैसे कि बीओएलएल चैनलों, केडी संकेतकों आदि।

  2. डीप लर्निंग मॉडल लागू करें

    सिग्नल की गुणवत्ता में सुधार के लिए एलएसटीएम और अन्य डीप लर्निंग मॉडल को प्रशिक्षित करने के लिए सुविधाओं के रूप में सरल संकेतकों का उपयोग करें।

  3. मौलिक डेटा शामिल करें

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

  4. जोखिम और स्थिति का आकार

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

निष्कर्ष

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


/*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")

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

अधिक