ডায়নামিক মুভিং এভারেজ রিট্র্যাকশন মার্টিন কৌশল একটি ঘন ঘন ট্রেডিং কৌশল যা প্রবেশ এবং প্রস্থান সংকেত তৈরি করতে চলমান গড় ক্রসওভার এবং পুলব্যাক সংকেতগুলিকে একত্রিত করে। কৌশলটি স্বল্পমেয়াদী প্রবণতা ক্যাপচার করতে 3 দিনের এবং 8 দিনের সহজ চলমান গড়ের ক্রসওভার এবং বিচ্যুতি ব্যবহার করে এবং ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ এবং লাভ গ্রহণ করে। এই কৌশলটি বিভিন্ন বাজারের অবস্থার অনুযায়ী ট্রেডিং দিক নির্বাচন করতে দেয়।
কৌশলটি 3-দিনের এবং 8-দিনের সহজ চলমান গড় এবং তাদের ক্রসওভার সংকেত ব্যবহার করে। যখন 3-দিনের এমএ 8-দিনের এমএ এর উপরে অতিক্রম করে তখন একটি দীর্ঘ সংকেত উত্পন্ন হয় এবং যখন 3-দিনের এমএ 8-দিনের এমএ এর নীচে অতিক্রম করে তখন একটি সংক্ষিপ্ত সংকেত উত্পন্ন হয়। দীর্ঘ সংকেতগুলি দীর্ঘ এন্ট্রি এবং সংক্ষিপ্ত সংকেতগুলি সংক্ষিপ্ত এন্ট্রি ট্রিগার করবে।
যদি কোনও অবস্থান না থাকে তবে কৌশলটি ক্রসওভার সংকেতগুলির ভিত্তিতে এন্ট্রি নির্ধারণ করবে। এন্ট্রি করার পরে, স্টপ লস মূল্য এবং লাভের মূল্য সর্বশেষ বন্ধের মূল্য, স্টপ লস শতাংশ এবং লাভের শতাংশের ভিত্তিতে গণনা করা হবে। উদাহরণস্বরূপ, যখন একটি দীর্ঘ অবস্থান ধরে রাখা হয়, স্টপ লস মূল্য হল সর্বশেষ বন্ধের মূল্য বিয়োগ স্টপ লস শতাংশ 8-দিনের এমএ দ্বারা গুণিত; লাভের মূল্য হল সর্বশেষ বন্ধের মূল্য প্লাস লাভের শতাংশ 8-দিনের এমএ দ্বারা গুণিত।
যদি একটি বিদ্যমান লং পজিশন থাকে, যখন মূল্য লাভ বা স্টপ লস ট্রিগার করে, যদি 8-দিনের এমএ এর একটি পলব্যাক সিগন্যাল ঘটে, পজিশনটি বন্ধ হয়ে যাবে। এই সময়ে, স্টপ লস মূল্য এবং লাভের মূল্য শূন্যে পুনরায় সেট করা হবে। শর্ট পজিশন পরিচালনার যুক্তি অনুরূপ।
কৌশলটি চার্টে প্রবেশ এবং প্রস্থান পয়েন্টগুলিও প্লট করে। উদাহরণস্বরূপ, একটি দীর্ঘ এন্ট্রি একটি উপরের ত্রিভুজ হিসাবে এবং একটি দীর্ঘ প্রস্থান একটি নীচের ত্রিভুজ হিসাবে প্লট করা হয়। এটি ভিজ্যুয়ালি এন্ট্রি এবং প্রস্থানগুলি বিচার করতে সহায়তা করে।
এই কৌশলটির সুবিধাগুলো হল:
এই কৌশলটির প্রধান ঝুঁকিগুলি হলঃ
স্টপ লস শতাংশ যুক্তিসঙ্গতভাবে বাড়িয়ে, এমএ পরামিতিগুলি অনুকূল করে, অতিরিক্ত ফিল্টার শর্তাবলী প্রবর্তন করে ইত্যাদি ঝুঁকিগুলি হ্রাস করা যেতে পারে। এছাড়াও, ব্যক্তিগত সহনশীলতা সঠিকভাবে মূল্যায়ন করা এবং ওভারট্রেডিং এড়ানো গুরুত্বপূর্ণ।
এই কৌশল নিম্নলিখিত দিক থেকে অপ্টিমাইজ করা যেতে পারেঃ
ডায়নামিক মুভিং এভারেজ রিট্র্যাকশন মার্টিন কৌশল একটি স্বল্পমেয়াদী ট্রেডিং কৌশল। এটি চলমান গড় ক্রসওভার দ্বারা গঠিত স্বল্পমেয়াদী প্রবণতা ক্যাপচার করে এবং সঠিক স্টপ এবং লাভের সাথে ঝুঁকি পরিচালনা করে। ঘন ঘন ট্রেডিং প্রকৃতি এটি লাভের সুযোগ পাশাপাশি ঝুঁকি দেয়। প্যারামিটারগুলি অনুকূলিতকরণ, সংকেতগুলি ফিল্টার করা এবং ঝুঁকিগুলি নিয়ন্ত্রণ করে, এই কৌশলটি আরও নির্ভরযোগ্যতার জন্য আরও উন্নত করা যেতে পারে।
/*backtest start: 2022-11-17 00:00:00 end: 2023-11-23 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/ // © blackcat1402 //@version=5 strategy('[blackcat] L1 MartinGale Scalping Strategy', overlay=true, pyramiding = 5) // Define input variables takeProfit = input(1.03, title='Take Profit') stopLoss = input(0.95, title='Stop Loss') inputTradingMode = input.string(defval='Long', options=['Long', 'Short', 'BiDir'], title='Trading Mode') //The purpose of this rule is to forbid short entries, only long etries will be placed. The rule affects the following function: 'entry'. strategy.risk.allow_entry_in(inputTradingMode == 'Long' ? strategy.direction.long : inputTradingMode == 'Short' ? strategy.direction.short : strategy.direction.all) // Define strategy logic entryPrice = 0.0 stopPrice = 0.0 takeProfitPrice = 0.0 stopLossPrice = 0.0 // Define SMA crossover and crossunder signals sma3 = ta.sma(close, 3) sma8 = ta.sma(close, 8) plot(sma3, color=color.yellow) plot(sma8, color=color.fuchsia) crossoverSignal = ta.crossover(sma3, sma8) crossunderSignal = ta.crossunder(sma3, sma8) crossoverState = sma3 > sma8 crossunderState = sma3 < sma8 if strategy.position_size == 0 if crossoverState strategy.entry('Buy', strategy.long) entryPrice := close stopPrice := close - stopLoss * sma8[1] takeProfitPrice := close + takeProfit * sma8[1] stopLossPrice := stopPrice stopLossPrice if crossunderState strategy.entry('Sell', strategy.short) entryPrice := close stopPrice := close + stopLoss * sma8[1] takeProfitPrice := close - takeProfit * sma8[1] stopLossPrice := stopPrice stopLossPrice if strategy.position_size > 0 if (close > takeProfitPrice or close < stopLossPrice) and crossunderState strategy.close('Buy') entryPrice := 0.0 stopPrice := 0.0 takeProfitPrice := 0.0 stopLossPrice := 0.0 stopLossPrice else strategy.entry('Buy', strategy.long) entryPrice := close stopPrice := close - stopLoss * sma8[1] takeProfitPrice := close + takeProfit * sma8[1] stopLossPrice := stopPrice stopLossPrice if strategy.position_size < 0 if (close > takeProfitPrice or close < stopLossPrice) and crossoverState strategy.close('Sell') entryPrice := 0.0 stopPrice := 0.0 takeProfitPrice := 0.0 stopLossPrice := 0.0 stopLossPrice else strategy.entry('Sell', strategy.short) entryPrice := close stopPrice := close + stopLoss * sma8[1] takeProfitPrice := close - takeProfit * sma8[1] stopLossPrice := stopPrice stopLossPrice // Plot entry and exit points plotshape(strategy.position_size > 0 and crossoverSignal, 'Buy Entry', shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.small) plotshape(strategy.position_size > 0 and (close >= takeProfitPrice or close <= stopLossPrice), 'Buy Exit', shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.small) plotshape(strategy.position_size < 0 and crossunderSignal, 'Sell Entry', shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.small) plotshape(strategy.position_size < 0 and (close >= takeProfitPrice or close <= stopLossPrice), 'Sell Exit', shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.small)