এক্সপোনেন্সিয়াল মুভিং এভারেজ (ইএমএ) বাউন্স কৌশল হল একটি কৌশল যা মুভিং এভারেজ লাইনের দামের অগ্রগতি ট্র্যাক করে। এটি পরীক্ষা করে যে মোমবাতিগুলি মুভিং এভারেজ লাইনের নীচে থেকে ফিরে আসে কিনা। যদি তা হয় তবে এটি একটি উত্থান সংকেত; যদি মোমবাতিটি মুভিং এভারেজ লাইনের উপরে থেকে নীচে ফিরে আসে তবে এটি একটি হ্রাস সংকেত।
এক্সপোনেন্সিয়াল মুভিং এভারেজ বাউন্স স্ট্র্যাটেজি
এই কৌশলটি এক্সপোনেন্সিয়াল মুভিং মিডিয়ার (ইএমএ) লাইনের উপর ভিত্তি করে। এটি রিয়েল টাইমে একটি ইএমএ লাইন গণনা করে। তারপরে এটি পরীক্ষা করে যে দামটি ইএমএ লাইন থেকে ফিরে আসে কিনাঃ
এই ধরনের রিবাউন্ড কৌশলটির জন্য প্রবেশের সংকেত।
ইএমএ রিবাউন্স কৌশলটি কেবলমাত্র মূল্য বিপরীতের বিষয়টি নিশ্চিত করার পরে প্রবেশ করে, যা প্রবণতার বিরুদ্ধে ট্রেডিং এবং ফাঁদে পড়া এড়ায়।
এক্সপোনেন্সিয়াল মুভিং মিডিয়ার ব্যবহার করে, কৌশলটি কার্যকরভাবে মূল্যের ডেটা মসৃণ করতে পারে এবং বাজারের গোলমাল ফিল্টার করতে পারে, যার ফলে ছোট ড্রাউনডাউন এবং ভাল historicalতিহাসিক রিটার্ন হয়।
ইএমএ বাউন্স কৌশলটি কেবল চলমান গড়ের উপর নির্ভর করে, যা নতুনদের জন্য সহজেই বোঝা যায়। এদিকে, বিভিন্ন পণ্যের সাথে খাপ খাইয়ে নেওয়ার জন্য ইএমএ সময়কাল নমনীয়ভাবে সামঞ্জস্য করা যায়।
ইএমএ লাইনের আশেপাশে প্রায়ই ঘন ভুয়া ব্রেকআউট থাকে, যা ভুল সংকেত সৃষ্টি করতে পারে। শব্দটি ফিল্টার করার জন্য ইএমএ পরামিতিগুলি সামঞ্জস্য করতে হবে।
কৌশলটি মূলত প্রবণতার সাথে সাথে ট্রেড করে। এটি মূল্যের টার্নিং পয়েন্টগুলি পূর্বাভাস দিতে অক্ষম এবং কেবল প্রবণতা অনুসরণ করতে পারে। এটি চক্রীয় সামঞ্জস্যের সময় সেরা প্রবেশের সুযোগটি মিস করতে পারে।
চলমান গড় রেখার কাছাকাছি স্টপ লস কখনও কখনও আঘাত পায়, যা বড় ক্ষতির দিকে পরিচালিত করে। এটি আরও নমনীয় স্টপ লস পদ্ধতির প্রয়োজন।
RSI এবং MACD এর মতো সূচকগুলি মূল্য বিপরীতের বিষয়টি নিশ্চিত করতে এবং মিথ্যা সংকেতগুলি ফিল্টার করতে যোগ করা যেতে পারে।
স্টপ লস পদ্ধতি যেমন টাইম স্টপ এবং ভোল্টেবিলিটি স্টপ ব্যবহার করা যেতে পারে।
সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে EMA সময়ের পরামিতি অপ্টিমাইজ করুন। বাজারের চক্রগুলি ট্র্যাক করার জন্য EMA পরামিতিগুলিকে গতিশীলও করা যেতে পারে।
ইএমএ বাউন্স কৌশল একটি সহজ এবং ব্যবহারিক প্রবণতা অনুসরণকারী কৌশল। এটিতে ছোট ড্রডাউন রয়েছে এবং এটি বোঝা সহজ। একই সাথে, এটিতে মিথ্যা সংকেত এবং বন্ধ হওয়ার কিছু ঝুঁকিও রয়েছে। আমরা এটিকে একটি স্থিতিশীল এবং নির্ভরযোগ্য পরিমাণগত কৌশল তৈরি করতে আরও ভাল সূচক সংমিশ্রণ, স্টপ লস পদ্ধতি এবং পরামিতি নির্বাচন ব্যবহার করে কৌশলটি অনুকূল করতে পারি।
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © tweakerID // Simple strategy that checks for price bounces over an Exponential Moving Average. If the CLOSE of the candle bounces // back from having it's LOW below the EMA, then it's a Bull Bounce. If the CLOSE of the candle bounces down from having it's // high above the EMA, then it's a Bear Bounce. This logic can be reverted. //@version=4 strategy("EMA Bounce", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04, calc_on_every_tick=false, slippage=0) direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1) strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long)) /////////////////////// STRATEGY INPUTS //////////////////////////////////////// title1=input(true, "-----------------Strategy Inputs-------------------") i_EMA=input(20, title="EMA Length") /////////////////////// BACKTESTER ///////////////////////////////////////////// title2=input(true, "-----------------General Inputs-------------------") // Backtester General Inputs i_SL=input(true, title="Use Swing Stop Loss and Take Profit") i_SPL=input(defval=10, title="Swing Point Loopback") i_PercIncrement=input(defval=.2, step=.1, title="Swing Point SL Perc Increment")*0.01 i_TPRRR = input(1.2, step=.1, title="Take Profit Risk Reward Ratio") // Bought and Sold Boolean Signal bought = strategy.position_size > strategy.position_size[1] or strategy.position_size < strategy.position_size[1] // Price Action Stop and Take Profit LL=(lowest(i_SPL))*(1-i_PercIncrement) HH=(highest(i_SPL))*(1+i_PercIncrement) LL_price = valuewhen(bought, LL, 0) HH_price = valuewhen(bought, HH, 0) entry_LL_price = strategy.position_size > 0 ? LL_price : na entry_HH_price = strategy.position_size < 0 ? HH_price : na tp=strategy.position_avg_price + (strategy.position_avg_price - entry_LL_price)*i_TPRRR stp=strategy.position_avg_price - (entry_HH_price - strategy.position_avg_price)*i_TPRRR /////////////////////// STRATEGY LOGIC ///////////////////////////////////////// EMA=ema(close, i_EMA) LowAboveEMA=low > EMA LowBelowEMA=low < EMA HighAboveEMA=high > EMA HighBelowEMA=high < EMA BullBounce=LowAboveEMA[1] and LowBelowEMA and close > EMA //and close > open BearBounce=HighBelowEMA[1] and HighAboveEMA and close < EMA //and close < open plot(EMA) BUY=BullBounce SELL=BearBounce //Inputs DPR=input(false, "Allow Direct Position Reverse") reverse=input(false, "Reverse Trades") // Entries if reverse if not DPR strategy.entry("long", strategy.long, when=SELL and strategy.position_size == 0) strategy.entry("short", strategy.short, when=BUY and strategy.position_size == 0) else strategy.entry("long", strategy.long, when=SELL) strategy.entry("short", strategy.short, when=BUY) else if not DPR strategy.entry("long", strategy.long, when=BUY and strategy.position_size == 0) strategy.entry("short", strategy.short, when=SELL and strategy.position_size == 0) else strategy.entry("long", strategy.long, when=BUY) strategy.entry("short", strategy.short, when=SELL) SL=entry_LL_price SSL=entry_HH_price TP=tp STP=stp strategy.exit("TP & SL", "long", limit=TP, stop=SL, when=i_SL) strategy.exit("TP & SL", "short", limit=STP, stop=SSL, when=i_SL) /////////////////////// PLOTS ////////////////////////////////////////////////// plot(strategy.position_size > 0 ? SL : na , title='SL', style=plot.style_cross, color=color.red) plot(strategy.position_size < 0 ? SSL : na , title='SSL', style=plot.style_cross, color=color.red) plot(strategy.position_size > 0 ? TP : na, title='TP', style=plot.style_cross, color=color.green) plot(strategy.position_size < 0 ? STP : na, title='STP', style=plot.style_cross, color=color.green) // Draw price action setup arrows plotshape(BUY ? 1 : na, style=shape.triangleup, location=location.belowbar, color=color.green, title="Bullish Setup", transp=80, size=size.auto) plotshape(SELL ? 1 : na, style=shape.triangledown, location=location.abovebar, color=color.red, title="Bearish Setup", transp=80, size=size.auto)