
रुझान पकड़ने की रणनीति एक ऐसी रणनीति है जिसमें रुझानों का पता लगाने और रुझानों की दिशा में स्थितियों को खोलने के लिए एक अनूठी विधि का उपयोग किया जाता है। यह एक निश्चित सीमा के भीतर उच्चतम और निम्नतम कीमतों के अंतर को उस सीमा के भीतर सभी K लाइनों की लंबाई के योग के अनुपात के रूप में गणना करके एक प्रतिशत मूल्य प्राप्त करता है जिसे “सीमा” कहा जाता है। यह मूल्य 100 के करीब है, यह दर्शाता है कि प्रवृत्ति अधिक मजबूत है। जब यह मूल्य एक निर्धारित सीमा से अधिक है, और एक चलती औसत ऊपर की ओर है, तो रणनीति एक एकाधिक खाता खोलती है; जब यह मूल्य एक निर्धारित सीमा से अधिक है, और एक चलती औसत नीचे की ओर है, तो रणनीति एक खाली खाता खोलती है।
प्रवृत्ति पकड़ने की रणनीति प्रवृत्ति के गठन का पता लगाने और प्रवृत्ति की दिशा में स्थिति खोलने के लिए एक अनूठी विधि का उपयोग करती है। यह प्रवृत्ति की ताकत का आकलन करने के लिए सीमा मानों की गणना करता है और प्रवृत्ति के अंत का आकलन करने के लिए चलती औसत का उपयोग करता है। रणनीति के बाद प्रवृत्ति के कुछ हिस्सों को समतल करने और स्टॉपलॉस को स्थानांतरित करने के लिए जोखिम को नियंत्रित करती है। हालांकि, रणनीति प्रवृत्ति की शुरुआत में कुछ जोखिमों का सामना कर सकती है, निश्चित स्टॉपलॉस का उपयोग करना पर्याप्त लचीला नहीं हो सकता है, केवल चलती औसत का उपयोग करके प्रवृत्ति का आकलन करने के लिए कुछ अवसरों को याद किया जा सकता है। भविष्य में, अन्य संकेतकों को पेश करने, स्टॉपलॉस को गतिशील रूप से समायोजित करने, प्रवृत्ति की पुष्टि के बाद स्थिति खोलने आदि के लिए रणनीति को अनुकूलित करने पर विचार किया जा सकता है।
/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 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/
// © faytterro
//@version=5
strategy("Trend Catcher Strategy", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
len = input.int(10)
tp = input.float(2.5, step = 0.1)
sl = input.float(2.5, step = 0.1)
malen = input.int(5)
limit = input.int(50)
ma = ta.sma(close,malen)
sum = 0.0
for i = 0 to len-1
sum := sum + high[i]-low[i]
frs = 100*(ta.highest(high,len)-ta.lowest(low,len))/sum
//hline(50)
//plot(frs, color = color.white)
l = ta.crossover(frs,limit) and ma>ma[1]
s = ta.crossover(frs,limit) and ma<ma[1]
cl = ma<ma[1]
cs = ma>ma[1]
qty_balance=input.int(50, maxval = 100)
if (l)
strategy.entry("My Long Entry Id", strategy.long)
strategy.exit("exit long", "My Long Entry Id", qty_percent = qty_balance, limit = close*(100+tp)/100, stop = close*(100-sl)/100)
if (s)
strategy.entry("My Short Entry Id", strategy.short)
strategy.exit("exit short", "My Short Entry Id", qty_percent = qty_balance, limit = close*(100-tp)/100, stop = close*(100+sl)/100)
if (cl)
strategy.close("My Long Entry Id")
if (cs)
strategy.close("My Short Entry Id")
l:= l and strategy.opentrades<1
s:= s and strategy.opentrades<1
transp = strategy.opentrades>0? 0 : 100
pma=plot(ma, color = ma<ma[1]? color.rgb(255, 82, 82, transp) : color.rgb(76, 175, 79, transp))
price = open/2+close/2
pprice = plot(price, display = display.none)
fill(pma,pprice, color = ma<ma[1]? color.rgb(255, 82, 82, transp+90) : color.rgb(76, 175, 79, transp+90))
spm=plot(ta.valuewhen(s,close,0), color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.white : color.rgb(1,1,1,100), offset=1)
lpm=plot(ta.valuewhen(l,close,0), color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.white : color.rgb(1,1,1,100), offset=1)
ltp=plot(ta.valuewhen(l,close,0)*(100+ta.valuewhen(l,tp,0))/100, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
lsl=plot(ta.valuewhen(l,close,0)*(100-ta.valuewhen(l,sl,0))/100, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.red : color.rgb(1,1,1,100), offset=1)
stp=plot(ta.valuewhen(s,close,0)*(100-ta.valuewhen(s,tp,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
ssl=plot(ta.valuewhen(s,close,0)*(100+ta.valuewhen(s,sl,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.red : color.rgb(1,1,1,100), offset=1)
fill(stp,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(ssl,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))
fill(ltp,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(lsl,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))