
এই কৌশলটি দুটি ভিন্ন প্যারামিটার সেট করা চলমান গড়ের ক্রস-এর উপর ভিত্তি করে একটি কেনা এবং বিক্রি সংকেত দেয়। যখন একটি সংক্ষিপ্ত সময়ের চলমান গড় নীচের দিক থেকে দীর্ঘ সময়ের চলমান গড়কে ভেঙে দেয় তখন একটি কেনা সংকেত দেওয়া হয়; যখন একটি সংক্ষিপ্ত সময়ের চলমান গড় উপরে থেকে নীচের দিকে দীর্ঘ সময়ের চলমান গড়কে ভেঙে দেয় তখন একটি বিক্রয় সংকেত দেওয়া হয়।
এই কৌশলটি পাইন স্ক্রিপ্টিং ভাষা ব্যবহার করে লেখা হয়েছে। প্রথমে ইনপুট দ্বারা দুটি মুভিং এভারেজের ধরন, দৈর্ঘ্য এবং মূল্যের উত্স সংজ্ঞায়িত করা হয়, যথাক্রমে পি 1 এবং পি 2 নামে পরিচিত। যেখানে পি 1 সংক্ষিপ্ত সময়ের জন্য গড় এবং পি 2 দীর্ঘ সময়ের জন্য গড়।
ক্রসওভার এবং ক্রসউন্ডার ফাংশন দ্বারা দুটি সমরেখার ক্রস নির্ধারণ করুন। যখন p1 নীচের দিক থেকে p2 অতিক্রম করে, তখন একটি কেনার সংকেত দেওয়া হয়; যখন p1 উপরের দিক থেকে p2 অতিক্রম করে, তখন একটি বিক্রয় সংকেত দেওয়া হয়।
লেনদেনের জন্য, কৌশলটি strategy.entry ফাংশন দ্বারা সংকেত প্রেরণ করার সময় একটি মাল্টি-হেড বা খালি-হেড পজিশন স্থাপন করে। যদি shortOnly প্যারামিটারটি সক্ষম করা হয় তবে কেবলমাত্র লেনদেনের সংকেত বিক্রি হয়।
এই কৌশলটির সুবিধাগুলো হলঃ
এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ
গড় রেখার দৈর্ঘ্য সামঞ্জস্য করা, ফিল্টারিংয়ের শর্তগুলি প্রবর্তন করা ইত্যাদির মাধ্যমে অকার্যকর সংকেত হ্রাস করা যেতে পারে। এটি প্রবণতা সূচকগুলির সাথে মিলিত হয়ে বড় দালালের গতিবিধি নির্ধারণ করতে পারে।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
ভলিউম ওজনের গড় বা আদর্শ মূল্যকে মূল্যের উত্স হিসাবে প্রবর্তন করা, ক্রস সিগন্যালের নির্ভরযোগ্যতা বাড়ায়
ভ্যালিডেশন পিরিয়ড বাড়ান
ATR বন্ধের সাথে, বাজারের অস্থিরতার উপর ভিত্তি করে সর্বাধিক গ্রহণযোগ্য ক্ষতি নির্ধারণ করুন
সর্বোত্তম প্যারামিটার সমন্বয় খুঁজতে কার্ভ ফিট অপ্টিমাইজেশান প্যারামিটার ব্যবহার করুন
ট্রেডিং সিগন্যালগুলিকে শুধুমাত্র মহাচক্রীয় প্রবণতা অনুসারে বিবেচনা করা উচিত
এই দ্বৈত সমান্তরাল ক্রস কৌশলটি সামগ্রিকভাবে বোঝা এবং বাস্তবায়ন করা সহজ, দুটি সমান্তরাল ক্রস দ্বারা লেনদেনের সংকেত তৈরি করা হয়, যা অত্যন্ত কাস্টমাইজযোগ্য। তবে এটি অস্থিরতার পরিস্থিতিতে আরও বেশি অকার্যকর সংকেত তৈরি করতে পারে। প্যারামিটার অপ্টিমাইজেশন এবং নিয়ম অপ্টিমাইজেশনের মাধ্যমে ঝুঁকি হ্রাস করা যেতে পারে, যার অপ্টিমাইজেশনের জায়গা আরও বড় এবং আরও গবেষণা করার যোগ্য।
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-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/
// © RafaelPiccolo
//@version=4
strategy("Double MA Cross", overlay=true)
type1 = input("SMA", "MA Type 1", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"])
len1 = input(10, minval=1, title="Length 1")
src1 = input(close, "Source 1", type=input.source)
type2 = input("SMA", "MA Type 2", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"])
len2 = input(50, minval=2, title="Length 2")
src2 = input(close, "Source 2", type=input.source)
shortOnly = input(false, "Short only")
tema(src, len)=>
ema1 = ema(src, len)
ema2 = ema(ema1, len)
ema3 = ema(ema2, len)
return = 3 * (ema1 - ema2) + ema3
getPoint(type, len, src)=>
return = type == "SMA" ? sma(src, len) : type == "EMA" ? ema(src, len) : type == "WMA" ? wma(src, len) : type == "HMA" ? hma(src, len) : type == "VWMA" ? vwma(src, len) : type == "RMA" ? rma(src, len) : tema(src, len)
p1 = getPoint(type1, len1, src1)
p2 = getPoint(type2, len2, src2)
shortCondition = crossunder(p1, p2)
longCondition = crossover(p1, p2)
if (shortCondition)
strategy.entry("Short", strategy.short)
if (longCondition)
if (shortOnly)
strategy.close("Short")
else
strategy.entry("Long", strategy.long)
plot(p1, "MA 1", p1 < p2 ? color.red : color.green)
plot(p2, "MA 2", color.blue)