ठोस एक चट्टान के रूप में वीआईपी क्वांट रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-19 13:54:05
टैगः

img

अवलोकन

इस रणनीति को The Solid as a Rock VIP Quant Strategy कहा जाता है। यह एक स्थिर और विश्वसनीय मात्रात्मक ट्रेडिंग फ्रेमवर्क बनाने के लिए संशोधित WMA संकेतक और SSL चैनल संकेतक को जोड़ती है।

सिद्धांत

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

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

लाभ

  1. दो संकेतकों का संयोजन खरीद संकेत को अधिक विश्वसनीय बनाता है ताकि झूठे ब्रेकआउट से बचा जा सके।
  2. संशोधित डब्ल्यूएमए संकेतक मोड़ बिंदुओं को अधिक सटीक रूप से निर्धारित कर सकता है।
  3. एसएसएल चैनल स्पष्ट रूप से उच्च स्तर पर खरीदने से बचने के लिए मूल्य चैनल का आकलन करता है।
  4. घातीय चलती औसत पद्धति का प्रयोग दीर्घकालिक रुझानों को निर्धारित करने के लिए अधिक अनुकूल है।

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

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

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

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

सारांश

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


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
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/
// © Darshana_Alwis

//@version=5
strategy("VIP", overlay=true, initial_capital=1000,currency=currency.USD,default_qty_type=strategy.percent_of_equity,default_qty_value=100,pyramiding=0)
//SSS = Sultan+Saud Strategy

//The original idea of the code belonges to saudALThaidy
//The strategy code is basically made out of two other indicators, edited and combined by me.
// 1- NSDT HAMA Candles => https://www.tradingview.com/script/k7nrF2oI-NSDT-HAMA-Candles/
// 2- SSL Channel => https://www.tradingview.com/script/6y9SkpnV-SSL-Channel/


//MA INFO
WickColor = input.color(color.rgb(80, 80, 80, 100), title='Wick Color', tooltip='Suggest Full Transparency.')
LengthMA = input.int(100, minval=1, title='MA Line Length', inline='MA Info')
TakeProfit = input.float(1, minval=0, title='Take Profit Percentage', step=1)
UseStopLose = input.bool(false, title='Use Stop Percentage')
StopLose = input.float(1, minval=0, title='StopLose Percentage', step=1)

MASource = close

ma(source, length, type) =>
    type == "SMA" ? ta.sma(source, length) :
     type == "EMA" ? ta.ema(source, length) :
     type == "SMMA (RMA)" ? ta.rma(source, length) :
     type == "WMA" ? ta.wma(source, length) :
     type == "VWMA" ? ta.vwma(source, length) :
     na

ma1_color  = color.rgb(230, 172, 0)
ma1 = ma(high, 200, "SMA")

ma2_color  = color.red
ma2 = ma(low, 200, "SMA")

Hlv1 = float(na)
Hlv1 := close > ma1 ? 1 : close < ma2 ? -1 : Hlv1[1]
sslUp1   = Hlv1 < 0 ? ma2 : ma1
sslDown1 = Hlv1 < 0 ? ma1 : ma2

Color1 = Hlv1 == 1 ? ma1_color : ma2_color
fillColor1 = color.new(Color1, 90)

highLine1 = plot(sslUp1, title="UP", linewidth=2, color = Color1)
lowLine1 = plot(sslDown1, title="DOWN", linewidth=2, color = Color1)

OpenLength = 25
HighLength = 20
LowLength = 20
CloseLength = 20


     
SourceOpen = (open[1] + close[1]) / 2
SourceHigh = math.max(high, close)
SourceLow = math.min(low, close)
SourceClose = (open + high + low + close) / 4

funcCalcMA1(src1, len1) => ta.ema(src1, len1)
funcCalcOpen(SourceOpen, OpenLength) => ta.ema(SourceOpen, OpenLength)
funcCalcHigh(SourceHigh, HighLength) => ta.ema(SourceHigh, HighLength)
funcCalcLow(SourceLow, LowLength) => ta.ema(SourceLow, LowLength)
funcCalcClose(SourceClose, CloseLength) => ta.ema(SourceClose, CloseLength)

MA_1 = funcCalcMA1(MASource, LengthMA)

CandleOpen = funcCalcOpen(SourceOpen, OpenLength)
CandleHigh = funcCalcHigh(SourceHigh, HighLength)
CandleLow = funcCalcLow(SourceLow, LowLength)
CandleClose = funcCalcClose(SourceClose, CloseLength)

//PLOT CANDLES
//-------------------------------NSDT HAMA Candels
BodyColor = CandleOpen > CandleOpen[1] ? color.rgb(230, 172, 0) : color.red
barcolor(BodyColor)
plotcandle(CandleOpen, CandleHigh, CandleLow, CandleClose, color=BodyColor, title='HAMA Candles', wickcolor=WickColor, bordercolor=na)
plot(MA_1, title='MA Line', color=BodyColor, style=plot.style_line, linewidth=2)

//------------------------------SSL Channel


plot_buy = false
avg = ((high-low)/2)+low
LongCondition = (Hlv1 == 1 and Hlv1[1] == -1) and (BodyColor == color.rgb(230, 172, 0)) and (MA_1 < avg) and (CandleHigh < avg) and (strategy.opentrades == 0)
if LongCondition
    strategy.entry("BUY with VIP", strategy.long)
    plot_buy := true

base = strategy.opentrades.entry_price(0)
baseProfit = (base+((base/100)*TakeProfit))
baseLose = (base-((base/100)*StopLose))

strategy.exit("SELL with VIP","BUY with VIP",limit = baseProfit)
if UseStopLose and (close < MA_1)
    strategy.exit("SELL with VIP","BUY with VIP",stop = baseLose)
if not UseStopLose and (close < MA_1)
    strategy.exit("SELL with VIP","BUY with VIP", stop = close)
    
plotshape(plot_buy, title="Buy Label", text="Buy", location=location.belowbar, style=shape.labelup, size=size.tiny, color=Color1, textcolor=color.white)

fill(highLine1, lowLine1, color = fillColor1)


अधिक