जीएम-8 और एडीएक्स डबल मूविंग एवरेज रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो कई तकनीकी संकेतकों को जोड़ती है। यह संभावित खरीद और बिक्री संकेतों की पहचान करने के लिए जीएम-8 संकेतक, एडीएक्स संकेतक और एक दूसरे ईएमए संकेतक का उपयोग करती है। जीएम-8 संकेतक का उपयोग मूल्य रुझानों को निर्धारित करने के लिए किया जाता है, एडीएक्स संकेतक का उपयोग प्रवृत्ति की ताकत की पुष्टि करने के लिए किया जाता है, और दूसरे ईएमए संकेतक का उपयोग प्रवृत्ति की दिशा निर्धारित करने में सहायता करने के लिए किया जाता है। खरीद और बिक्री संकेत तब उत्पन्न होते हैं जब कीमत जीएम-8 मूविंग एवरेज को तोड़ती है और एडीएक्स संकेतक एक सीमा से ऊपर होता है। इस रणनीति का लाभ कई संकेतकों के संयोजन में निहित है, जो संकेतों की विश्वसनीयता में सुधार करता है। हालांकि, इसमें कुछ जोखिम भी होते हैं, जैसे झूठे संकेत और लेग। रणनीति अनुकूलन दिशाओं में पैरामीटर अनुकूलन, स्टॉप-लॉस और लाभ-लेआउट आदि शामिल हैं। कुल मिलाकर, जीएम-8 और एडीएक्स डुअल
जीएम-8 और एडीएक्स दोहरी चलती औसत रणनीति का सिद्धांत इस प्रकार है:
जीएम-8 और एडीएक्स डबल मूविंग एवरेज रणनीति एक क्लासिक मात्रात्मक ट्रेडिंग रणनीति है जो खरीद और बिक्री संकेतों की पहचान करने के लिए कई तकनीकी संकेतकों को जोड़ती है। इस रणनीति के फायदे इसके सरल और स्पष्ट तर्क, अपेक्षाकृत विश्वसनीय संकेतों और शुरुआती लोगों के लिए सीखने और उपयोग करने के लिए उपयुक्तता में निहित हैं। हालांकि, इसमें पिछड़े रुझान पहचान, लगातार व्यापार और पैरामीटर चयन में कठिनाई जैसे जोखिम भी हैं। रणनीति के प्रदर्शन को और बढ़ाने के लिए, अधिक फ़िल्टरिंग स्थितियों को पेश करने, प्रवेश और निकास समय को अनुकूलित करने, गतिशील रूप से पैरामीटर समायोजित करने और स्थिति प्रबंधन को जोड़ने जैसे अनुकूलन उपायों पर विचार किया जा सकता है। कुल मिलाकर, जीएम-8 और एडीएक्स डबल मूविंग एवरेज रणनीति मात्रात्मक ट्रेडिंग के लिए एक अच्छा बुनियादी ढांचा प्रदान करती है और अभ्यास में निरंतर परिष्करण और सुधार के लायक है।
/*backtest start: 2023-04-24 00:00:00 end: 2024-04-29 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("GM-8 and ADX Strategy with Second EMA", overlay=true) // Input parameters gm_period = input(15, title="GM-15 Period") second_ema_period = input(59, title="Second EMA Period") adx_period = input(8, title="ADX Period") adx_threshold = input(34, title="ADX Threshold") lot_size = input.float(0.4, title="Lot Size") // Calculate the ADX manually adx(high, low, close, length) => sum_truerange = 0.0 sum_plusDM = 0.0 sum_minusDM = 0.0 for i = 1 to length truerange_calc = high[i] - low[i] truerange_prev_close = high[i] - close[i-1] truerange_close = low[i] - close[i-1] truerange_calc := truerange_prev_close > truerange_calc ? truerange_prev_close : truerange_calc truerange_calc := truerange_close > truerange_calc ? truerange_close : truerange_calc sum_truerange := sum_truerange + truerange_calc plusDM = high[i] - high[i-1] > low[i-1] - low[i] and high[i] - high[i-1] > 0 ? high[i] - high[i-1] : 0 sum_plusDM := sum_plusDM + plusDM minusDM = low[i-1] - low[i] > high[i] - high[i-1] and low[i-1] - low[i] > 0 ? low[i-1] - low[i] : 0 sum_minusDM := sum_minusDM + minusDM plusDI = sum_plusDM / sum_truerange * 100 minusDI = sum_minusDM / sum_truerange * 100 sumDI = plusDI + minusDI adx_value = 100 * (plusDI - minusDI) / (sumDI == 0 ? 1 : sumDI) // Calculate indicators gm_8 = ta.sma(close, gm_period) second_ema = ta.ema(close, second_ema_period) adx_value = adx(high, low, close, adx_period) // Define buy and sell conditions buy_condition = ta.crossover(close, gm_8) and close > gm_8 and close > second_ema and adx_value > adx_threshold sell_condition = ta.crossunder(close, gm_8) and close < gm_8 and close < second_ema and adx_value > adx_threshold // Entry and exit logic if (buy_condition) strategy.entry("Buy", strategy.long, qty=lot_size) if (sell_condition) strategy.entry("Sell", strategy.short, qty=lot_size) // Exit conditions exit_buy_condition = ta.crossunder(close, gm_8) and close < gm_8 exit_sell_condition = ta.crossover(close, gm_8) and close > gm_8 if (exit_buy_condition) strategy.close("Buy") if (exit_sell_condition) strategy.close("Sell")