यह रणनीति पिवोट पॉइंट सुपरट्रेंड इंडिकेटर और डबल एक्सपोनेंशियल मूविंग एवरेज (डीईएमए) इंडिकेटर को मिलाकर इन दो इंडिकेटरों के सापेक्ष मूल्य स्थिति का विश्लेषण करके ट्रेडिंग सिग्नल उत्पन्न करती है। जब कीमत पिवोट पॉइंट सुपरट्रेंड इंडिकेटर से ऊपर टूटती है और डीईएमए इंडिकेटर से अधिक होती है, तो एक लंबा संकेत उत्पन्न होता है; जब कीमत पिवोट पॉइंट सुपरट्रेंड इंडिकेटर से नीचे टूटती है और डीईएमए इंडिकेटर से कम होती है, तो एक छोटा संकेत उत्पन्न होता है। यह रणनीति मध्यम से दीर्घकालिक बाजार के रुझानों को पकड़ सकती है जबकि अल्पकालिक मूल्य उतार-चढ़ाव का भी जवाब दे सकती है।
पिवोट पॉइंट सुपरट्रेंड इंडिकेटर और डीईएमए इंडिकेटर को मिलाकर, यह रणनीति बाजार के रुझानों को प्रभावी ढंग से पकड़ सकती है जबकि अल्पकालिक उतार-चढ़ावों का भी जवाब दे सकती है। रणनीति में मजबूत प्रवृत्ति-अनुसरण क्षमता, मजबूत अनुकूलन क्षमता और मजबूत जोखिम नियंत्रण क्षमता जैसे फायदे हैं, लेकिन पैरामीटर सेटिंग, रेंज-बाउंड बाजारों और प्रवृत्ति उलटों जैसे जोखिमों का भी सामना करना पड़ता है। पैरामीटर अनुकूलन, सिग्नल फ़िल्टरिंग, स्थिति प्रबंधन और पोर्टफोलियो अनुकूलन के माध्यम से, विभिन्न बाजार वातावरण के लिए बेहतर अनुकूलन के लिए रणनीति की स्थिरता और लाभप्रदता में और सुधार किया जा सकता है।
/*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")