
এই কৌশলটি সরল চলমান গড় এবং ওজনযুক্ত চলমান গড়ের ক্রসগুলির উপর ভিত্তি করে ট্রেডিং সিগন্যাল তৈরি করে এবং স্টপ লস এবং স্টপসকে একত্রিত করে পজিশন পরিচালনা করে। এই কৌশলটি গতিশীল উপাদানগুলিকে ((চলমান গড় ক্রস) এবং স্ট্যাটিক উপাদানগুলিকে ((স্থায়ী স্টপ লস স্টপ অনুপাত) একত্রিত করে, যা গতিশীল স্ট্যাটিক ইন্টিগ্রেশন অর্জন করে।
মূল যুক্তিটি হল দুটি ভিন্ন পিরিয়ডের চলমান গড় গণনা করা, একটি হল 9 দিনের সরল চলমান গড় এবং অন্যটি 21 দিনের ভারী চলমান গড়। যখন একটি ছোট পিরিয়ডের 9 দিনের সরল চলমান গড় দীর্ঘ পিরিয়ডের 21 দিনের ভারী চলমান গড় অতিক্রম করে, তখন একটি কেনার সংকেত উত্পন্ন হয়; যখন একটি ছোট পিরিয়ডের লাইন দীর্ঘ পিরিয়ডের লাইন অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
সিগন্যাল পাওয়ার পর, সেট করা স্টপ-স্টপ অনুপাত অনুযায়ী অর্ডার করুন। উদাহরণস্বরূপ, যদি স্টপ-স্টপ অনুপাত 5% সেট করা হয়, তাহলে স্টপ-স্টপ মূল্যটি প্রবেশের মূল্যের 95% হিসাবে সেট করা হয়। যদি স্টপ-স্টপ অনুপাত 5% হয়, তাহলে স্টপ-স্টপ মূল্যটি প্রবেশের মূল্যের 105% হিসাবে সেট করা হয়। এইভাবে গতিশীল ফ্যাক্টর (যখন একটি চলমান গড় ক্রস প্রবেশ এবং প্রস্থান নির্ধারণ করে) এবং স্ট্যাটিক ফ্যাক্টর (যখন একটি নির্দিষ্ট স্টপ-স্টপ অনুপাত) এর সংমিশ্রণ ঘটে।
এই কৌশলটি গতিশীল প্রযুক্তিগত সূচক এবং স্ট্যাটিক কৌশলগত প্যারামিটারগুলির সমন্বয় করে এবং গতিশীল সিস্টেমের সুবিধা রয়েছে। প্রযুক্তিগত সূচকগুলি বাজারের বৈশিষ্ট্যগুলিকে গতিশীলভাবে ক্যাপচার করতে সক্ষম, যা প্রবণতাকে বোঝার পক্ষে সহায়ক; এবং প্যারামিটার সেটিংগুলি স্থিতিশীল ঝুঁকি এবং রিটার্ন নিয়ন্ত্রণ সরবরাহ করে, যা পজিশন পরিচালনার এলোমেলোতা হ্রাস করতে সহায়ক।
খাঁটি গতিশীল সিস্টেমের তুলনায়, এই কৌশলটি পজিশন পরিচালনায় আরও স্থিতিশীল, অযৌক্তিক সিদ্ধান্তের প্রভাব হ্রাস করতে পারে। খাঁটি স্ট্যাটিক সিস্টেমের তুলনায়, এই কৌশলটির প্রবেশের বিকল্পগুলি আরও নমনীয় এবং বাজারের পরিবর্তনের সাথে খাপ খাইয়ে নিতে পারে। সুতরাং, এই কৌশলটি সামগ্রিকভাবে স্থিতিশীল এবং লাভজনক।
এই কৌশলটির ঝুঁকি মূলত দুটি দিক থেকে আসে। প্রথমত, চলমান গড়টি ভুল সংকেত তৈরির সম্ভাবনা রয়েছে। যখন বাজারটি ঝড়ের মধ্যে থাকে, তখন চলমান গড়গুলি প্রায়শই ক্রস করতে পারে, কৌশলটি বন্দী করে দেয়। দ্বিতীয়ত, স্থির স্টপ লস স্টপগুলি বিশেষ বাজার পরিস্থিতির সাথে খাপ খাইয়ে নেওয়ার অক্ষমতার ঝুঁকি রয়েছে। যখন হঠাৎ ঘটনাটি বাজারের ব্যাপক ওঠানামা সৃষ্টি করে, তখন পূর্বনির্ধারিত স্টপ লস অবস্থানটি ভেঙে যেতে পারে এবং ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করা যায় না।
প্রতিকারটি হল, একটি গুরুত্বপূর্ণ সময়কে এড়িয়ে চলা এবং ভুল সংকেতের সম্ভাবনা হ্রাস করা। প্রতিকারটি হ’ল বাজার ওঠানামা এবং বিশেষ ইভেন্টের উপর ভিত্তি করে একটি অভিযোজিত স্টপ লস অ্যালগরিদম চালু করা, যাতে বাজারকে সামঞ্জস্য করে স্টপ লস।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
বিভিন্ন প্যারামিটার সমন্বয় পরীক্ষা করে সেরা প্যারামিটার খুঁজুন;
এদিকে, সিগন্যালের কার্যকারিতার জন্য ফিল্টারিংয়ের প্রয়োজনীয়তা বাড়ানো হয়েছে।
বাজারের সাথে সংযুক্ত হওয়ার জন্য স্বনির্ধারিত স্টপ লস অ্যালগরিদম ব্যবহার করা;
অন্যান্য সূচকগুলির সাথে একত্রে শক্তিশালী বা দুর্বল প্রবণতা নির্ণয় করা এবং বাজারের অস্থিরতা এড়ানো;
মেশিন লার্নিং পদ্ধতি ব্যবহার করে প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করুন।
বিভিন্ন প্যারামিটার পরীক্ষা করে, ফিল্টার শর্ত যুক্ত করে, স্টপ লস স্টপকে উন্নত করে এবং ট্রেন্ডের বিচার করে কৌশলটির স্থিতিশীলতা এবং লাভের হার আরও বাড়ানো যেতে পারে।
এই কৌশলটি সফলভাবে গতিশীল সূচক এবং স্ট্যাটিক প্যারামিটারগুলিকে একত্রিত করে, নমনীয়তা এবং স্থিতিশীলতা উভয়ই। এই কৌশলটি সম্পূর্ণরূপে গতিশীল এবং সম্পূর্ণরূপে স্ট্যাটিক কৌশলগুলির তুলনায় সামগ্রিকভাবে ভাল পারফরম্যান্স করে। অবশ্যই, প্যারামিটার সমন্বয়, ফিল্টারিং শর্তাদি, স্বনির্ধারণ, মেশিন লার্নিং এবং অন্যান্য পদ্ধতির মাধ্যমে কৌশলটির কার্যকারিতা উন্নত করার জন্য এখনও অপ্টিমাইজ করার জায়গা রয়েছে।
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("WMA vs MMA Crossover Strategy with SL/TP", shorttitle="WMA_MMA_Cross_SL_TP", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Définition des périodes pour les moyennes mobiles
wmaLength = input.int(9, title="WMA Length")
mmaLength = input.int(21, title="MMA Length")
// Paramètres de Stop Loss et Take Profit en pourcentage
stopLossPercentage = input.float(5, title="Stop Loss (%)") / 100
takeProfitPercentage = input.float(5, title="Take Profit (%)") / 100
// Calcul des moyennes mobiles
wmaValue = ta.wma(close, wmaLength)
mmaValue = ta.sma(close, mmaLength)
// Conditions pour les signaux d'achat et de vente
buySignal = ta.crossover(wmaValue, mmaValue)
sellSignal = ta.crossunder(wmaValue, mmaValue)
// Génération des ordres en fonction des signaux
if buySignal
strategy.entry("Buy", strategy.long)
strategy.exit("Exit Buy", "Buy", stop=strategy.position_avg_price * (1 - stopLossPercentage), limit=strategy.position_avg_price * (1 + takeProfitPercentage))
if sellSignal
strategy.entry("Sell", strategy.short)
strategy.exit("Exit Sell", "Sell", stop=strategy.position_avg_price * (1 + stopLossPercentage), limit=strategy.position_avg_price * (1 - takeProfitPercentage))
// Affichage des moyennes mobiles sur le graphique
plot(wmaValue, color=color.blue, title="WMA")
plot(mmaValue, color=color.red, title="MMA")
// Affichage des signaux sur le graphique pour référence
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")