एसएमए के साथ मूल्य क्रॉसओवर पर आधारित मात्रात्मक ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांकः 2024-02-22 17:34:09
टैगः

img

अवलोकन

इस रणनीति का नाम quantitative trading strategy based on price crossover with SMA है। यह मुख्य रूप से विभिन्न अवधियों के SMAs की गणना करके और SMAs के साथ मूल्य क्रॉसओवर को ट्रैक करके ट्रेडिंग सिग्नल उत्पन्न करता है। जब कीमत SMA को ऊपर की ओर तोड़ती है, तो यह खरीद संकेत को ट्रिगर करती है। जब कीमत SMA को नीचे की ओर तोड़ती है, तो यह बेच संकेत को ट्रिगर करती है।

रणनीति तर्क

इस रणनीति का मुख्य तर्क 21-दिवसीय सरल चलती औसत (एसएमए) के साथ मूल्य क्रॉसओवर को ट्रैक करना है। इस बीच, यह सामान्य प्रवृत्ति निर्धारित करने के लिए 50-दिवसीय एसएमए और 200-दिवसीय एसएमए की गणना भी करता है।

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

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

लाभ विश्लेषण

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

एक और लाभ यह है कि इस रणनीति को एसएमए मापदंडों को समायोजित करके अनुकूलित किया जा सकता है। उदाहरण के लिए, हम विशिष्ट स्टॉक के लिए इष्टतम खोजने के लिए एसएमए अवधि के विभिन्न संयोजनों का परीक्षण कर सकते हैं। इसके अलावा, पुष्टि और अनुकूलन के लिए अन्य संकेतकों को जोड़कर रणनीति में सुधार किया जा सकता है।

जोखिम और समाधान

इस रणनीति का सबसे बड़ा जोखिम यह है कि संकेतक-आधारित रणनीतियाँ अत्यधिक झूठे संकेत उत्पन्न करती हैं। उदाहरण के लिए, सीमा-बंद अवधि के दौरान कीमत अक्सर एसएमए को पार कर सकती है, जिसके परिणामस्वरूप अनावश्यक ट्रेड हो सकते हैं।

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

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

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

  1. एसएमए पैरामीटर के इष्टतम संयोजनों का परीक्षण और चयन करें। सर्वोत्तम अवधि खोजने के लिए विभिन्न एसएमए लंबाई का बैकटेस्ट करें।

  2. फ़िल्टरसिग्नल पुष्टिकरण के लिए अन्य संकेतक जोड़ें, जैसे आरएसआई, एमएसीडी आदि। यह झूठे संकेतों को फ़िल्टर करने में मदद करता है।

  3. स्टॉप लॉस लॉजिक को शामिल करें। जोखिमों को बेहतर ढंग से नियंत्रित करने के लिए अधिकतम सहनशील हानि या ट्रेलिंग स्टॉप सेट करें।

  4. प्रवेश का समय अनुकूलित करें. एसएमए क्रॉसओवर का सख्ती से पालन करने के बजाय प्रमुख ब्रेकआउट के आसपास प्रवेश करने पर विचार करें।

  5. मिश्रित रणनीतियों का परीक्षण करें। अन्य प्रकार की रणनीतियों के साथ संयोजन करें जैसे प्रवृत्ति का अनुसरण करना।

निष्कर्ष

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


/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Price Cross Above/Below SMA Strategy", shorttitle="Tressy Strat", overlay=true)

// Define start and end year inputs
start_year = input.int(2022, title="Start Year")
end_year = input.int(2022, title="End Year")

// Define start and end month inputs
start_month = input.int(1, title="Start Month", minval=1, maxval=12)
end_month = input.int(12, title="End Month", minval=1, maxval=12)

// Define SMA length inputs
sma_length = input.int(21, title="SMA Length")
sma_length_50 = input.int(50, title="50 SMA Length")
sma_length_200 = input.int(200, title="200 SMA Length")

// Filter data within the specified date range
filter_condition = true
filtered_close = request.security(syminfo.tickerid, "D", close[0], lookahead=barmerge.lookahead_on)

// Define SMAs using the input lengths
sma = ta.sma(filtered_close, sma_length)
sma_50 = ta.sma(filtered_close, sma_length_50)
sma_200 = ta.sma(filtered_close, sma_length_200)

// Initialize position
var bool in_position = false

// Condition for a price cross above SMA within the date range
cross_above = filter_condition and ta.crossover(filtered_close, sma)

// Condition for a price cross below SMA within the date range
cross_below = filter_condition and ta.crossunder(filtered_close, sma)

// Buy condition
if cross_above
    in_position := true

// Sell condition
if cross_below
    in_position := false

// Strategy entry and exit
if cross_above
    strategy.entry("Buy", strategy.long)
if cross_below
    strategy.close("Buy")

// Plot the SMAs on the chart
plot(sma, color=color.blue, title="21 SMA")
plot(sma_50, color=color.red, title="50 SMA")
plot(sma_200, color=color.orange, title="200 SMA")

// Plot the Buy and Sell signals with "tiny" size
plotshape(cross_above, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, title="Buy Signal")
plotshape(cross_below, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, title="Sell Signal")


अधिक