
जीएम -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")