यह रणनीति ट्रेंड की दिशा की पहचान करने के लिए क्रॉस-साइक्लिक तकनीकी संकेतकों का उपयोग करती है, जो ट्रेंड फ़िल्टरिंग और उतार-चढ़ाव फ़िल्टरिंग के साथ मिलकर कम जोखिम वाले ट्रेंड ट्रैकिंग ट्रेडों को प्राप्त करती है।
उच्च-निचले बिंदु के टूटने का उपयोग करके खरीद और बिक्री संकेतों का आकलन करें। जब कीमत 7 चक्र की ऊंचाई को तोड़ती है, तो कम देखें, और जब यह 7 चक्र की निचली स्थिति को तोड़ती है, तो अधिक देखें।
ट्रेंडफ्लेक्स सूचक मुख्य प्रवृत्ति की दिशा का न्याय करता है। यह सूचक दोहरी चिकनाई तकनीक को जोड़ता है, जो प्रवृत्ति के मध्य खंड को प्रभावी ढंग से पहचान सकता है। 1 से अधिक मूल्य एक बढ़ती प्रवृत्ति को दर्शाता है, और -1 से कम मूल्य एक गिरावट की प्रवृत्ति है। यहां हम ट्रेंडफ्लेक्स को > 1 घंटे लंबा और < -1 घंटे छोटा करने के लिए कहते हैं, जिससे पूरे सेट की स्थिति को फ़िल्टर किया जा सकता है।
Bollinger Bands में उतार-चढ़ाव के साथ, आप अस्थिरता की पहचान कर सकते हैं। जब कीमतें बंद होती हैं, तो बैंड के भीतर अधिक से अधिक खोलने से बचें।
स्थिति को प्रबंधित करने के लिए मोबाइल स्टॉप और मोबाइल स्टॉप का उपयोग करें।
दोहरी समतल तकनीक के संयोजन के साथ, क्रॉस-आवर्ती संकेतक प्रवृत्ति की दिशा को प्रभावी ढंग से पहचानने में मदद करते हैं और बाजार के झटके से बचते हैं।
ट्रेडिंग सिग्नल को अधिक विश्वसनीय बनाने के लिए, प्रवृत्ति की दिशा और उतार-चढ़ाव के नियमों को ध्यान में रखें।
स्टॉप लॉस स्टॉप सेट तर्कसंगत है, लाभ को लॉक करने और घाटे को बढ़ाने से रोकने के लिए।
यह रणनीति सरल है और इसे लागू करना आसान है।
एक ब्रेकआउट सिग्नल में एक झूठा ब्रेकआउट हो सकता है, जिससे गलत ट्रेडों का परिणाम हो सकता है। अधिक शोरबा शर्तों को जोड़ने पर विचार किया जा सकता है।
स्थिर चक्र पैरामीटर बाजार में परिवर्तन के लिए अनुकूलित नहीं किया जा सकता है, गतिशील अनुकूलन पैरामीटर पर विचार किया जा सकता है।
हालांकि, इस तरह की घटनाओं के बीच, कीमतों पर रोक लगाने की कमी के कारण, चरम सीमाओं के कारण होने वाले भारी नुकसान को रोका नहीं जा सकता है।
स्टॉप-स्टॉप-लॉस बिंदु निश्चित है और बाजार में उतार-चढ़ाव के आधार पर बुद्धिमान रूप से समायोजित नहीं किया जा सकता है।
इस प्रकार, यह विचार किया जा सकता है कि अधिक ट्रेंडिंग सूचकांकों को शामिल किया जाए, जिससे रणनीति का एक पोर्टफोलियो तैयार किया जा सके और निर्णय की सटीकता में सुधार किया जा सके।
भूकंप की पहचान करने के लिए एक मॉड्यूल जोड़ा गया है, जो भूकंप की तीव्रता के दौरान व्यापार को रोकता है, जिससे जोखिम कम हो जाता है।
पैरामीटर के गतिशील अनुकूलन के लिए मशीन लर्निंग एल्गोरिदम को शामिल करना।
एक मूल्य रोक मॉड्यूल जोड़ा गया है, जो एक निश्चित मूल्यह्रास तक पहुंचने पर हानि को रोक सकता है।
बाजार में उतार-चढ़ाव के आधार पर स्टॉप-स्टॉप अनुपात की गणना, स्टॉप-स्टॉप के लिए स्मार्ट समायोजन।
इस रणनीति के लिए समग्र रूप से काफी मजबूत और विश्वसनीय है, लेकिन वहाँ भी सुधार के लिए कुछ जगह है. मुख्य विचार यह है कि प्रवृत्ति की दिशा का आकलन करने के लिए चक्र के पार, और फिर प्रवृत्ति की ताकत के संकेतकों और उतार-चढ़ाव के संकेतकों के संयोजन के लिए फिल्टर, ताकि उच्च गुणवत्ता के संकेतों को भेज. इस रणनीति सरल व्यावहारिक है, और बहुत अच्छी तरह से मध्यम और लंबी लाइन प्रवृत्ति का पालन करने के लिए उपयुक्त है.
/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Eltrut", shorttitle="Eltrut Strat", overlay=true, pyramiding=0, default_qty_type= strategy.percent_of_equity,calc_on_order_fills=false, slippage=25,commission_type=strategy.commission.percent,commission_value=0.075)
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// R E F L E X / T R E N D F L E X
f_supersmoother(_src,_len)=>
pi = 2 * asin(1)
_a = exp(-sqrt(2) * pi / _len)
_c2 = 2 * _a * cos(sqrt(2) * pi / _len)
_c3 = -_a * _a
_c1 = 1 - _c2 - _c3
_out = 0.0
_out := _c1 * _src + _c2 * nz(_out[1],nz(_src[1],_src)) + _c3 * nz(_out[2],nz(_src[2],nz(_src[1],_src)))
f_IQIFM(_src1,_max)=>
_src = _src1 < 0.001 ? _src1 * 10000 : _src1
_imult = 0.635, _qmult = 0.338 , _inphase = 0.0, _quad = 0.0
_re = 0.0, _im = 0.0, _deltaphase = 0.0, _instper = 0.0, _per = 0.0, _v4 = 0.0
_v1 = _src - nz(_src[7])
_inphase := 1.25 * (nz(_v1[4]) - _imult * _v1[2]) + _imult * nz(_inphase[3])
_quad := _v1[2] - _qmult * _v1 + _qmult * nz(_quad[2])
_re := 0.2 * (_inphase * _inphase[1] + _quad * _quad[1]) + 0.8 * nz(_re[1])
_im := 0.2 * (_inphase * _quad[1] - _inphase[1] * _quad) + 0.8 * nz(_im[1])
if _re != 0.0
_deltaphase := atan(_im / _re)
for i = 0 to _max
_v4 := _v4 + _deltaphase[i]
if _v4 > 4 * asin(1) and _instper == 0.0
_instper := i
if _instper == 0.0
_instper := nz(_instper[1])
_per := 0.25 * _instper + 0.75 * nz(_per[1])
_per
f_flex(_src1, _fixed_len, _reflex) =>
_src = _src1
_len = _fixed_len
_ss1 = f_supersmoother(_src, _len)
_ss = _ss1
_slope = (_ss[_len] - _ss) / _len
_sum = 0.0
for _i = 1 to _len
_c1 = _reflex ? _ss + _i * _slope - _ss[_i] : _ss - _ss[_i]
_sum := _sum + _c1
_sum := _sum / _len
_ms = 0.0
_ms := 0.04 * pow(_sum,2) + 0.96 * nz(_ms[1])
_flex1 = _ms != 0 ? _sum / sqrt(nz(_ms)) : 0.0
_flex = _flex1
_flex
rflx = f_flex(close, 20, true)
trndflx = f_flex(close, 20, false)
// S I G N A L
hi7 = highest(7)
lo7 = lowest(7)
long_cond = crossunder(close, lo7[1])
short_cond = crossover(close, hi7[1])
// F I L T E R S
long_filter1 = trndflx < 1
short_filter1 = trndflx > -1
basis = sma(close, 35)
dev = 3 * stdev(close, 35)
long_filter2 = close > basis - dev
short_filter2 = close < basis + dev
// S T R A T E G Y
long = long_cond and long_filter1 and long_filter2
short = short_cond and short_filter1 and short_filter2
if( true)
strategy.entry("Long", strategy.long, when = long)
strategy.entry("Long", strategy.long, when = short)
// User Options to Change Inputs (%)
stopPer = input(3, title='Stop Loss %', type=input.float) / 100
takePer = input(9, title='Take Profit %', type=input.float) / 100
// Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)
if strategy.position_size > 0
strategy.exit(id="Exit Long", stop=longStop, limit=longTake)
if strategy.position_size < 0
strategy.exit(id="Exit Short", stop=shortStop, limit=shortTake)
// P L O T
plotshape(long, color = #1e90ff, text = "", style=shape.triangleup, location=location.belowbar, size=size.tiny)
plotshape(short, color = #ff69b4, text = "", style=shape.triangledown, location=location.abovebar, size=size.tiny)
alertcondition(long, "Long", "Enter Long")
alertcondition(short, "Short", "Enter S")