PresentTrend रणनीति एक अनूठी अनुकूलन प्रवृत्ति का पालन करने की रणनीति है। यह रणनीति अल्पकालिक और दीर्घकालिक बाजार रुझानों को जोड़ती है, जिससे यह विभिन्न बाजार स्थितियों के लिए उपयुक्त है।
इस रणनीति के दो भाग हैं:
कस्टम आरएसआई या एमएफआई संकेतकः यह संकेतक आरएसआई या एमएफआई के आधार पर प्रेजेंटट्रेंड मूल्य की गणना करता है, और इस मूल्य के आधार पर गोल्डन फोर्क डेड फोर्क खरीद और बेचने के संकेत उत्पन्न करता है, जो संभावित प्रवृत्ति को उलट देता है।
एटीआर सूचकांकः यह एक लोकप्रिय प्रवृत्ति सूचकांक है जो औसत वास्तविक उतार-चढ़ाव की सीमा का उपयोग करता है।
जब दोनों रणनीतियों के खरीद और बेचने के संकेत एक साथ ट्रिगर किए जाते हैं, तो रणनीति को अधिक या कम करने के लिए खोला जाता है। यह सुनिश्चित करता है कि ट्रेड केवल अल्पकालिक और दीर्घकालिक रुझानों के अनुरूप होते हैं, जिससे रणनीति की विश्वसनीयता बढ़ जाती है।
PresentTrend रणनीति समग्र रूप से एक बहुत ही प्रभावी प्रवृत्ति का पालन करने वाली रणनीति है। यह एक साथ अल्पकालिक और दीर्घकालिक प्रवृत्ति संकेतकों को जोड़ती है, जबकि संवेदनशीलता को बनाए रखते हुए संकेतों की विश्वसनीयता को बढ़ाती है। दिशा, पैरामीटर को समायोजित करके और अतिरिक्त तर्क जोड़कर, रणनीति को विभिन्न बाजार स्थितियों और व्यापारियों की जरूरतों के अनुकूल बनाया जा सकता है। हालांकि अभी भी प्रवृत्ति का पालन करने की रणनीति के अंतर्निहित जोखिमों पर ध्यान देने की आवश्यकता है, लेकिन कुल मिलाकर PresentTrend एक विचारणीय विकल्प है।
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 2h
basePeriod: 15m
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/
// © PresentTrading
//@version=5
// Define the strategy settings
strategy('PresentTrend - Strategy [presentTrading]' , overlay=true, precision=3, default_qty_type=strategy.cash,
commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1,
currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital= 10000)
// Define the input parameters
priceSource = input.source(title='Source', defval=hlc3, group='PresentTrend') // The price source to use
lengthParam = input.int(title='Length', defval=14, group='PresentTrend') // The length of the moving average
multiplier = input.float(title='Multiplier', defval=1.618, step=0.1, group='PresentTrend') // The multiplier for the ATR
indicatorChoice = input.bool(title='Whether to use RSI or MFI', defval=false, group='PresentTrend') // Whether to use RSI or MFI
// Add a parameter for choosing Long or Short
tradeDirection = input.string(title="Trade Direction", defval="Both", options=["Long", "Short", "Both"])
// Calculate the ATR and the upT and downT values
ATR = ta.sma(ta.tr, lengthParam)
upperThreshold = low - ATR * multiplier
lowerThreshold = high + ATR * multiplier
// Initialize the PresentTrend indicator
PresentTrend = 0.0
// Calculate the PresentTrend indicator
PresentTrend := (indicatorChoice ? ta.rsi(priceSource, lengthParam) >= 50 : ta.mfi(hlc3, lengthParam) >= 50) ? upperThreshold < nz(PresentTrend[1]) ? nz(PresentTrend[1]) : upperThreshold : lowerThreshold > nz(PresentTrend[1]) ? nz(PresentTrend[1]) : lowerThreshold
// Calculate the buy and sell signals
longSignal = ta.crossover(PresentTrend, PresentTrend[2])
shortSignal = ta.crossunder(PresentTrend, PresentTrend[2])
// Calculate the number of bars since the last buy and sell signals
barsSinceBuy = ta.barssince(longSignal)
barsSinceSell = ta.barssince(shortSignal)
previousBuy = ta.barssince(longSignal[1])
previousSell = ta.barssince(shortSignal[1])
// Initialize the direction variable
trendDirection = 0
// Calculate the direction of the trend
trendDirection := longSignal and previousBuy > barsSinceSell ? 1 : shortSignal and previousSell > barsSinceBuy ? -1 : trendDirection[1]
// Check the trade direction parameter before entering a trade
if (trendDirection == 1 and (tradeDirection == "Long" or tradeDirection == "Both"))
strategy.entry("Buy", strategy.long)
if (trendDirection == -1 and (tradeDirection == "Short" or tradeDirection == "Both"))
strategy.entry("Sell", strategy.short)
// Add a stop mechanism when the tradeDirection is one-sided
if (tradeDirection == "Long" and trendDirection == -1)
strategy.close("Buy")
if (tradeDirection == "Short" and trendDirection == 1)
strategy.close("Sell")
// Visualization
plot(PresentTrend, color=color.blue, title="PresentTrend")
plotshape(series=longSignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=shortSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")