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

लेखक:चाओझांग, दिनांकः 2024-04-26 11:45:05
टैगःएसएमएडब्ल्यूएमएईएमए

img

अवलोकन

यह रणनीति मुख्य रूप से बाजार के रुझानों और अस्थिरता को पकड़ने के लिए चलती औसत और बोलिंगर बैंड का उपयोग करती है। यह तीन अलग-अलग प्रकार के चलती औसत का उपयोग करती हैः सरल चलती औसत (एसएमए), भारित चलती औसत (डब्ल्यूएमए), और घातीय चलती औसत (ईएमए) । साथ ही, यह मूल्य चैनलों को निर्धारित करने के लिए बोलिंगर बैंड का उपयोग करता है, जिसमें ऊपरी और निचले बैंड उद्घाटन और समापन पदों के लिए संकेत के रूप में कार्य करते हैं। जब कीमत ऊपरी बोलिंगर बैंड के माध्यम से टूटती है, तो यह एक छोटी स्थिति खोलती है; जब यह निचले बैंड के माध्यम से टूटती है, तो यह एक लंबी स्थिति खोलती है। यह व्यापक बोलिंगर बैंड को स्टॉप-लॉस स्तर के रूप में भी निर्धारित करती है, जब कीमत इन बैंडों का उल्लंघन करती है, तो बंद हो जाती है। कुल मिलाकर, यह रणनीति तेजी से रुझानों को स्थापित करने का प्रयास करती है और जब नुकसान बढ़ता है तो जोखिमों को निर्णायक रूप से कम करती है, जिसका उद्देश्य स्थिर रि

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

  1. विभिन्न अवधियों के साथ तीन चलती औसत की गणना करेंः धीमी एसएमए, तेज ईएमए और मध्यम डब्ल्यूएमए, जो क्रमशः दीर्घकालिक, अल्पकालिक और मध्यमकालिक बाजार के रुझानों को दर्शाते हैं।
  2. मूल्य मानक विचलन के आधार पर बोलिंगर बैंड के दो सेटों की गणना करें: प्रवेश बोलिंगर बैंड (ऊपरी और निचले बैंड के बीच संकीर्ण दूरी के साथ) और स्टॉप-लॉस बोलिंगर बैंड (बड़ी दूरी के साथ) । प्रवेश बैंड का उपयोग पदों को खोलने के लिए किया जाता है, जबकि स्टॉप-लॉस बैंड का उपयोग पदों को बंद करने के लिए किया जाता है।
  3. जब तेज ईएमए ऊपरी प्रविष्टि बोलिंगर बैंड से ऊपर पार करता है, तो एक छोटी स्थिति खोलें; जब तेज ईएमए निचले प्रविष्टि बोलिंगर बैंड से नीचे पार करता है, तो एक लंबी स्थिति खोलें। इसका तात्पर्य यह है कि कीमत औसत से काफी विचलित हो गई है और एक प्रवृत्ति सामने आ सकती है।
  4. एक बार स्थिति खुल जाने के बाद, यदि कीमत ऊपरी स्टॉप-लॉस बोलिंगर बैंड से आगे बढ़ जाती है, तो सभी लंबी स्थिति बंद कर दें; यदि कीमत निचले स्टॉप-लॉस बोलिंगर बैंड से आगे बढ़ जाती है, तो सभी छोटी स्थिति बंद कर दें। यह नुकसान को नियंत्रित करने और एक बार रुझान उलट जाने पर निर्णायक रूप से नुकसान को रोकने के लिए है।
  5. उपरोक्त प्रक्रिया को लगातार दोहराया जाता है, जिससे रणनीति को बाजार के रुझानों के अनुसार लचीले ढंग से पदों को समायोजित करने और समय पर नुकसान को रोकने की अनुमति मिलती है, ताकि मजबूत रिटर्न प्राप्त किया जा सके।

रणनीतिक लाभ

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

रणनीतिक जोखिम

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

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

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

सारांश

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


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy ("Marina Parfenova School Project Bot", overlay = true)

sma(price, n) =>
    result = 0.0
    for i = 0 to n - 1
        result := result + price [i] / n    
    result

wma(price, n) =>
    result = 0.0
    sum_weight = 0.0
    weight = 0.0
    for i = 0 to n - 1
        weight := n - 1
        result := result + price [i]*weight
        sum_weight := sum_weight + weight
    result/sum_weight

ema(price, n) =>
    result = 0.0
    alpha = 2/(n + 1)
    prevResult = price 
    if (na(result[1]) == false)
        prevResult := result[1]
    result := alpha * price + (1 - alpha) * prevResult

/// Настройки
n_slow = input.int(50, "Период медленной скользящей средней", step=5)
n_fast = input.int(4, "Период быстрой скользящей средней")
n_deviation = input.int(30, "Период среднеквадратического отклонения", step=5)
k_deviation_open = input.float(1.2, "Коэффициент ширины коридора покупки", step=0.1)
k_deviation_close = input.float(1.6, "Коэффициент ширины коридора продажи", step=0.1)

// ----- Линии индикаторов -----

// Медленная скользящая 
sma = sma(close, n_slow)
plot(sma, color=#d3d3d3)

// Линии Боллинджера, обозначающие коридор цены
bollinger_open = k_deviation_open * ta.stdev(close, n_deviation)
open_short_line = sma + bollinger_open
plot(open_short_line, color=#ec8383)
open_long_line = sma - bollinger_open
plot(open_long_line, color=#6dd86d)

bollinger_close = k_deviation_close * ta.stdev(close, n_deviation)
close_short_line = sma + bollinger_close
plot(close_short_line, color=#e3e3e3)
close_long_line = sma - bollinger_close
plot(close_long_line, color=#e3e3e3)

// Быстрая скользящая
ema = ema(close, n_fast)
plot(ema, color = color.aqua, linewidth = 2)

// ----- Сигналы для запуска стратегии -----

// если ema пересекает линию open_short сверху вниз - сигнал на создание ордера в short
if(ema[1] >= open_short_line[1] and ema < open_short_line)
    strategy.entry("short", strategy.short)

// если ema пересекает линию open_long снизу вверх - сигнал на создание ордера в long
if(ema[1] <= open_long_line[1] and ema > open_long_line)
    strategy.entry("long", strategy.long)

// если свеча пересекает верхнюю линию коридора продажи - закрываем все long-ордера 
if (high >= close_short_line)
    strategy.close("long")

// если свеча пересекает нижнюю линию коридора продажи - закрываем все short-ордера
if (low <= close_long_line)
    strategy.close("short")

संबंधित

अधिक