
सुपरट्रेंड द्विआधारी इक्विटी रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो सुपरट्रेंड सूचक और सरल चलती औसत पर आधारित है। यह रणनीति सुपरट्रेंड सूचक का उपयोग करके बाजार की प्रवृत्ति की दिशा का निर्धारण करती है, फिर 200-दिवसीय सरल चलती औसत के साथ मिलकर फ़िल्टर करती है, और बड़ी प्रवृत्ति की दिशा में स्थिति खोलती है।
इस रणनीति में दो मापदंडों का उपयोग किया गया हैः
सुपरट्रेंड सूचकः यह वास्तविक तरंगों के एटीआर और एक गुणांक के आधार पर ऊपरी और निचले रेल की गणना करता है। जब समापन मूल्य ऊपरी रेल से ऊपर होता है, तो यह उछाल होता है, और निचले रेल से नीचे गिरावट होती है।
200-दिवसीय सरल चलती औसतः यह हाल के 200 दिनों के समापन मूल्य का एक औसत है। समापन मूल्य के ऊपर एक बड़ी प्रवृत्ति की ओर इशारा करता है और नीचे एक बड़ी प्रवृत्ति की ओर इशारा करता है।
रणनीतिक तर्क:
जब सुपरट्रेंड सूचक सूचक 0 से अधिक है और समापन मूल्य 200 दैनिक औसत से अधिक है, तो ओवरहेड प्रविष्टि करें।
जब सुपरट्रेंड सूचक नीचे गिरता है (((जब सुपरट्रेंड सूचक मूल्य 0 से कम है और समापन मूल्य 200-दिवसीय औसत से नीचे है, तो शॉर्ट सर्किट में प्रवेश करें।
जब सुपरट्रेंड सूचक पिछले सिग्नल के विपरीत होता है, तो बराबरी पर निकलता है।
स्टॉप लॉस 25% पर सेट है.
इस रणनीति में अल्पकालिक रुझानों को निर्धारित करने के लिए सुपरट्रेंड सूचक और दीर्घकालिक रुझानों को निर्धारित करने के लिए 200-दिवसीय औसत रेखा शामिल है, जो झूठे ब्रेकडाउन को प्रभावी ढंग से फ़िल्टर कर सकता है, व्यापार की आवृत्ति को कम करने के साथ-साथ जीत की दर को बढ़ा सकता है। बड़े बाजार में, रुझान पर्याप्त स्पष्ट है, स्टॉप लॉस स्पेस बड़ा है, लाभ की जगह बड़ी है।
इस रणनीति का मुख्य जोखिम यह है कि स्टॉप लॉस का पैमाना बड़ा है, उच्च लाभप्रदता के मामले में जबरन परिसमापन का जोखिम बढ़ जाता है। इसके अलावा, जब बाजार संरेखित होता है, तो सुपरट्रेंड सूचक अतिरिक्त संकेत उत्पन्न करता है, जिससे व्यापार की आवृत्ति और लागत बढ़ जाती है।
एटीआर चक्र, गुणांक और स्टॉप लॉस की सीमा को ठीक से समायोजित करके जोखिम को कम किया जा सकता है।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
एटीआर चक्र और गुणांक मापदंडों को समायोजित करना, ओवर-ट्रेंड सूचक के लिए मापदंडों का अनुकूलन करना;
EMA, VIDYA, आदि जैसे अन्य समान-रेखा सूचकांकों को बदलने का प्रयास करें;
अन्य सहायक संकेतकों को जोड़ना, जैसे कि BOLL चैनल या KD संकेतकों को आगे फ़िल्टर करने के लिए;
स्टॉप-लॉस रणनीतियों को अनुकूलित करें, जैसे कि लाभ-हानि के संतुलन बिंदु पर जाना या बड़े पैमाने पर स्टॉप-लॉस करना।
यह रणनीति समग्र रूप से बहुत व्यावहारिक है, यह अल्पकालिक प्रवृत्ति निर्णय और दीर्घकालिक प्रवृत्ति निर्णय दोनों को ध्यान में रखती है, स्टॉप लॉस सेटिंग भी उचित है। पैरामीटर समायोजन और अनुकूलन के माध्यम से अभी भी बेहतर प्रभाव प्राप्त किया जा सकता है, यह परीक्षण और उपयोग के लायक है।
/*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