
रणनीति एक प्रवृत्ति ट्रैकिंग प्रणाली है जो पारंपरिक तकनीकी विश्लेषण और आधुनिक एआई विधियों को जोड़ती है। यह मुख्य रूप से सूचकांक चलती औसत (ईएमए) और सरल चलती औसत (एसएमए) का उपयोग प्रवृत्ति फ़िल्टर के रूप में करती है, जबकि प्रवेश समय को अनुकूलित करने के लिए पूर्वानुमान मॉडल पेश करती है। रणनीति को विशेष रूप से डेली लाइन स्तर के लिए अनुकूलित किया गया है, जिसका उद्देश्य मध्यम और दीर्घकालिक बाजार रुझानों को पकड़ना है।
इस रणनीति के मूल में तीन मुख्य तत्व शामिल हैंः
ट्रेडिंग सिग्नल के उत्पादन के लिए रुझान की दिशा और पूर्वानुमान सिग्नल की एकरूपता को पूरा करना आवश्यक है, अर्थात्ः
रणनीति पारंपरिक तकनीकी विश्लेषण और आधुनिक पूर्वानुमान विधियों के संयोजन के माध्यम से एक मजबूत प्रवृत्ति ट्रैकिंग प्रणाली का निर्माण करती है। इसका मुख्य लाभ तर्क स्पष्टता, जोखिम नियंत्रण और मजबूत स्केलेबिलिटी में है। रणनीति अनुकूलन, विशेष रूप से पूर्वानुमान मॉडल और जोखिम नियंत्रण में सुधार के माध्यम से, रणनीति की स्थिरता और लाभप्रदता को और बढ़ाने की उम्मीद है। रणनीति मध्यम और दीर्घकालिक स्थिर रिटर्न की तलाश में निवेशकों के लिए उपयुक्त है।
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("My Strategy", overlay=true)
// Parameters (adjust as needed)
neighborsCount = 8
maxBarsBack = 2000
featureCount = 5
useDynamicExits = true
useEmaFilter = true
emaPeriod = 200
useSmaFilter = true
smaPeriod = 200
// Moving Average Calculations
ema = ta.ema(close, emaPeriod)
sma = ta.sma(close, smaPeriod)
// Trend Conditions
isEmaUptrend = close > ema
isEmaDowntrend = close < ema
isSmaUptrend = close > sma
isSmaDowntrend = close < sma
// Model Prediction (Replace with your real model)
// Here a simulation is used, replace it with real predictions
prediction = math.random() * 2 - 1 // Random value between -1 and 1
// Entry Signals
isNewBuySignal = prediction > 0 and isEmaUptrend and isSmaUptrend
isNewSellSignal = prediction < 0 and isEmaDowntrend and isSmaDowntrend
// Exit Signals
var int barsHeld = 0
var bool in_position = false
var int entry_bar = 0
if isNewBuySignal and not in_position
in_position := true
entry_bar := bar_index
barsHeld := 1
else if isNewSellSignal and not in_position
in_position := true
entry_bar := bar_index
barsHeld := 1
else if in_position
barsHeld := barsHeld + 1
if barsHeld == 4
in_position := false
endLongTradeStrict = barsHeld == 4 and isNewBuySignal[1]
endShortTradeStrict = barsHeld == 4 and isNewSellSignal[1]
// Backtest Logic
var float totalProfit = 0
var float entryPrice = na
var int tradeDirection = 0
if isNewBuySignal and tradeDirection <= 0
entryPrice := close
tradeDirection := 1
strategy.entry("Long", strategy.long)
if isNewSellSignal and tradeDirection >= 0
entryPrice := close
tradeDirection := -1
strategy.entry("Short", strategy.short)
if (endLongTradeStrict and tradeDirection == 1) or (endShortTradeStrict and tradeDirection == -1)
exitPrice = close
profit = (exitPrice - entryPrice) / entryPrice
if tradeDirection == -1
profit := (entryPrice - exitPrice) / entryPrice
totalProfit := totalProfit + profit
tradeDirection := 0
strategy.close_all()
plot(close, color=color.blue)
plot(ema, color=color.orange)
plot(sma, color=color.purple)