
चलती औसत क्रॉस ट्रेडिंग रणनीति एक अधिक सामान्य मात्रात्मक ट्रेडिंग रणनीति है। यह रणनीति विभिन्न चक्रों की चलती औसत की गणना करके और उनके क्रॉसिंग के आधार पर एक ट्रेडिंग सिग्नल उत्पन्न करती है। विशेष रूप से, 4 चक्र, 8 चक्र और 20 चक्रों की सूचकांक चलती औसत की गणना करना (ईएमए) । जब एक अल्पकालिक ईएमए लंबी ईएमए को पार करता है, तो अधिक करें; जब एक अल्पकालिक ईएमए लंबी ईएमए को तोड़ता है, तो शून्य करें।
इस रणनीति का मूल तर्क हैः
इस पद्धति के माध्यम से, हम बाजार के संकेतों को अलग-अलग आवधिक औसत रेखाओं के बीच के क्रॉसिंग का उपयोग करके और सबसे लंबे समय तक आवधिक औसत रेखा की दिशा का उपयोग करके एक स्थिर व्यापारिक रणनीति बनाने के लिए गलत संकेतों को फ़िल्टर करते हैं।
इस रणनीति के कुछ प्रमुख फायदे हैं:
इस रणनीति के कुछ जोखिम भी हैं:
मुख्य समाधान हैंः
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
चक्र अनुकूलनः विभिन्न किस्मों के लिए इष्टतम एमए चक्र संयोजन निर्धारित करना
मॉडल एकीकरणः एलएसटीएम, आरएनएन और अन्य गहरी सीखने के मॉडल के साथ एकीकरण, अधिक अल्फा निकालें
पोर्टफोलियो अनुकूलनः अन्य सूचकांकों के साथ रणनीति पोर्टफोलियो का निर्माण
एक चलती औसत क्रॉसिंग रणनीति समग्र रूप से एक अधिक क्लासिक और आम तौर पर इस्तेमाल की जाने वाली मात्रात्मक व्यापार रणनीति है। यह रणनीति तर्क सरल, समझने में आसान और लागू करने के लिए, स्थिरता है। लेकिन वहाँ भी कुछ समस्याएं हैं, जैसे कि झूठे संकेत पैदा करने, बाजार में परिवर्तन के लिए अनुकूलन करने में असमर्थता आदि। इन समस्याओं को पैरामीटर अनुकूलन, स्टॉप लॉस अनुकूलन, मॉडल एकीकरण और अन्य तरीकों के माध्यम से सुधार किया जा सकता है। कुल मिलाकर, चलती औसत रणनीति रणनीति टूलबॉक्स में एक बुनियादी मॉड्यूल के रूप में काम कर सकती है, अन्य अधिक जटिल रणनीतियों के साथ संयोजन, एक मजबूत मिश्रित रणनीति बनाने के लिए।
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2.05)
//stock strategy
strategy(title = "stub", overlay = true)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true, commission_type=strategy.commission.percent,commission_value=.0,default_qty_value=10000)
testStartYear = input(1900, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12, "Backtest Start Month")
testEndDay = input(1, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testPeriod() => true
ema1 = ema(close,4)
ema2 = ema(close,8)
ema3 = ema(close,20)
go_long = ema1[0] > ema2[0] and ema3[0] > ema3[1]
exit_long = ema1[0] < ema2[0] or ema3[0] < ema3[1]
go_short = ema1[0] < ema2[0] and ema3[0] < ema3[1]
exit_short = ema1[0] > ema2[0] or ema3[0] > ema3[1]
if testPeriod()
strategy.entry("simpleBuy", strategy.long, when=go_long)
strategy.exit("simpleBuy", "simpleSell",when=exit_long)
strategy.entry("simpleSell", strategy.short,when=go_short)
strategy.exit("simpleSell", "simpleSell",when=exit_short)