ডায়নামিক মুভিং এভারেজ রিট্র্যাকশন মার্টিন স্ট্র্যাটেজি

লেখক:চাওঝাং, তারিখ: ২০২৩-১১-২৪ 10:19:21
ট্যাগঃ

img

সারসংক্ষেপ

ডায়নামিক মুভিং এভারেজ রিট্র্যাকশন মার্টিন কৌশল একটি ঘন ঘন ট্রেডিং কৌশল যা প্রবেশ এবং প্রস্থান সংকেত তৈরি করতে চলমান গড় ক্রসওভার এবং পুলব্যাক সংকেতগুলিকে একত্রিত করে। কৌশলটি স্বল্পমেয়াদী প্রবণতা ক্যাপচার করতে 3 দিনের এবং 8 দিনের সহজ চলমান গড়ের ক্রসওভার এবং বিচ্যুতি ব্যবহার করে এবং ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ এবং লাভ গ্রহণ করে। এই কৌশলটি বিভিন্ন বাজারের অবস্থার অনুযায়ী ট্রেডিং দিক নির্বাচন করতে দেয়।

কৌশলগত যুক্তি

কৌশলটি 3-দিনের এবং 8-দিনের সহজ চলমান গড় এবং তাদের ক্রসওভার সংকেত ব্যবহার করে। যখন 3-দিনের এমএ 8-দিনের এমএ এর উপরে অতিক্রম করে তখন একটি দীর্ঘ সংকেত উত্পন্ন হয় এবং যখন 3-দিনের এমএ 8-দিনের এমএ এর নীচে অতিক্রম করে তখন একটি সংক্ষিপ্ত সংকেত উত্পন্ন হয়। দীর্ঘ সংকেতগুলি দীর্ঘ এন্ট্রি এবং সংক্ষিপ্ত সংকেতগুলি সংক্ষিপ্ত এন্ট্রি ট্রিগার করবে।

যদি কোনও অবস্থান না থাকে তবে কৌশলটি ক্রসওভার সংকেতগুলির ভিত্তিতে এন্ট্রি নির্ধারণ করবে। এন্ট্রি করার পরে, স্টপ লস মূল্য এবং লাভের মূল্য সর্বশেষ বন্ধের মূল্য, স্টপ লস শতাংশ এবং লাভের শতাংশের ভিত্তিতে গণনা করা হবে। উদাহরণস্বরূপ, যখন একটি দীর্ঘ অবস্থান ধরে রাখা হয়, স্টপ লস মূল্য হল সর্বশেষ বন্ধের মূল্য বিয়োগ স্টপ লস শতাংশ 8-দিনের এমএ দ্বারা গুণিত; লাভের মূল্য হল সর্বশেষ বন্ধের মূল্য প্লাস লাভের শতাংশ 8-দিনের এমএ দ্বারা গুণিত।

যদি একটি বিদ্যমান লং পজিশন থাকে, যখন মূল্য লাভ বা স্টপ লস ট্রিগার করে, যদি 8-দিনের এমএ এর একটি পলব্যাক সিগন্যাল ঘটে, পজিশনটি বন্ধ হয়ে যাবে। এই সময়ে, স্টপ লস মূল্য এবং লাভের মূল্য শূন্যে পুনরায় সেট করা হবে। শর্ট পজিশন পরিচালনার যুক্তি অনুরূপ।

কৌশলটি চার্টে প্রবেশ এবং প্রস্থান পয়েন্টগুলিও প্লট করে। উদাহরণস্বরূপ, একটি দীর্ঘ এন্ট্রি একটি উপরের ত্রিভুজ হিসাবে এবং একটি দীর্ঘ প্রস্থান একটি নীচের ত্রিভুজ হিসাবে প্লট করা হয়। এটি ভিজ্যুয়ালি এন্ট্রি এবং প্রস্থানগুলি বিচার করতে সহায়তা করে।

সুবিধা বিশ্লেষণ

