
यह रणनीति खरीदने और बेचने के संकेतों को उत्पन्न करने के लिए कीमतों और चलती औसत के साथ क्रॉसिंग पर आधारित है। यह कई प्रकार के चलती औसत और एक पारदर्शी पैरामीटर प्रदान करता है जो झूठे ब्रेकआउट को फ़िल्टर करता है। यह रणनीति मूल्य प्रवृत्ति के मोड़ को पकड़ने और प्रवृत्ति को ट्रैक करने के लिए डिज़ाइन की गई है।
यह रणनीति मूल्य समापन मूल्य पर आधारित होती है, जिसमें एक चलती औसत की गणना की जाती है, जिसकी लंबाई N होती है। एक विशिष्ट प्रकार का चलती औसत सरल चलती औसत (एसएमए), सूचकांक चलती औसत (ईएमए), भारित चलती औसत (डब्ल्यूएमए) आदि होता है। फिर एक अंतर स्तर, जैसे कि 5% सेट किया जाता है, और ऊपर की ओर चलती कीमतों (1.05 गुना) और नीचे की ओर चलती कीमतों (0.95 गुना) की गणना की जाती है। जब कीमत समापन मूल्य के ऊपर से गुजरती है, तो एक खरीद संकेत उत्पन्न होता है; जब कीमत समापन मूल्य के नीचे से गुजरती है, तो एक बिक्री संकेत उत्पन्न होता है। इसके अलावा, यह रणनीति एक बुलबुल पैरामीटर शॉर्ट-ब्रेक लाइन ऑपरेशन प्रदान करती है, जो इस पैरामीटर के साथ शुरू होती है, केवल एक बिक्री संकेत उत्पन्न करने के लिए, खाली का उपयोग करें।
यह रणनीति समग्र रूप से एक अधिक विशिष्ट प्रवृत्ति ट्रैकिंग रणनीति है। यह प्रवृत्ति का न्याय करने के लिए मूल्य और चलती औसत के संबंध का उपयोग करता है, और कुछ लचीलापन प्रदान करता है। पैरामीटर अनुकूलन और उचित सिग्नल फ़िल्टरिंग के साथ, यह एक अच्छी तरह से काम करने वाली मात्रात्मक रणनीति बन सकती है।
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
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/
// © RafaelPiccolo
//@version=4
strategy("Price X MA Cross", overlay=true)
typ = input("HMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"])
len = input(100, minval=1, title="Length")
src = input(close, "Source", type=input.source)
tol = input(0, minval=0, title="Tolerance (%)", type=input.float)
shortOnly = input(false, "Short only")
tema(src, len)=>
ema1 = ema(src, len)
ema2 = ema(ema1, len)
ema3 = ema(ema2, len)
return = 3 * (ema1 - ema2) + ema3
getMAPoint(type, len, src)=>
return = type == "SMA" ? sma(src, len) : type == "EMA" ? ema(src, len) : type == "WMA" ? wma(src, len) : type == "HMA" ? hma(src, len) : type == "VWMA" ? vwma(src, len) : type == "RMA" ? rma(src, len) : tema(src, len)
ma = getMAPoint(typ, len, src)
upperTol = ma * (1 + tol/100)
lowerTol = ma * (1 - tol/100)
longCondition = crossover(close, upperTol)
shortCondition = crossunder(close, lowerTol)
if (shortCondition)
strategy.entry("Short", strategy.short)
if (longCondition)
if (shortOnly)
strategy.close("Short")
else
strategy.entry("Long", strategy.long)
plot(ma, "Moving Average", close > ma ? color.green : color.red, linewidth = 2)
t1 = plot(tol > 0 ? upperTol : na, transp = 70)
t2 = plot(tol > 0 ? lowerTol : na, transp = 70)
fill(t1, t2, color = tol > 0 ? color.blue : na)