চলমান গড় ক্রসওভার কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৩-১১-২৩ 13:38:02
ট্যাগঃ

img

সারসংক্ষেপ

চলমান গড় ক্রসওভার কৌশল হল চলমান গড়ের উপর ভিত্তি করে একটি ট্রেডিং কৌশল। এটি একটি দ্রুত চলমান গড় এবং একটি ধীর চলমান গড় ক্রসওভারকে ক্রয় এবং বিক্রয় সংকেত হিসাবে ব্যবহার করে। যখন দ্রুত এমএ নীচে থেকে ধীর এমএ এর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন দ্রুত এমএ উপরে থেকে ধীর এমএ এর নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

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

কৌশলটি একটি নির্দিষ্ট সময়ের সহজ চলমান গড় গণনা করতে এসএমএ ফাংশন ব্যবহার করে যেমন দ্রুত এমএ এবং ধীর এমএ। ডিফল্ট দ্রুত এমএ সময়কাল 18 দিন, যা পরামিতিগুলির মাধ্যমে সামঞ্জস্য করা যেতে পারে।

যখন দ্রুত এমএ নীচে থেকে ধীর এমএ এর উপরে অতিক্রম করে, ক্রসওন্ডার ফাংশন ক্রসওভার সংকেত সনাক্ত করে এবং একটি ক্রয় সংকেত উত্পন্ন করে। যখন দ্রুত এমএ উপরে থেকে ধীর এমএ এর নীচে অতিক্রম করে, ক্রসওভার ফাংশন ক্রসওভার সংকেত সনাক্ত করে এবং একটি বিক্রয় সংকেত উত্পন্ন করে।

এই কৌশলটি ট্র্যাক সংকেত এবং প্রস্থান সংকেতগুলির মাধ্যমে স্বয়ংক্রিয় ট্রেডিং উপলব্ধি করে। দ্রুত এমএ ধীর এমএ এর উপরে অতিক্রম করলে লং এন্ট্রি ট্রিগার হয় এবং দ্রুত এমএ ধীর এমএ এর নীচে অতিক্রম করলে সংক্ষিপ্ত এন্ট্রি ট্রিগার হয়। সংশ্লিষ্ট প্রস্থান সংকেতগুলি বিপরীত ক্রসওভারেও উত্পন্ন হয়।

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

  • চলমান গড়গুলি কার্যকরভাবে প্রবণতা ট্র্যাক করার এবং মূল্য গতি ধরার ক্ষমতা রাখে
  • এমএ কৌশলগুলি সহজ এবং সোজা, বোঝা এবং বাস্তবায়ন করা সহজ
  • বিভিন্ন বাজারের পরিবেশের সাথে মানিয়ে নিতে প্যারামিটারগুলি অপ্টিমাইজ করা যেতে পারে
  • কৌশলটি ম্যানুয়াল হস্তক্ষেপ ছাড়াই ট্রেডিং স্বয়ংক্রিয় করে, ট্রেডিং খরচ হ্রাস করে

ঝুঁকি এবং সমাধান

  • দামের দোলগুলি একাধিক মিথ্যা সংকেত এবং উচ্চ ট্রেডিং ফ্রিকোয়েন্সির কারণ হতে পারে। অতিরিক্ত ফিল্টারগুলি এটি এড়াতে পারে।
  • প্যারামিটার অপ্টিমাইজেশান অত্যন্ত গুরুত্বপূর্ণ এবং কার্যকারিতা উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে। ব্যাকটেস্ট অপ্টিমাইজেশন এবং অভিযোজিত এমএ সাহায্য করতে পারে।
  • ট্রেডিং সিগন্যালগুলি ফিল্টার বা পরিপূরক করার জন্য অন্যান্য সূচকগুলি একত্রিত করা যেতে পারে।
  • স্টপ লস একক ট্রেড লস নিয়ন্ত্রণ করতে পারে।

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

  • আরও ভাল ট্র্যাকিংয়ের জন্য এমএ পরামিতিগুলিকে গতিশীলভাবে সামঞ্জস্য করতে অভিযোজিত চলমান গড় ব্যবহার করা যেতে পারে।
  • অতিরিক্ত ফিল্টার, যেমন ট্রেডিং ভলিউম, যখন প্রবণতা অস্পষ্ট হয় তখন মিথ্যা সংকেত এড়াতে পারে।
  • অন্যান্য সূচক যেমন বোলিঞ্জার ব্যান্ডগুলিকে ফিল্টার বা অতিরিক্ত শর্ত হিসাবে একত্রিত করা কৌশলটির কার্যকারিতা উন্নত করতে পারে।
  • স্টপ লস স্ট্র্যাটেজি গ্রহণযোগ্য মাত্রার মধ্যে একক ট্রেড ক্ষতি নিয়ন্ত্রণ করে।

সিদ্ধান্ত

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


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-17 04:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "MA Close Strategy", shorttitle = "MA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

MASource   = input(defval = open, title = "MA Source")
MaLength   = input(defval = 18, title = "MA Period", minval = 1)

StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")
stopLoss = input(50, title = "Stop loss percentage(0.1%)") 

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false

MA = sma(MASource,MaLength)

plot(MA, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)

long = crossunder(MA, close)
short = crossover(MA, close)

if (long)
    strategy.entry("LongId", strategy.long, when = long)
    strategy.exit("ExitLong", from_entry = "LongId", when = short)

if (short)
    strategy.entry("ShortId", strategy.short, when = short)
    strategy.exit("ExitShort", from_entry = "ShortId", when = long)

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)


আরো