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


निर्माण तिथि: 2024-01-26 16:29:23 अंत में संशोधित करें: 2024-01-26 16:29:23
कॉपी: 0 क्लिक्स: 555
1
ध्यान केंद्रित करना
1617
समर्थक

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

अवलोकन

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

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

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

जब तेजी से चलती औसत नीचे से धीमी गति से चलती औसत को तोड़ता है, तो यह माना जाता है कि यह नीचे से नीचे की ओर बढ़ता है और एक खरीद संकेत उत्पन्न करता है। जब तेजी से चलती औसत ऊपर से नीचे से धीमी गति से चलती औसत को तोड़ता है, तो यह माना जाता है कि यह नीचे से नीचे की ओर बढ़ता है और एक बिक्री संकेत उत्पन्न करता है।

कीमतों के रुझान के टर्निंग पॉइंट्स को पकड़कर, यह रणनीति अच्छी स्थिति में खरीद सकती है और बुरी स्थिति में बेच सकती है, जिससे मुनाफा हो सकता है।

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

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

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

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

इस रणनीति के साथ निम्नलिखित जोखिम भी हैं:

  1. गलत संकेतों और ओवर-ट्रेडिंग के लिए प्रवण
  2. पैरामीटर को डिबग करने की आवश्यकता है, विभिन्न पैरामीटर संयोजनों के साथ फ़ीडबैक प्रभाव में भारी अंतर
  3. लेन-देन लागत और स्लिप पॉइंट को ध्यान में रखे बिना, फिक्स्ड डिस्क का प्रभाव फीडबैक से कम हो सकता है
  4. समय की देरी के कारण, कीमतों में तेजी से बदलाव की संभावना से वंचित रहना

इन जोखिमों को उचित अनुकूलन द्वारा कम किया जा सकता है।

अनुकूलन दिशा

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

  1. अन्य संकेतक फ़िल्टर सिग्नल के साथ संयोजन, जैसे कि क्वांटिटेटिव संकेतक, कंपन संकेतक, आदि, संरेखण में गलत व्यापार से बचने के लिए
  2. अनुकूलनशील चलती औसत जोड़े गए ताकि कीमतों को बेहतर ढंग से ट्रैक करने के लिए चक्रीय पैरामीटर में गतिशील परिवर्तन हो सके
  3. चलती औसत के लिए सबसे अच्छा संयोजन खोजने के लिए आवधिक मापदंडों का अनुकूलन करें
  4. बार-बार व्यापार से बचने के लिए फिर से प्रवेश की शर्तें निर्धारित करें
  5. वास्तविक लेनदेन लागत और स्लाइडिंग बिंदुओं को ध्यान में रखते हुए, स्टॉप-स्टॉप-लॉस को समायोजित करें

इस प्रकार के अनुकूलन से रणनीति की वास्तविक प्रभावशीलता में काफी वृद्धि हो सकती है।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-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/
// © HPotter
//  Simple SMA strategy
//
// WARNING:
//      - For purpose educate only
//      - This script to change bars colors
//@version=4
strategy(title="Simple SMA Strategy Backtest", shorttitle="SMA Backtest", precision=6, overlay=true)
Resolution = input(title="Resolution", type=input.resolution, defval="D")
Source = input(title="Source", type=input.source, defval=close)
xSeries = security(syminfo.tickerid, Resolution, Source)
Length = input(title="Length", type=input.integer, defval=14, minval=2)
TriggerPrice = input(title="Trigger Price", type=input.source, defval=close)
TakeProfit = input(50, title="Take Profit", step=0.01)
StopLoss = input(20, title="Stop Loss", step=0.01)
UseTPSL = input(title="Use Take\Stop", type=input.bool, defval=false)
BarColors = input(title="Painting bars", type=input.bool, defval=true)
ShowLine = input(title="Show Line", type=input.bool, defval=true)
UseAlerts = input(title="Use Alerts", type=input.bool, defval=false)
reverse = input(title="Trade Reverse", type=input.bool, defval=false)
pos = 0
xSMA = sma(xSeries, Length)
pos := iff(TriggerPrice > xSMA, 1,
         iff(TriggerPrice < xSMA, -1, nz(pos[1], 0)))
nRes = ShowLine ? xSMA : na
alertcondition(UseAlerts == true and pos != pos[1] and pos == 1, title='Signal Buy', message='Strategy to change to BUY')
alertcondition(UseAlerts == true and pos != pos[1] and pos == -1, title='Signal Sell', message='Strategy to change to SELL')
alertcondition(UseAlerts == true and pos != pos[1] and pos == 0, title='FLAT', message='Strategy get out from position')
possig =iff(pos[1] != pos,
         iff(reverse and pos == 1, -1,
           iff(reverse and pos == -1, 1, pos)), 0)
if (possig == 1)
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)
    
if (UseTPSL)    
    strategy.close("Long", when = high > strategy.position_avg_price + TakeProfit, comment = "close buy take profit")
    strategy.close("Long", when = low < strategy.position_avg_price - StopLoss, comment = "close buy stop loss")
    strategy.close("Short", when = low < strategy.position_avg_price - TakeProfit, comment = "close buy take profit")
    strategy.close("Short", when = high > strategy.position_avg_price + StopLoss, comment = "close buy stop loss")
nColor = BarColors ? strategy.position_avg_price != 0  and pos == 1 ? color.green :strategy.position_avg_price != 0 and pos == -1 ? color.red : color.blue : na
barcolor(nColor)
plot(nRes, title='SMA', color=#00ffaa, linewidth=2, style=plot.style_line)