इस रणनीति में दो Arnaud Legoux Moving Average ((ALMA) का उपयोग किया जाता है ताकि ट्रेडिंग सिग्नल का आकलन किया जा सके। ALMA पारंपरिक चलती औसत के लिए एक सुधार है, जो अंतराल को कम करने और वक्र को चिकना करने में मदद करता है। यह रणनीति तेजी से ALMA के ऊपर धीमी गति से ALMA के माध्यम से एक खरीद संकेत उत्पन्न करती है, और तेजी से ALMA के नीचे धीमी गति से ALMA के माध्यम से एक बेचने का संकेत उत्पन्न करती है, जबकि संश्लेषित मात्रा फ़िल्टरिंग के साथ, एक अधिक स्थिर क्रॉसिंग सिग्नल बनाती है।
इस रणनीति के लिए मुख्य संकेतकों और व्यापारिक नियमों का वर्णन इस प्रकार है:
फास्ट ALMA: यह एक छोटी अवधि है, जो एक सफलता को पकड़ने के लिए उपयोग की जाती है
धीमी गति से ALMA: लंबी अवधि, बड़े रुझानों को समझने के लिए।
लेन-देन फ़िल्टरः दीर्घकालिक औसत पर अल्पकालिक औसत लागू होता है।
बहु सिग्नलः तेज ALMA पर धीमी गति से ALMA और पारगमन फ़िल्टरिंग प्रभावी।
पिंटो सिग्नलः तेजी से ALMA के नीचे धीमी गति से ALMA
रिक्त सिग्नलः तेजी से अल्मा के नीचे धीमी गति से अल्मा के माध्यम से और पारगमन मात्रा फ़िल्टर प्रभावी।
फ्लैटहाउस सिग्नल: फास्ट ALMA पर धीमी गति से ALMA
यह रणनीति सरल और सहज है, लेकिन यह एक अपेक्षाकृत मजबूत ट्रेडिंग प्रणाली बनाने के लिए कई तकनीकी संकेतकों को जोड़ती है, जैसे कि प्रवृत्ति निर्णय, ब्रेकआउट कैप्चर और लेनदेन मात्रा सत्यापन। तेजी से और धीरे-धीरे औसत रेखा का संयोजन प्रवृत्ति की दिशा को प्रभावी ढंग से निर्धारित कर सकता है; ALMA एल्गोरिथ्म के उपयोग से लेनदेन पर देरी के प्रभाव को कम किया जाता है; लेनदेन मात्रा को जोड़ने से कई अनिश्चित झूठे ब्रेकआउट से बचा जाता है।
इस रणनीति में पारंपरिक समानांतर क्रॉसिंग रणनीतियों की तुलना में मुख्य रूप से निम्नलिखित फायदे हैं:
ALMA एल्गोरिदम विलंबता को कम करने और संकेत की गुणवत्ता में सुधार करने में मदद करता है।
एक बार जब आप एक फ़्लैश फ़िल्टर का उपयोग करते हैं, तो आप एक फ़्लैश फ़िल्टर का उपयोग कर सकते हैं जो आपके फ़्लैश फ़िल्टर को नष्ट कर देगा।
इस प्रकार, यह एक सामान्य नियम है कि आप अपने व्यापार को एक निश्चित समय के लिए बंद कर दें।
नियम सरल, सहज और समझने में आसान हैं।
विभिन्न बाजारों के लिए लचीले ढंग से समायोजित औसत रेखा पैरामीटर
धन प्रबंधन की व्यवस्था उचित है, और आप व्यक्तिगत नुकसान को नियंत्रित कर सकते हैं।
औसत रेखा को अनुकूलित करके रणनीति को और अधिक प्रभावी बनाया जा सकता है।
कुल मिलाकर, इस रणनीति ने पारंपरिक औसत विनिमय रणनीति की तुलना में स्थिरता और सिग्नल गुणवत्ता में सुधार किया है।
हालांकि इस रणनीति के कई फायदे हैं, लेकिन इसके कुछ जोखिम भी हैं:
समानांतर रणनीतियाँ बाजार में उतार-चढ़ाव के लिए अतिसंवेदनशील होती हैं, जिससे कई बार घाटा होता है।
ALMA एल्गोरिथ्म के पैरामीटर सेटिंग्स रणनीति को प्रभावित करते हैं।
लेन-देन की मात्रा को बढ़ाने के प्रभाव से लेन-देन के संकेतों को गलत समझा जा सकता है।
कुछ देरी के साथ, पूरी तरह से नुकसान से बचा नहीं जा सकता।
Parametrics अनुकूलन में अति-अनुरूपता का खतरा है।
सिग्नल विफल हो जाता है अगर कोई असामान्य स्थिति होती है।
मशीन लर्निंग जैसे एल्गोरिदम बेहतर परिणाम दे सकते हैं।
आय-प्रतिक्रिया अनुपात पर ध्यान दें और वक्र को बहुत मोटा होने से बचें।
उपरोक्त जोखिम कारकों को ध्यान में रखते हुए, इस रणनीति को निम्नलिखित तरीकों से अनुकूलित किया जा सकता हैः
ALMA माध्य मानकों का अनुकूलन, प्रतिक्रिया संवेदनशीलता में सुधार।
विभिन्न लेनदेन गणना विधियों का प्रयास करें।
स्टॉप लॉस रणनीति को लागू करें और व्यक्तिगत नुकसान को सख्ती से नियंत्रित करें।
अन्य सूचकांकों के संयोजन के साथ एक समग्र व्यापार सिग्नल प्रणाली का निर्माण करना।
मशीन लर्निंग मॉड्यूल को जोड़ना और अधिक बुद्धिमान सिग्नल समायोजन प्राप्त करना।
इस प्रकार, यह एक और महत्वपूर्ण कदम है।
विभिन्न बाजारों के अनुसार स्थिति को समायोजित करने के लिए धन प्रबंधन रणनीति का अनुकूलन करना।
यह अध्ययन रणनीतियों को मजबूत करने और अति-अनुकूलता को रोकने के लिए किया गया है।
इस रणनीति के लिए समग्र रूप से, ALMA एल्गोरिथ्म और लेन-देन मात्रा सत्यापन के माध्यम से संकेत की गुणवत्ता और स्थिरता में वृद्धि हुई है, जबकि पारंपरिक समानांतर क्रॉसिंग रणनीतियों की तुलना में। लेकिन व्यापार रणनीति अनुकूलन एक सतत प्रक्रिया है, जो अभी भी जोखिम पर ध्यान देने की आवश्यकता है, रणनीति को कई आयामों से बढ़ाया जाता है ताकि यह अधिक जटिल बाजार वातावरण के अनुकूल हो सके।
/*backtest
start: 2022-09-16 00:00:00
end: 2023-09-22 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/
// © Sarahann999
// Calculations for TP/SL based off: https://kodify.net/tradingview/orders/percentage-profit/
//@version=5
strategy("ALMA Cross", overlay=true)
//User Inputs
src= (close)
long_entry = input(true, title='Long Entry')
short_entry = input(true, title='Short Entry')
//Fast Settings
ALMA1 = input(100, "ALMA Lenghth 1", group= "ALMA Fast Length Settings")
alma_offset = input.float(defval=0.85, title='Arnaud Legoux (ALMA) - Offset Value', minval=0, step=0.01)
alma_sigma = input.int(defval=6, title='Arnaud Legoux (ALMA) - Sigma Value', minval=0)
Alma1 = ta.alma(src, ALMA1, alma_offset, alma_sigma)
//Slow Settings
ALMA2 = input(120, "ALMA Length 2", group = "ALMA Slow Length Settings")
alma_offset2 = input.float(defval=0.85, title='Arnaud Legoux (ALMA) - Offset Value', minval=0, step=0.01)
alma_sigma2 = input.int(defval=6, title='Arnaud Legoux (ALMA) - Sigma Value', minval=0)
Alma2 = ta.alma(src, ALMA2, alma_offset2, alma_sigma2)
//Volume
var cumVol = 0.
cumVol += nz(volume)
if barstate.islast and cumVol == 0
runtime.error("No volume is provided by the data vendor.")
shortlen = input.int(5, minval=1, title = "Short Length", group= "Volume Settings")
longlen = input.int(10, minval=1, title = "Long Length")
short = ta.ema(volume, shortlen)
long = ta.ema(volume, longlen)
osc = 100 * (short - long) / long
//Define Cross Conditions
buy = ta.crossover(Alma1, Alma2)
sell = ta.crossunder(Alma1, Alma2)
//Calculate Take Profit Percentage
longProfitPerc = input.float(title="Long Take Profit", group='Take Profit Percentage',
minval=0.0, step=0.1, defval=2) / 100
shortProfitPerc = input.float(title="Short Take Profit",
minval=0.0, step=0.1, defval=2) / 100
// Figure out take profit price 1
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
// Make inputs that set the stop % 1
longStopPerc = input.float(title="Long Stop Loss", group='Stop Percentage',
minval=0.0, step=0.1, defval=2.5) / 100
shortStopPerc = input.float(title="Short Stop Loss",
minval=0.0, step=0.1, defval=2.5) / 100
// Figure Out Stop Price
longStopPrice = strategy.position_avg_price * (1 - longStopPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortStopPerc)
//Define Conditions
buySignal = buy and osc > 0
and strategy.position_size == 0
//sellSignal
sellSignal = sell and osc > 0
and strategy.position_size == 0
// Submit entry orders
if buySignal and long_entry
strategy.entry(id="Long", direction=strategy.long, alert_message="Enter Long")
alert(message="BUY Trade Entry Alert", freq=alert.freq_once_per_bar)
if sellSignal and short_entry
strategy.entry(id="Short", direction=strategy.short, alert_message="Enter Short")
alert(message="SELL Trade Entry Alert", freq=alert.freq_once_per_bar)
// Submit exit orders based on take profit price
if (strategy.position_size > 0)
strategy.exit(id="Long TP/SL", limit=longExitPrice, stop=longStopPrice, alert_message="Long Exit 1 at {{close}}")
if (strategy.position_size < 0)
strategy.exit(id="Short TP/SL", limit=shortExitPrice, stop=shortStopPrice, alert_message="Short Exit 1 at {{close}}")
//Draw
plot(Alma1,"Alma Fast", color=color.purple, style=plot.style_circles)
plot(Alma2,"Alma Slow", color=#acb5c2, style=plot.style_circles)