
এই কৌশলটি একটি সাধারণ চলমান গড় ক্রস লাইন কৌশল, যা একই সাথে দুটি গ্রুপ গড় লাইন, একটি দ্রুত গড় লাইন এবং একটি ধীর গড় লাইন ব্যবহার করে। এটি একটি ক্রয় সংকেত উত্পন্ন করে যখন এটি ধীর গড় লাইন অতিক্রম করে এবং এটি একটি বিক্রয় সংকেত উত্পন্ন করে যখন এটি ধীর গড় লাইন অতিক্রম করে। এই কৌশলটি EMA এবং SMA উভয়ই ব্যবহার করে, যা দুটি দ্রুত এবং ধীর গড় লাইন তৈরি করে, যা 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)