জিএম -8 এবং এডিএক্স ডুয়াল মুভিং এভারেজ কৌশল একটি পরিমাণগত ট্রেডিং কৌশল যা একাধিক প্রযুক্তিগত সূচককে একত্রিত করে। এটি সম্ভাব্য ক্রয় এবং বিক্রয় সংকেত সনাক্ত করতে জিএম -8 সূচক, এডিএক্স সূচক এবং একটি দ্বিতীয় ইএমএ সূচক ব্যবহার করে। জিএম -8 সূচকটি মূল্যের প্রবণতা নির্ধারণ করতে ব্যবহৃত হয়, এডিএক্স সূচকটি প্রবণতার শক্তি নিশ্চিত করতে ব্যবহৃত হয় এবং দ্বিতীয় ইএমএ সূচকটি প্রবণতার দিক নির্ধারণে সহায়তা করতে ব্যবহৃত হয়। যখন দাম জিএম -8 চলমান গড়টি ভেঙে যায় এবং এডিএক্স সূচকটি একটি প্রান্তিকের উপরে থাকে তখন ক্রয় এবং বিক্রয় সংকেত উত্পন্ন হয়। এই কৌশলটির সুবিধাটি একাধিক সূচকগুলির সংমিশ্রণে রয়েছে, যা সংকেতের নির্ভরযোগ্যতা উন্নত করে। তবে এটি মিথ্যা সংকেত এবং বিলম্বের মতো নির্দিষ্ট ঝুঁকিও বহন করে। কৌশল অপ্টিমাইজেশনের দিকগুলির মধ্যে প্যারামিটার অপ্টিমাইজেশন, স্টপ-লস
জিএম-৮ এবং এডিএক্স ডুয়াল মুভিং এভারেজ স্ট্র্যাটেজির মূলনীতি নিম্নরূপঃ
GM-8 & ADX ডুয়াল মুভিং এভারেজ কৌশল একটি ক্লাসিক পরিমাণগত ট্রেডিং কৌশল যা ক্রয় এবং বিক্রয় সংকেত সনাক্ত করার জন্য একাধিক প্রযুক্তিগত সূচককে একত্রিত করে। এই কৌশলটির সুবিধাগুলি এর সহজ এবং পরিষ্কার যুক্তি, তুলনামূলকভাবে নির্ভরযোগ্য সংকেত এবং শিক্ষানবিসদের শেখার এবং ব্যবহারের জন্য উপযুক্ততার মধ্যে রয়েছে। তবে এটি পিছনে থাকা প্রবণতা স্বীকৃতি, ঘন ঘন ট্রেডিং এবং পরামিতি নির্বাচনের অসুবিধা যেমন ঝুঁকি বহন করে। কৌশলটির কর্মক্ষমতা আরও বাড়ানোর জন্য, আরও ফিল্টারিং শর্ত প্রবর্তন, প্রবেশ এবং সময় নির্ধারণ, গতিশীলভাবে পরামিতিগুলি সামঞ্জস্য করা এবং অবস্থান পরিচালনা যুক্ত করার মতো অপ্টিমাইজেশন ব্যবস্থা বিবেচনা করা যেতে পারে। সামগ্রিকভাবে, GM-8 ADX ডুয়াল মুভিং এভারেজ কৌশল পরিমাণগত ট্রেডিংয়ের জন্য একটি ভাল মৌলিক কাঠামো সরবরাহ করে এবং অনুশীলনে ক্রমাগত পরিমার্জন এবং উন্নতির মূল্যবান।
/*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")