এই কৌশলটি বিভিন্ন সময়ের সাথে তিনটি এক্সপোনেন্সিয়াল চলমান গড় রেখা (ইএমএ) এর উপর ভিত্তি করে ট্রেডিং সিগন্যাল তৈরি করেঃ 5 দিনের সময়ের সাথে স্বল্পমেয়াদী ইএমএ, 8 দিনের সময়ের সাথে মাঝারি মেয়াদী ইএমএ এবং 13 দিনের সময়ের সাথে দীর্ঘমেয়াদী ইএমএ। যখন স্বল্পমেয়াদী ইএমএ মধ্যমেয়াদী এবং দীর্ঘমেয়াদী ইএমএ অতিক্রম করে তখন এটি দীর্ঘ হয় এবং যখন স্বল্পমেয়াদী ইএমএ মধ্যমেয়াদী এবং দীর্ঘমেয়াদী ইএমএগুলির নীচে অতিক্রম করে তখন এটি সংক্ষিপ্ত হয়।
এই কৌশলটি বিভিন্ন সময়ের ইএমএ গণনা করে বাজারের প্রবণতা বিচার করে। স্বল্পমেয়াদী ইএমএ সাম্প্রতিক কয়েক দিনের গড় মূল্যকে প্রতিফলিত করে যখন মাঝারি এবং দীর্ঘমেয়াদী ইএমএগুলি দীর্ঘ সময়ের মধ্যে গড় মূল্যকে প্রতিফলিত করে। মাঝারি এবং দীর্ঘমেয়াদী ইএমএগুলির উপর স্বল্পমেয়াদী ইএমএগুলির ক্রসওভার দামের ঊর্ধ্বমুখী ব্রেকওভারের সংকেত দেয়, তাই একটি দীর্ঘ অবস্থান নেওয়া হয়। বিপরীতভাবে, যখন স্বল্পমেয়াদী ইএমএ অন্য দুটি নীচে অতিক্রম করে, এটি একটি নিম্নমুখী মূল্য ব্রেকওভারের সংকেত দেয় তাই একটি শর্ট অবস্থান নেওয়া হয়।
বিশেষত, এই কৌশলটি একই সাথে 5 দিনের, 8 দিনের এবং 13 দিনের ইএমএ গণনা করে। এটি 5 দিনের ইএমএ 8 দিনের এবং 13 দিনের উপরে অতিক্রম করার সময় দীর্ঘ সংকেত উত্পন্ন করে; এটি 5 দিনের ইএমএ অন্য দুটির নীচে অতিক্রম করার সময় সংক্ষিপ্ত সংকেত উত্পন্ন করে। দীর্ঘ যাওয়ার পরে, 5 দিনের ইএমএ 13 দিনের ইএমএ এর নীচে আবার অতিক্রম করার পরে অবস্থানটি বন্ধ হয়ে যায়। একইভাবে শর্ট পজিশনের জন্য।
উন্নতির জন্য কিছু ধারণাঃ
এটি একটি সাধারণ ব্রেকআউট সিস্টেম যা সংক্ষিপ্ত, মাঝারি এবং দীর্ঘমেয়াদী ইএমএগুলির মধ্যে ক্রসওভারগুলির তুলনা করে প্রবণতা বিপরীতকে বিচার করে। এর সংকেতের সরলতা ব্যবসায়ের সহজতর করে তোলে, তবে ইএমএগুলির অন্তর্নিহিত বিলম্ব এবং অস্থায়ী সংশোধন থেকে বাস্তব প্রবণতা ফিল্টার করার অক্ষমতা থেকেও ভোগ করে। ভবিষ্যতের উন্নতিগুলি এটিকে অনুকূল করার জন্য অন্যান্য প্রযুক্তিগত সূচক বা অভিযোজনযোগ্য পরামিতি টিউনিংকে একীভূত করতে পারে।
/*backtest start: 2023-11-16 00:00:00 end: 2023-11-23 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © gregoirejohnb // @It is modified by ttsaadet. // Moving average crossover systems measure drift in the market. They are great strategies for time-limited people. // So, why don't more people use them? // // strategy(title="EMA Crossover Strategy", shorttitle="EMA-5-8-13 COS by TTS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.TRY,commission_type=strategy.commission.percent,commission_value=0.04, process_orders_on_close = true, initial_capital = 100000) // === GENERAL INPUTS === //strategy start date start_year = input(defval=2020, title="Backtest Start Year") // === LOGIC === short_period = input(type=input.integer,defval=5,minval=1,title="Length") mid_period = input(type=input.integer,defval=8,minval=1,title="Length") long_period = input(type=input.integer,defval=13,minval=1,title="Length") longOnly = input(type=input.bool,defval=false,title="Long Only") shortEma = ema(hl2,short_period) midEma = ema(hl2,mid_period) longEma = ema(hl2,long_period) plot(shortEma,linewidth=2,color=color.red,title="Fast") plot(midEma,linewidth=2,color=color.orange,title="Fast") plot(longEma,linewidth=2,color=color.blue,title="Slow") longEntry = ((shortEma > midEma) and crossover(shortEma,longEma)) or ((shortEma > longEma) and crossover(shortEma,midEma)) shortEntry =((shortEma < midEma) and crossunder(shortEma,longEma)) or ((shortEma < longEma) and crossunder(shortEma,midEma)) plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle") plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle") plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign") // === STRATEGY - LONG POSITION EXECUTION === enterLong() => longEntry exitLong() => crossunder(shortEma,longEma) strategy.entry(id="Long", long=strategy.long, when=enterLong()) strategy.close(id="Long", when=exitLong()) // === STRATEGY - SHORT POSITION EXECUTION === enterShort() => not longOnly and shortEntry exitShort() => crossover(shortEma,longEma) strategy.entry(id="Short", long=strategy.short, when=enterShort()) strategy.close(id="Short", when=exitShort())