এই কৌশলটির সুবিধাগুলো হল:

  1. চলমান গড় ক্রসওভার সংকেত ব্যবহার করে স্বল্পমেয়াদী প্রবণতা ক্যাপচার করে, ঘন ঘন ট্রেডিংয়ের অনুমতি দেয়।
  2. স্টপ লস মেকানিজম একক ক্ষতি নিয়ন্ত্রণ করতে পারে।
  3. মুনাফা গ্রহণের ব্যবস্থা আংশিক মুনাফা অর্জন করতে পারে।
  4. বিভিন্ন পর্যায়ে ট্রেডিংয়ের দিকনির্দেশনা নির্বাচন করা যেতে পারে।
  5. স্পষ্টতার জন্য চার্টে প্রবেশ এবং প্রস্থান পয়েন্টগুলি ভিজ্যুয়ালাইজ করে।

ঝুঁকি বিশ্লেষণ

এই কৌশলটির প্রধান ঝুঁকিগুলি হলঃ

  1. সংক্ষিপ্ত মেয়াদী এমএ কৌশলগুলি প্রায়শই চূর্ণ করা হয়।
  2. মুভিং মিডিয়ায় সিগন্যালের বিলম্বের সম্ভাবনা।
  3. ধারাবাহিক ক্ষতির ফলে ক্ষতি বাড়তে পারে।
  4. ভুলভাবে সেট করা স্টপ লস শতাংশ খুব লস বা খুব টাইট হতে পারে।

স্টপ লস শতাংশ যুক্তিসঙ্গতভাবে বাড়িয়ে, এমএ পরামিতিগুলি অনুকূল করে, অতিরিক্ত ফিল্টার শর্তাবলী প্রবর্তন করে ইত্যাদি ঝুঁকিগুলি হ্রাস করা যেতে পারে। এছাড়াও, ব্যক্তিগত সহনশীলতা সঠিকভাবে মূল্যায়ন করা এবং ওভারট্রেডিং এড়ানো গুরুত্বপূর্ণ।

অপ্টিমাইজেশান নির্দেশাবলী

এই কৌশল নিম্নলিখিত দিক থেকে অপ্টিমাইজ করা যেতে পারেঃ

  1. সর্বোত্তম পরামিতি খুঁজে পেতে আরো MA সমন্বয় পরীক্ষা করুন।
  2. সিগন্যালের গুণমান উন্নত করতে আরএসআই, কেডি ইত্যাদির মতো অন্যান্য সূচক যুক্ত করুন।
  3. বিভিন্ন পণ্য এবং সময়সীমা অনুযায়ী স্টপ লস শতাংশ সামঞ্জস্য করুন।
  4. স্থির পরিমাণ বা স্থির মূলধনের মতো পজিশনের আকার নিয়ন্ত্রণ যুক্ত করুন।
  5. এন্ট্রি অর্ডার নিয়ম যোগ করুন।
  6. স্টপ লস বা লাভের মাত্রা অপ্টিমাইজ করুন এবং মূল্যায়ন করুন।

সংক্ষিপ্তসার

ডায়নামিক মুভিং এভারেজ রিট্র্যাকশন মার্টিন কৌশল একটি স্বল্পমেয়াদী ট্রেডিং কৌশল। এটি চলমান গড় ক্রসওভার দ্বারা গঠিত স্বল্পমেয়াদী প্রবণতা ক্যাপচার করে এবং সঠিক স্টপ এবং লাভের সাথে ঝুঁকি পরিচালনা করে। ঘন ঘন ট্রেডিং প্রকৃতি এটি লাভের সুযোগ পাশাপাশি ঝুঁকি দেয়। প্যারামিটারগুলি অনুকূলিতকরণ, সংকেতগুলি ফিল্টার করা এবং ঝুঁকিগুলি নিয়ন্ত্রণ করে, এই কৌশলটি আরও নির্ভরযোগ্যতার জন্য আরও উন্নত করা যেতে পারে।


/*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)



আরো