এই কৌশলটি ট্রেডিং ট্র্যাকিংয়ের জন্য বাজারের প্রবণতার দিকনির্দেশ নির্ধারণের জন্য SMA এবং EMA চলমান গড়ের দুটি গ্রুপের মধ্যে ক্রসওভার গণনা করে।
এটি একটি দ্রুত এবং একটি ধীর চলমান গড় জোড়া ব্যবহার করে। যখন দ্রুত লাইন ধীর লাইনের উপরে অতিক্রম করে তখন এটি দীর্ঘ হয় এবং নেমে যাওয়া ক্রসওভারে শর্ট হয়। যখন দাম ধীর লাইনের নীচে ফিরে আসে বা দ্রুত লাইনের উপরে উঠে যায় তখন প্রস্থান ঘটে। এমএ দৈর্ঘ্যের কাস্টমাইজেশন, বারড বন্ধ ইত্যাদি প্যারামিটার অপ্টিমাইজেশনের অনুমতি দেয়।
এই দ্বৈত এমএ কৌশলটির সুবিধা হ'ল দুটি গতিশীল এমএ-র উপর ভিত্তি করে সহজ এবং পরিষ্কার নিয়ম। ইএমএ ব্যবহার করে বিপরীতমুখীতা ক্যাপচার করার ক্ষেত্রে আরও সংবেদনশীলতা সরবরাহ করে। তবে রেঞ্জ-বান্ধব বাজারের সময়ও উইপসগুলি সহজেই ঘটে।
সাধারণভাবে, দ্বৈত এমএ ক্রসওভার ট্র্যাকিং কৌশলটি গতির দিকে ট্রেডিংয়ের জন্য ট্রেন্ডিং মার্কেটের জন্য উপযুক্ত। তবে সঠিক প্যারামিটার টিউনিং, কঠোর স্টপ লস এবং পজিশন সাইজিং এই কৌশলটির দীর্ঘমেয়াদী স্থিতিশীলতার জন্য গুরুত্বপূর্ণ।
/*backtest start: 2023-08-11 00:00:00 end: 2023-09-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // strategy("Moving Average Strategy of BiznesFilosof", shorttitle="MAS of BiznesFilosof", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.15, pyramiding=0) //Period startY = input(title="Start Year", defval = 2011) startM = input(title="Start Month", defval = 1, minval = 1, maxval = 12) startD = input(title="Start Day", defval = 1, minval = 1, maxval = 31) finishY = input(title="Finish Year", defval = 2050) finishM = input(title="Finish Month", defval = 12, minval = 1, maxval = 12) finishD = input(title="Finish Day", defval = 31, minval = 1, maxval = 31) //finish = input(2019, 02, 28, 00, 00) timestart = timestamp(startY, startM, startD, 00, 00) timefinish = timestamp(finishY, finishM, finishD, 23, 59) window = time >= timestart and time <= timefinish ? true : false // Lenghth strategy lma1 = input(title="Length MA1", defval = 21, minval=1) exponential1 = input(false, title="exponential") lma2 = input(title="Length MA2", defval = 1, minval=1) exponential2 = input(false, title="exponential") lbars = input(title="Length bars close", defval = 0, minval=0) ma1 = exponential1 ? ema(close, lma1) : sma(close, lma1) ma2 = exponential2 ? ema(close, lma2) : sma(close, lma2) //source = close source = ma2 //open strategy.entry("LongEntryID", strategy.long, comment="LONG", when = crossover(ma2, ma1) and window) strategy.entry("ShortEntryID", strategy.short, comment="SHORT", when = crossunder(ma2, ma1) and window) if crossunder(source, ma1) and strategy.position_size > 0 strategy.close_all() if crossunder(ma2[lbars], ma1[lbars]) and strategy.position_size > 0 and lbars != 0 strategy.close_all() if crossover(source, ma1) and strategy.position_size < 0 strategy.close_all() if crossover(ma2[lbars], ma1[lbars]) and strategy.position_size < 0 and lbars != 0 strategy.close_all() src = close src1 = high src2 = low maH = exponential1 ? ema(src1, lma1) : sma(src1, lma1) maL = exponential1 ? ema(src2, lma1) : sma(src2, lma1) maColor = src>maH ? green : src<maL ? red : blue plot(ma1, title="MA1", color=maColor, linewidth=2, style=line) plot(ma2, title="MA2", color=gray, linewidth=1, style=line)