
यह रणनीति एक द्विआधारी गतिशीलता सूचक तोड़ने की रणनीति है। यह दो अलग-अलग पैरामीटर सेट किए गए गतिशीलता सूचकों का उपयोग करता है, जो दोनों गतिशीलता सूचकों के शून्य-अक्ष को तोड़ने पर एक व्यापारिक संकेत उत्पन्न करता है। यह रणनीति केवल बहु-हेड प्रविष्टियां करती है, खाली सिर केवल समतल स्थिति के लिए है।
कोड पहले नीति गुणों को सेट करता है, जैसे कि कमीशन मोड, कमीशन मोड, आदि। फिर यह दो गतिशील संकेतकों की गणना करता हैः
// Momentum settings
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 code
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
mom0 मूल गतिशीलता सूचक है, लंबाई i_len है, डेटा स्रोत i_src है, प्रतिशत गणना i_percent द्वारा निर्धारित की जाती है।
mom1 एक गतिमान संकेतक है जिसका स्रोत mom0 है और जिसकी लंबाई 1 है.
mom2 एक गति सूचक है जिसका आयाम 1 है और जिसका स्रोत i_src है।
अंत में, गतिशीलता संकेतक momX का उपयोग किया जाता है, जो डिफ़ॉल्ट रूप से mom1 है, और mom2 को भी चुना जा सकता है।
जब mom0 और momX एक साथ 0 अक्ष से अधिक हो, तो अधिक करें; जब mom0 और momX एक साथ 0 अक्ष से नीचे हों, तो समतल करें।
दोहरी गतिशीलता संकेतक का उपयोग विभिन्न पैरामीटर सेटिंग्स के साथ ट्रेडिंग सिग्नल की विश्वसनीयता में सुधार करने के लिए किया जाता है, और दोहरी पुष्टि झूठी संकेतों को कम करती है।
केवल मल्टी हेड एंट्रीज करें, खाली हेड केवल क्लियर पोजीशन के लिए उपयोग करें, जिससे ट्रेडिंग की आवृत्ति कम हो और ट्रेडिंग की लागत कम हो।
गतिशीलता सूचक पैरामीटर को विभिन्न बाजार स्थितियों के अनुकूल बनाया जा सकता है।
कोड की संरचना स्पष्ट है, इसे समझना और संशोधित करना आसान है।
स्वचालित व्यापार प्रणाली के साथ संयोजन के लिए ट्रेडिंग संदेश सेटिंग जोड़ी गई थी
हालांकि द्विआधारी द्रव्यमान सूचक झूठे संकेतों को कम कर सकता है, यह कमजोर प्रवृत्ति संकेतों को भी याद कर सकता है।
यदि आप केवल एक ही लेनदेन करते हैं, तो आप एक खाली लेनदेन के अवसर को याद कर सकते हैं।
गतिशीलता सूचक पैरामीटर की गलत सेटिंग से लेनदेन बहुत बार या बहुत धीमी गति से हो सकता है।
अपर्याप्त प्रतिक्रिया डेटा के कारण पैरामीटर ओवरफिट हो सकता है।
दोहरे सत्यापन के साथ, हालांकि यह झूठे संकेतों को कम करता है, लेकिन इसे पूरी तरह से नहीं बचा जा सकता है।
सबसे अच्छा पैरामीटर का पता लगाने के लिए विभिन्न लंबाई और प्रतिशत गणना के लिए परीक्षण किया जा सकता है।
ट्रेडों के लिए अधिक अवसरों को पकड़ने के लिए ट्रेंड की पुष्टि होने के बाद एक खाली ट्रेडिंग सिग्नल को शामिल करने पर विचार किया जा सकता है।
विभिन्न गतिशीलता सूचक गणना विधियों जैसे कि आरओसी, आरएसआई आदि का परीक्षण किया जा सकता है ताकि बेहतर प्रभाव मिल सके।
ट्रेडों को ट्रेंड फ़िल्टरिंग के साथ जोड़ा जा सकता है, जिससे कि अस्थिरता में ट्रेडिंग से बचा जा सके।
स्टॉप लॉस रणनीतियों को अनुकूलित करें और लाभ को अधिकतम करते हुए जोखिम को नियंत्रित करें।
यह रणनीति एक विशिष्ट दोहरी गतिशीलता सूचकांक तोड़ने की रणनीति है। यह दोहरे पुष्टिकरण का उपयोग करता है, जो झूठे संकेतों को कम करता है, केवल ट्रेडिंग की आवृत्ति को कम करने के लिए बहु-प्रवेश करता है। इस रणनीति के फायदे सरल, स्पष्ट और लागू करने में आसान हैं, पैरामीटर अनुकूलन और जोखिम नियंत्रण में सुधार के लिए बहुत अधिक जगह है। कुल मिलाकर, यह रणनीति गतिशीलता तोड़ने की रणनीति के लिए एक बुनियादी ढांचे के रूप में काम करती है, लेकिन वास्तविक बाजार में स्थिर लाभप्रदता के लिए विशिष्ट बाजार के लिए अनुकूलित समायोजन की आवश्यकता होती है।
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Momentum Long 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)
// There will be no short entries, only exits from long.
strategy.risk.allow_entry_in(strategy.direction.long)
// 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
// Momentum settings
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"])
// Messages for buy and sell
message_buy = input("{{strategy.order.alert_message}}", title="Buy message")
message_sell = input("{{strategy.order.alert_message}}", title="Sell message")
// Momentum code
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
// Strategy Alerts
if (mom0 > 0 and momX > 0 and time_cond)
strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE", alert_message = message_buy)
else
strategy.cancel("MomLE")
if (mom0 < 0 and momX < 0 and time_cond)
strategy.entry("MomExit", strategy.short, stop = low - syminfo.mintick, comment = "MomSE", alert_message = message_sell)
else
strategy.cancel("MomExit")
// Plotting
plot(0, color = #5d606b, title = "ZERO")
plot(mom0, color = #00bcd4, title = "MOM")
plot(mom1, color = #00FF00, title = "MOM1", display = display.none)
plot(mom2, color = #00FF00, title = "MOM2")