এই কৌশলটি একটি সাধারণ চলমান গড় ক্রসওভার কৌশল যা চলমান গড়ের দুটি সেট ব্যবহার করে, একটি দ্রুত এবং একটি ধীর। যখন দ্রুত চলমান গড় ধীর চলমান গড়ের উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন দ্রুত ধীরের নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়। কৌশলটি চলমান গড়ের জন্য ইএমএ এবং এসএমএ উভয়ই ব্যবহার করে, ইএমএগুলি দ্রুত লাইন এবং এসএমএগুলি ধীর লাইন হিসাবে। একাধিক চলমান গড় ব্যবহার করে মিথ্যা সংকেতগুলি ফিল্টার করতে এবং নির্ভরযোগ্যতা উন্নত করতে সহায়তা করতে পারে।
মূল যুক্তিটি প্রবেশ এবং প্রস্থান নির্ধারণের জন্য দ্রুত এবং ধীর গতির গড় রেখাগুলির মধ্যে ক্রসওভারে নির্ভর করে।
বিশেষ করে, দ্রুত এবং ধীর গতির গড়ের দুটি সেট গণনা করা হয়ঃ
তারপর দ্রুত EMAs এবং ধীর SMAs মধ্যে ক্রসওভার চেক করা হয়ঃ
মিথ্যা সংকেত ফিল্টার করার জন্য, নিশ্চিতকরণের জন্য একটি দ্বিতীয় EMA/SMA ক্রসওভার প্রয়োজনঃ
দুটি দ্রুত / ধীর এমএ ক্রসওভারের প্রয়োজন হওয়ায় অনেকগুলি মিথ্যা সংকেত ফিল্টার করা যায় এবং নির্ভরযোগ্যতা উন্নত করা যায়।
যখন সিগন্যাল ট্রিগার কিনবেন, তখন লম্বা যান। যখন সিগন্যাল ট্রিগার বিক্রি করবেন, তখন শর্ট যান।
এই কৌশলটি একটি পজিশনে প্রবেশের মূল্য থেকে ইনপুট শতাংশের ভিত্তিতে লাভ গ্রহণ এবং স্টপ লসও নির্ধারণ করে।
এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ
কৌশলটির ঝুঁকিঃ
ঝুঁকি নিয়ন্ত্রণের জন্যঃ
কৌশলটি নিম্নলিখিতগুলির মাধ্যমে আরও অনুকূলিত করা যেতে পারেঃ
সংক্ষেপে, দ্বৈত এমএ ক্রসওভার কৌশলটি দ্রুত / ধীর এমএ ক্রসগুলির সাথে সংকেত উত্পন্ন করে, ঝুঁকি নিয়ন্ত্রণের জন্য লাভ গ্রহণ এবং স্টপ লস সেট করে এবং এটি সহজ, স্বজ্ঞাত এবং বাস্তবায়ন করা সহজ। আরও ভাল পারফরম্যান্সের জন্য পরামিতিগুলি টিউন এবং অন্যান্য সূচকগুলির সাথে একত্রিত করা যেতে পারে। এটি পরিমাণগত ট্রেডিংয়ে দুর্দান্ত উপযোগী।
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 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/ // © JMLSlop //@version=4 src = close strategy("Crossover moving averages", shorttitle="Cross MA-EMA", overlay=true, calc_on_order_fills=false) // first fast EMA len = input(8, "Length", type=input.integer, minval=1) doma1 = input(true, title="EMA") out1 = ema(src, len) //Second fast EMA len2 = input(21, minval=1, title="Length") doma2 = input(true, title="EMA") out2 = ema(src, len2) //First slow MA len3 = input(50, minval=1, title="Length") doma3 = input(true, title="SMA") out3 = sma(src, len3) //Second slow MA len4 = input(200, minval=1, title="Length") doma4 = input(true, title="SMA") out4 = sma(src, len4) // Profit profit = input(8, "Profit/lost %", type=input.float, minval=1) * 0.01 plot(doma1 and out1 ? out1: na, color=color.blue, linewidth=1, title="1st EMA") plot(doma2 and out2 ? out2: na, color=color.red, linewidth=1, title="2nd EMA") plot(doma3 and out3 ? out3: na, color=color.green, linewidth=2, title="1st MA") plot(doma4 and out4 ? out4: na, color=color.orange, linewidth=3, title="2nd MA") // Orders config takeProfitPrice = (strategy.position_size > 0) ? strategy.position_avg_price + open*profit : (strategy.position_size < 0) ? strategy.position_avg_price - (open*profit) : na longStopPrice = strategy.position_avg_price * (1 - profit) shortStopPrice = strategy.position_avg_price * (1 + profit) longCondition2 = (out2>out3 and (crossover(out1, out4) or crossover(out1[1], out4[1]) or crossover(out1[2], out4[2]) or (crossover(out1[3], out4[3]))) or (out2>out3 and (crossover(out1, out3) or crossover(out1[1], out3[1]) or crossover(out1[2], out3[2]) or crossover(out1[3], out3[3])))) if (longCondition2) strategy.entry("Enter L", strategy.long) shortCondition2 = (out2<out3 and (crossunder(out1, out4) or crossunder(out1[1], out4[1]) or crossunder(out1[2], out4[2]) or crossunder(out1[3], out4[3]))) or (out2<out3 and (crossunder(out1, out3) or crossunder(out1[1], out3[1]) or crossunder(out1[2], out3[2]) or crossunder(out1[3], out3[3]))) if (shortCondition2) strategy.entry("Enter S", strategy.short) if (strategy.position_size > 0) strategy.exit("Exit L", limit=takeProfitPrice, stop=longStopPrice) if (strategy.position_size < 0) strategy.exit("Exit S", limit=takeProfitPrice, stop=shortStopPrice)