
इस रणनीति में केंद्र बिंदु सुपरट्रेंड सूचक और दोहरे सूचकांक चलती औसत (डीईएमए) सूचक का संयोजन किया गया है, जो दो सूचकांकों के बीच मूल्य के स्थानिक संबंधों का विश्लेषण करके व्यापार संकेतों का आकलन करता है। जब कीमत केंद्र बिंदु सुपरट्रेंड सूचक को तोड़ती है और डीईएमए सूचक से ऊपर होती है, तो मल्टी-सिग्नल उत्पन्न होती है; जब कीमत केंद्र बिंदु सुपरट्रेंड सूचक को तोड़ती है और डीईएमए सूचक से नीचे होती है, तो शून्य-सिग्नल उत्पन्न होती है। यह रणनीति बाजार के मध्यम-लंबी अवधि के रुझानों को पकड़ सकती है और साथ ही साथ अल्पावधि में मूल्य में उतार-चढ़ाव का जवाब दे सकती है।
इस रणनीति के माध्यम से अक्षीय बिंदु सुपर रुझान सूचक और डेमा सूचक के संयोजन, बाजार के रुझान को बेहतर ढंग से पकड़ने के लिए, लेकिन यह भी अल्पकालिक उतार-चढ़ाव का सामना करने में सक्षम है. रणनीति मजबूत रुझान ट्रैक करने की क्षमता, मजबूत अनुकूलनशीलता, मजबूत जोखिम नियंत्रण क्षमता, आदि के फायदे हैं, लेकिन यह भी पैरामीटर सेटिंग, अस्थिर बाजार और रुझान मोड़ जैसे जोखिमों का सामना करना पड़ता है. पैरामीटर अनुकूलन, सिग्नल फ़िल्टरिंग, स्थिति प्रबंधन और पोर्टफोलियो अनुकूलन आदि के माध्यम से, रणनीति की स्थिरता और लाभप्रदता को और बढ़ाया जा सकता है, और विभिन्न बाजार की परिस्थितियों के लिए बेहतर अनुकूल है।
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple Combined Strategy: Pivot Point SuperTrend and DEMA", overlay=true)
// Pivot Point SuperTrend settings
prd = input.int(2, title="Pivot Point Period", minval=1, maxval=50)
Factor = input.float(3.0, title="ATR Factor", minval=1, step=0.1)
Pd = input.int(10, title="ATR Period", minval=1)
// Double EMA settings
demaLength = input.int(200, title="DEMA Length", minval=1)
src = input(close, title="Source")
// Pip settings
pipValue = input.float(0.0001, title="Pip Value")
stopLossPips = input.int(15, title="Stop Loss (pips)")
takeProfitPips = input.int(35, title="Take Profit (pips)")
// Pivot Point SuperTrend Calculation
float ph = ta.pivothigh(prd, prd)
float pl = ta.pivotlow(prd, prd)
var float center = na
if not na(ph)
center := na(center) ? ph : (center * 2 + ph) / 3
if not na(pl)
center := na(center) ? pl : (center * 2 + pl) / 3
Up = center - (Factor * ta.atr(Pd))
Dn = center + (Factor * ta.atr(Pd))
var float TUp = na
var float TDown = na
var int Trend = na
if na(Trend)
TUp := Up
TDown := Dn
Trend := close > Dn ? 1 : -1
else
TUp := close[1] > TUp[1] ? math.max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1 : close < TUp[1] ? -1 : nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown
linecolor = Trend == 1 ? color.lime : color.red
plot(Trailingsl, color=linecolor, linewidth=2, title="PP SuperTrend")
// Double EMA Calculation
e1 = ta.ema(src, demaLength)
e2 = ta.ema(e1, demaLength)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=color.new(#43A047, 0))
// Strategy Logic
longCondition = close > Trailingsl and close > dema and strategy.position_size <= 0
shortCondition = close < Trailingsl and close < dema and strategy.position_size >= 0
// Plot signals
plotshape(series=longCondition, title="Long", location=location.belowbar, color=color.green, style=shape.labelup, text="Long")
plotshape(series=shortCondition, title="Short", location=location.abovebar, color=color.red, style=shape.labeldown, text="Short")
// Strategy Entry and Exit
if (longCondition)
strategy.entry("Long", strategy.long, stop=close - (stopLossPips * pipValue), limit=close + (takeProfitPips * pipValue))
if (shortCondition)
strategy.entry("Short", strategy.short, stop=close + (stopLossPips * pipValue), limit=close - (takeProfitPips * pipValue))
alertcondition(longCondition, title="Long Alert", message="Long Signal")
alertcondition(shortCondition, title="Short Alert", message="Short Signal")