এই কৌশলটি চলমান গড়ের সোনার ক্রস এবং মৃত্যুর ক্রসের উপর ভিত্তি করে ক্রয় এবং বিক্রয় সংকেত উত্পন্ন করে। বিশেষত, এটি একটি 5-দিনের এক্সপোনেনশিয়াল চলমান গড় (ইএমএ) এবং 34 দিনের ডাবল এক্সপোনেনশিয়াল চলমান গড় (ডিএমএ) ব্যবহার করে। যখন স্বল্পমেয়াদী 5-দিনের ইএমএ দীর্ঘমেয়াদী 34 দিনের ডিএমএর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন স্বল্পমেয়াদী 5-দিনের ইএমএ দীর্ঘমেয়াদী 34 দিনের ডিএমএর নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
এই কৌশলটি স্থিতিশীল পারফরম্যান্সের জন্য প্রবণতা অনুসরণকারী এবং চলমান গড় ক্রসওভার ফ্যাক্টর উভয়কেই একত্রিত করে। একটি প্রবণতা অনুসরণকারী সূচক হিসাবে চলমান গড়গুলি কার্যকরভাবে বাজারের প্রবণতা সনাক্ত করতে পারে; EMA এবং DEMA সংমিশ্রণ কার্যকরভাবে ট্রেডিং সংকেত উত্পন্ন করার জন্য মূল্যের ডেটা মসৃণ করতে পারে; স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী চলমান গড়গুলির মধ্যে ক্রসওভারগুলি বড় প্রবণতা পরিবর্তনের সময় প্রাথমিক ট্রেডিং সংকেত সরবরাহ করতে পারে।
চলমান গড় দৈর্ঘ্য সামঞ্জস্য করে, ট্রেডিংয়ের সময়গুলি অনুকূল করে এবং যুক্তিসঙ্গত স্টপ লস সেট করে এই ঝুঁকিগুলি হ্রাস করা যেতে পারে।
এই কৌশলটি ডাবল চলমান গড় ক্রসওভারের মাধ্যমে ট্রেডিং সংকেত উত্পন্ন করে, ট্রেন্ড অনুসরণ এবং ডেটা মসৃণকরণ কৌশলগুলির সাথে একত্রিত হয়। এটি একটি সহজ এবং ব্যবহারিক ট্রেন্ড অনুসরণ কৌশল। প্যারামিটার টিউনিং এবং লজিক পরিমার্জন মাধ্যমে, এটি বিভিন্ন পণ্য এবং সময়সীমার সাথে খাপ খাইয়ে নিতে পারে, বড় প্রবণতা পরিবর্তনগুলিতে প্রাথমিক সংকেত সরবরাহ করতে পারে এবং মিথ্যা সংকেতগুলি এড়াতে পারে। সুপারিশ এবং প্রয়োগের মূল্য।
/*backtest start: 2023-11-01 00:00:00 end: 2023-11-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] args: [["v_input_1",false]] */ //@version=2 strategy(title='[STRATEGY][RS]MicuRobert EMA cross V2', shorttitle='S', overlay=true) USE_TRADESESSION = input(title='Use Trading Session?', type=bool, defval=true) USE_TRAILINGSTOP = input(title='Use Trailing Stop?', type=bool, defval=true) trade_session = input(title='Trade Session:', defval='0400-1500', confirm=false) istradingsession = not USE_TRADESESSION ? false : not na(time('1', trade_session)) bgcolor(istradingsession?gray:na) trade_size = input(title='Trade Size:', type=float, defval=1) tp = input(title='Take profit in pips:', type=float, defval=55.0) * (syminfo.mintick*10) sl = input(title='Stop loss in pips:', type=float, defval=22.0) * (syminfo.mintick*10) ma_length00 = input(title='EMA length:', defval=5) ma_length01 = input(title='DEMA length:', defval=34) price = input(title='Price source:', defval=open) // ||--- NO LAG EMA, Credit LazyBear: ---|| f_LB_zlema(_src, _length)=> _ema1=ema(_src, _length) _ema2=ema(_ema1, _length) _d=_ema1-_ema2 _zlema=_ema1+_d // ||-------------------------------------|| ma00 = f_LB_zlema(price, ma_length00) ma01 = f_LB_zlema(price, ma_length01) plot(title='M0', series=ma00, color=black) plot(title='M1', series=ma01, color=black) isnewbuy = change(strategy.position_size)>0 and change(strategy.opentrades)>0 isnewsel = change(strategy.position_size)<0 and change(strategy.opentrades)>0 buy_entry_price = isnewbuy ? price : buy_entry_price[1] sel_entry_price = isnewsel ? price : sel_entry_price[1] plot(title='BE', series=buy_entry_price, style=circles, color=strategy.position_size <= 0 ? na : aqua) plot(title='SE', series=sel_entry_price, style=circles, color=strategy.position_size >= 0 ? na : aqua) buy_appex = na(buy_appex[1]) ? price : isnewbuy ? high : high >= buy_appex[1] ? high : buy_appex[1] sel_appex = na(sel_appex[1]) ? price : isnewsel ? low : low <= sel_appex[1] ? low : sel_appex[1] plot(title='BA', series=buy_appex, style=circles, color=strategy.position_size <= 0 ? na : teal) plot(title='SA', series=sel_appex, style=circles, color=strategy.position_size >= 0 ? na : teal) buy_ts = buy_appex - sl sel_ts = sel_appex + sl plot(title='Bts', series=buy_ts, style=circles, color=strategy.position_size <= 0 ? na : red) plot(title='Sts', series=sel_ts, style=circles, color=strategy.position_size >= 0 ? na : red) buy_cond1 = crossover(ma00, ma01) and (USE_TRADESESSION ? istradingsession : true) buy_cond0 = crossover(price, ma00) and ma00 > ma01 and (USE_TRADESESSION ? istradingsession : true) buy_entry = buy_cond1 or buy_cond0 buy_close = (not USE_TRAILINGSTOP ? low <= buy_entry_price - sl: low <= buy_ts) or high>=buy_entry_price+tp//high>=last_traded_price + tp or low<=last_traded_price - sl //high >= hh or sel_cond1 = crossunder(ma00, ma01) and (USE_TRADESESSION ? istradingsession : true) sel_cond0 = crossunder(price, ma00) and ma00 < ma01 and (USE_TRADESESSION ? istradingsession : true) sel_entry = sel_cond1 or sel_cond0 sel_close = (not USE_TRAILINGSTOP ? high >= sel_entry_price + sl : high >= sel_ts) or low<=sel_entry_price-tp//low<=last_traded_price - tp or high>=last_traded_price + sl //low <= ll or strategy.entry('buy', long=strategy.long, qty=trade_size, comment='buy', when=buy_entry) strategy.close('buy', when=buy_close) strategy.entry('sell', long=strategy.short, qty=trade_size, comment='sell', when=sel_entry) strategy.close('sell', when=sel_close)