চলমান গড় ক্রসওভার সিস্টেম

লেখক:চাওঝাং, তারিখঃ 2024-01-03 16:22:18
ট্যাগঃ

img

সারসংক্ষেপ

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

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

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

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

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

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

  1. যুক্তিটি সহজ এবং পরিষ্কার, সহজেই বোঝা এবং বাস্তবায়ন করা যায়, নতুনদের জন্য উপযুক্ত;
  2. ট্রেডিং ট্রেন্ডের সাথে সামঞ্জস্যপূর্ণ হয় না এবং অপ্রয়োজনীয় ক্ষতির কারণ হয় না।
  3. মুভিং মিডিয়ার একটি ফিল্টারিং এফেক্ট রয়েছে যা বাজারের গোলমাল দূর করে এবং মিথ্যা সংকেত এড়ায়;
  4. প্যারামিটার সেটিংস যুক্তিসঙ্গত যাতে খুব বেশি সংবেদনশীলতা না হয়।

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

এই কৌশলটির প্রধান ঝুঁকিগুলির মধ্যে রয়েছেঃ

  1. বাজারের সংহতকরণের সময় ঘন ঘন স্টপ লস অর্ডার প্রয়োগ করা যেতে পারে যখন চলমান গড় ক্রসওভার ঘন ঘন ঘটে;
  2. শক্তিশালী প্রবণতার সময় চলমান গড়ের পিছনের প্রকৃতির কারণে কিছু মুনাফা মিস করা;
  3. অনুপযুক্ত প্যারামিটার সেটিং স্থিতিশীলতা প্রভাবিত করতে পারে।

সমাধান:

  1. মুভিং মিডিয়ার সময়কাল সামঞ্জস্য করুন, ত্রিভুজ মুভিং মিডিয়ার ব্যবহার করুন ইত্যাদি কার্ভগুলি মসৃণ করতে এবং ক্রসওভার ফ্রিকোয়েন্সি হ্রাস করতে;
  2. প্রবণতা নির্ধারণের জন্য অন্যান্য সূচক ব্যবহার করুন, সংহতকরণের সময় ট্রেডিং এড়িয়ে চলুন;
  3. সেরা সমন্বয় খুঁজে পেতে প্যারামিটার অপ্টিমাইজ করুন.

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

কৌশলটি অপ্টিমাইজ করার জন্য প্রধান দিকগুলিঃ

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

সিদ্ধান্ত

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


/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
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/
// © gliese581d

//@version=4
strategy(title="Moving Averages Testing", overlay=true, precision=2, calc_on_every_tick=false, max_bars_back=5000, pyramiding=2,  
 default_qty_type=strategy.percent_of_equity, default_qty_value=50, commission_type=strategy.commission.percent, initial_capital=10000)


//SETTINGS

longs_on = input(title="Long Trades enabled", defval=true)
shorts_on = input(title="Short Trades enabled", defval=true)

long_cond = input(title="Buy/Long Crossover Condition", defval="price x MA1", options=["price x MA1", "price x MA2", "MA1 x MA2"])
short_cond = input(title="Sell/Short Crossunder Condition", defval="price x MA2", options=["price x MA1", "price x MA2", "MA1 x MA2"])

ma1_type = input(title="Moving Average 1 Type", defval="SMA", options=["SMA", "EMA"])
ma1_len = input(defval=20, title="Moving Average 1 Len", type=input.integer, minval=1, maxval=1000, step=1)
ma2_type = input(title="Moving Average 2 Type", defval="SMA", options=["SMA", "EMA"])
ma2_len = input(defval=30, title="Moving Average 2 Len", type=input.integer, minval=1, maxval=1000, step=1)


//MOVING AVERAGES

ma_1 = ma1_type == "EMA" ? ema(close, ma1_len) : sma(close, ma1_len)
ma_2 = ma2_type == "EMA" ? ema(close, ma2_len) : sma(close, ma2_len)


//STRATEGY

//trade entries
long_entry = long_cond == "price x MA1" ? crossover(close, ma_1) : long_cond == "price x MA2" ? crossover(close, ma_2) : long_cond == "MA1 x MA2" ? crossover(ma_1, ma_2) : false
short_entry = short_cond == "price x MA1" ? crossunder(close, ma_1) : short_cond == "price x MA2" ? crossunder(close, ma_2) : short_cond == "MA1 x MA2" ? crossunder(ma_1, ma_2) : false

start_month = input(defval=4, title="Strategy Start Month", type=input.integer, minval=1, maxval=12, step=1)
start_year = input(defval=2018, title="Strategy Start Year", type=input.integer, minval=2000, maxval=2025, step=1)
end_month = input(defval=12, title="Strategy End Month", type=input.integer, minval=1, maxval=12, step=1)
end_year = input(defval=2020, title="Strategy End Year", type=input.integer, minval=2000, maxval=2025, step=1)

in_time =true

strategy.entry("Long", strategy.long, when=longs_on and in_time and long_entry)
strategy.close("Long", when=longs_on and not shorts_on and short_entry)

strategy.entry("Short", strategy.short, when=shorts_on and in_time and short_entry)
strategy.close("Short", when=shorts_on and not longs_on and long_entry)


//PLOTTING

//color background
last_entry_was_long = nz(barssince(long_entry)[1], 5000) < nz(barssince(short_entry)[1], 5000)
bgcol = (longs_on and last_entry_was_long) ? color.green : (shorts_on and not last_entry_was_long) ? color.red : na
bgcolor(color=bgcol, transp=90)

plot((long_cond == "price x MA1" or long_cond == "MA1 x MA2") or (short_cond == "price x MA1" or short_cond == "MA1 x MA2") ? ma_1 : na, color=color.blue)
plot((long_cond == "price x MA2" or long_cond == "MA1 x MA2") or (short_cond == "price x MA2" or short_cond == "MA1 x MA2") ? ma_2 : na, color=color.black)
plotshape(long_entry, style=shape.triangleup, location=location.belowbar, color=color.green)
plotshape(short_entry, style=shape.triangledown, location=location.abovebar, color=color.red)

আরো