सुपर ट्रेंड डबल मूविंग एवरेज रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-16 15:19:09
टैगः

img

अवलोकन

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

रणनीति तर्क

इस रणनीति में दो संकेतकों का प्रयोग किया गया हैः

  1. सुपर ट्रेंड इंडिकेटर: यह वास्तविक अस्थिरता एटीआर और एक गुणक के आधार पर ऊपरी और निचले रेल की गणना करता है। जब समापन मूल्य ऊपरी रेल से अधिक होता है, तो यह एक तेजी का दृश्य दर्शाता है। जब निचले रेल से कम होता है, तो यह एक मंदी का दृश्य दर्शाता है।

  2. 200-दिवसीय सरल चलती औसतः यह पिछले 200 दिनों में समापन कीमतों का अंकगणितीय औसत लेता है। जब समापन मूल्य इस रेखा से अधिक होता है, तो यह एक प्रमुख तेजी की प्रवृत्ति का प्रतिनिधित्व करता है। जब यह रेखा से नीचे होता है, तो यह एक प्रमुख मंदी की प्रवृत्ति का प्रतिनिधित्व करता है।

रणनीति तर्क:

  1. जब सुपर ट्रेंड सूचक तेजी का संकेत देता है (सुपर ट्रेंड मान 0 से अधिक) और समापन मूल्य 200-दिवसीय एमए से अधिक होता है, तो लंबा हो जाता है।

  2. जब सुपर ट्रेंड सूचक एक मंदी संकेत देता है (सुपर ट्रेंड मान 0 से कम) और समापन मूल्य 200-दिवसीय एमए से कम है, तो शॉर्ट करें।

  3. जब सुपर ट्रेंड सूचक पिछले एक के मुकाबले रिवर्स सिग्नल देता है तो स्थिति को बंद करें।

  4. स्टॉप लॉस 25% है।

लाभ विश्लेषण

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

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

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

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

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

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

  1. सुपर ट्रेंड सूचक को अनुकूलित करने के लिए एटीआर अवधि और गुणक मापदंडों को समायोजित करें।

  2. विकल्प के लिए अन्य एमए संकेतक जैसे ईएमए और वीडिया का प्रयोग करें।

  3. अतिरिक्त संकेत फ़िल्टरिंग के लिए अन्य सहायक संकेतक जैसे BOLL चैनल या KD संकेतक जोड़ें।

  4. स्टॉप लॉस रणनीति को अनुकूलित करें, जैसे कि इसे उच्च समय सीमा के स्तरों के साथ ब्रेक एवरेज बिंदु या ट्रेलिंग स्टॉप पर ले जाना।

सारांश

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


/*backtest
start: 2023-12-16 00:00:00
end: 2024-01-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © wielkieef

//@version=5

strategy("Smart SuperTrend Strategy ", shorttitle="ST Strategy", overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=25, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.01)


// Parametry wskaźnika SuperTrend
atrLength = input(10, title="Lenght ATR")
factor = input(3.0, title="Mult.")

// Parametry dla SMA
lengthSMA = input(200, title="Lenght SMA")

// Parametry dla Stop Loss
sl = input.float(25.0, '% Stop Loss', step=0.1)

// Obliczanie ATR
atr = ta.atr(atrLength)

// Obliczanie podstawowej wartości SuperTrend
up = hl2 - (factor * atr)
dn = hl2 + (factor * atr)

// Obliczanie 200-SMA
sma200 = ta.sma(close, lengthSMA)

// Inicjalizacja zmiennych
var float upLevel = na
var float dnLevel = na
var int trend = na
var int trendWithFilter = na

// Logika SuperTrend
upLevel := close[1] > upLevel[1] ? math.max(up, upLevel[1]) : up
dnLevel := close[1] < dnLevel[1] ? math.min(dn, dnLevel[1]) : dn

trend := close > dnLevel[1] ? 1 : close < upLevel[1] ? -1 : nz(trend[1], 1)

// Filtr SMA i aktualizacja trendWithFilter
trendWithFilter := close > sma200 ? math.max(trend, 0) : math.min(trend, 0)

// Logika wejścia
longCondition = trend == 1  
shortCondition = trend == -1  

// Wejście w pozycje
if (longCondition) and  close > sma200
    strategy.entry("Long", strategy.long)
if (shortCondition) and close < sma200
    strategy.entry("Short", strategy.short)

// Warunki zamknięcia pozycji
Long_close = trend == -1 and close > sma200
Short_close = trend == 1  and close < sma200

// Zamknięcie pozycji
if (Long_close)
    strategy.close("Long")
if (Short_close)
    strategy.close("Short")

// Kolory superTrendu z filtrem sma200
trendColor = trendWithFilter == 1 ? color.green : trendWithFilter == -1 ? color.red : color.blue

//ploty
plot(trendWithFilter == 1 ? upLevel : trendWithFilter == -1 ? dnLevel : na, color=trendColor, title="SuperTrend")

// Stop Loss ( this code is from author RafaelZioni, modified by wielkieef )
per(procent) =>
    strategy.position_size != 0 ? math.round(procent / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
// --------------------------------------------------------------------------------------------------------------------

strategy.exit('SL',loss=per(sl))



//by wielkieef


अधिक