गतिशीलता रणनीति एक रणनीति है जो मूल्य परिवर्तन की प्रवृत्ति के आधार पर व्यापार करती है। यह रणनीति एक निश्चित अवधि के भीतर मूल्य परिवर्तन की गणना करके मूल्य आंदोलन की प्रवृत्ति का आकलन करती है, और फिर एक व्यापार संकेत उत्पन्न करती है। जब कीमत में वृद्धि की प्रवृत्ति होती है, तो एक खरीद संकेत उत्पन्न होती है; जब कीमत में गिरावट की प्रवृत्ति होती है, तो एक बेचने का संकेत उत्पन्न होती है। यह रणनीति द्वि-गतिशीलता संकेतक को क्रॉस करके व्यापार संकेत उत्पन्न करती है।
यह रणनीति एक निश्चित अवधि के भीतर समापन मूल्य में परिवर्तन की गणना करके कीमतों की गतिशीलता का आकलन करती है। विशेष रूप से, यह समापन मूल्य के परिवर्तन की गणना करता है जो N चक्र से पहले समापन मूल्य के सापेक्ष है।
सबसे पहले, प्रथम गति सूचक MOM0 की गणना करें, जिसका सूत्र हैः
MOM0 = CLOSE - CLOSE[N]
इनमें, CLOSE वर्तमान चक्र समापन मूल्य को दर्शाता है, CLOSE[N] N चक्र से पहले के समापन मूल्य को दर्शाता है। इस प्रकार, MOM0>0 वर्तमान चक्र के सापेक्ष N चक्र से पहले के समापन मूल्य में वृद्धि को दर्शाता है, और MOM0 वर्तमान चक्र के सापेक्ष N चक्र से पहले के समापन मूल्य में गिरावट को दर्शाता है।
फिर दूसरा गतिमान सूचक MOM1 की गणना की जाती है, जिसका सूत्र हैः
MOM1 = MOM0 - MOM0[1]
MOM0 की गणना वर्तमान चक्र के मूल्य को पिछले चक्र के मूल्य से घटाकर की जाती है। MOM1>0 का अर्थ है कि MOM0 बढ़ गया है, और MOM1 का अर्थ है कि MOM0 गिर गया है।
उसी समय, तीसरे मोटाई संकेतक MOM2 की गणना करें, जिसका सूत्र हैः
MOM2 = CLOSE - CLOSE[1]
MOM2>0 का अर्थ है कि समापन मूल्य में वृद्धि हुई है, MOM2 का अर्थ है कि समापन मूल्य में गिरावट हुई है।
जब MOM0>0 और MOM1>0 है, तो यह संकेत देता है कि गति लगातार बढ़ रही है, एक खरीद संकेत उत्पन्न करती है; जब MOM0 और MOM2 है, तो यह संकेत देता है कि गति लगातार गिर रही है, एक बेचने का संकेत उत्पन्न करती है।
कोड में समय शर्त time_cond भी जोड़ा गया है, जो केवल एक निर्धारित प्रतिक्रिया समय अवधि के भीतर एक व्यापार संकेत उत्पन्न करता है। इसके अलावा, ऑर्डर देने से पहले एक बार फिर से जांचें कि क्या शर्त अभी भी लागू है, सिग्नल गायब होने के बाद ऑर्डर देने की स्थिति से बचें।
जोखिम को कम करने के लिए, गतिशीलता चक्र को छोटा करके, रुझान निर्णय को शामिल करके, या स्टॉप लॉस को कॉन्फ़िगर करके जोखिम को कम किया जा सकता है।
गतिशीलता रणनीति मूल्य परिवर्तन के रुझान को ट्रैक करने के बजाय कीमतों को ट्रैक करके, बाजार के गर्म बिंदु की दिशा को प्रभावी ढंग से निर्धारित कर सकती है और कीमतों में वृद्धि और गिरावट के अवसरों को पकड़ सकती है। हालांकि, गतिशीलता पिछड़ी है, पैरामीटर चयन और संयोजन अनुकूलन रणनीति प्रभाव के लिए महत्वपूर्ण है। यह रणनीति द्वि-गतिशीलता सूचकांक के पारगमन पर आधारित है, और कुछ शोर को फ़िल्टर कर सकती है। पैरामीटर को लगातार अनुकूलित करके, नए तकनीकी संकेतक जोड़कर, मशीन सीखने का उपयोग करके और अधिक रणनीति प्रभाव को बढ़ाकर, जोखिम को नियंत्रित किया जा सकता है।
/*backtest
start: 2022-09-25 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Momentum Strategy", overlay = false, precision = 2, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash, commission_type = strategy.commission.percent, commission_value = 0, calc_on_every_tick = true)
// Calculate start/end date and time condition
startDate = input(timestamp("2021-01-02T00:00:00"), title = "Start Date", type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), title = "End Date",type = input.time)
time_cond = true
i_len = input(defval = 12, title = "Length", minval = 1)
i_src = input(defval = close, title = "Source")
i_percent = input(defval = true, title = "Percent?")
i_mom = input(defval = "MOM2", title = "MOM Choice", options = ["MOM1", "MOM2"])
momentum(seria, length, percent) =>
_mom = percent ? ( (seria / seria[length]) - 1) * 100 : seria - seria[length]
_mom
mom0 = momentum(i_src, i_len, i_percent)
mom1 = momentum(mom0, 1, i_percent)
mom2 = momentum(i_src, 1, i_percent)
momX = mom1
if i_mom == "MOM2"
momX := mom2
if (mom0 > 0 and momX > 0 and time_cond)
strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE")
else
strategy.cancel("MomLE")
if (mom0 < 0 and momX < 0 and time_cond)
strategy.entry("MomSE", strategy.short, stop = low - syminfo.mintick, comment = "MomSE")
else
strategy.cancel("MomSE")
plot(mom0, color = #00bcd4, title = "MOM")
plot(mom1, color = #00FF00, title = "MOM1", display = display.none)
plot(mom2, color = #00FF00, title = "MOM2")