ইএমএ ক্রস কোয়ান্টিটেটিভ স্ট্র্যাটেজি

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

img

সারসংক্ষেপ

এই কৌশলটি ট্রেডিংয়ের জন্য দুটি এক্সপোনেন্সিয়াল মুভিং এভারেজ (ইএমএ) এর ক্রস সিগন্যালের উপর ভিত্তি করে। যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএর উপরে অতিক্রম করে, এটি একটি দীর্ঘ অবস্থান খোলে; যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএর নীচে অতিক্রম করে, এটি অবস্থানটি বন্ধ করে। কৌশলটি ঝুঁকি নিয়ন্ত্রণ এবং কৌশল কর্মক্ষমতা অপ্টিমাইজ করার জন্য একটি স্টপ-লস প্রক্রিয়া এবং একটি ট্রেডিং সময় ফিল্টার প্রবর্তন করে।

কৌশলগত নীতি

এই কৌশলটি প্রবণতা বিচারের ভিত্তি হিসাবে বিভিন্ন সময়কালের সাথে দুটি ইএমএ ব্যবহার করে। সহজ চলমান গড়ের (এসএমএ) তুলনায়, ইএমএগুলি দামের পরিবর্তনে আরও দ্রুত প্রতিক্রিয়া জানাতে পারে এবং আরও যুক্তিসঙ্গত ওজন বিতরণ করতে পারে। যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএ এর উপরে অতিক্রম করে, এটি নির্দেশ করে যে দামটি একটি ঊর্ধ্বমুখী প্রবণতা গঠন করতে পারে এবং একটি দীর্ঘ অবস্থান খোলা হয়; বিপরীতভাবে, যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়া ইএমএ এর নীচে অতিক্রম করে, এটি নির্দেশ করে যে ঊর্ধ্বমুখী প্রবণতা শেষ হতে পারে এবং অবস্থানটি বন্ধ হয়ে যায়।

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

উপরন্তু, কৌশলটি একটি ট্রেডিং সময় ফিল্টারও প্রবর্তন করে। ব্যবহারকারীরা নিজেরাই অনুমোদিত ট্রেডিংয়ের শুরু এবং শেষের সময়গুলি সেট করতে পারেন, এইভাবে নির্দিষ্ট সময়ের মধ্যে (যেমন ছুটির দিন, নন-ট্রেডিং ঘন্টা ইত্যাদি) ট্রেডিং এড়ানো যায়।

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

  1. সহজ এবং ব্যবহার করা সহজঃ কৌশল যুক্তি স্পষ্ট এবং ট্রেডিং সংকেত হিসাবে শুধুমাত্র দুটি EMA ব্যবহার করে, যা বোঝা এবং বাস্তবায়ন করা সহজ।

  2. প্রবণতা ট্র্যাকিংঃ ইএমএগুলি দ্রুত মূল্য পরিবর্তনের প্রতিক্রিয়া জানাতে পারে, যা কৌশলটিকে প্রবণতা গঠনের এবং সময়মতো শেষ করার অনুমতি দেয়, যার ফলে প্রবণতা ট্র্যাকিং মুনাফা অর্জন করে।

  3. ঝুঁকি নিয়ন্ত্রণঃ একটি নির্দিষ্ট শতাংশ স্টপ লস এবং পূর্ববর্তী মোমবাতি বন্ধের মূল্যের উপর ভিত্তি করে একটি স্টপ লস প্রবর্তন কার্যকরভাবে একক লেনদেনের ক্ষতি এবং ড্রডাউন নিয়ন্ত্রণ করতে পারে।

  4. নমনীয় পরামিতিঃ ব্যবহারকারীরা তাদের নিজস্ব প্রয়োজন অনুযায়ী ইএমএ সময়কাল, স্টপ-লস শতাংশ, স্টপ-লসের জন্য পূর্ববর্তী মোমবাতিটির বন্ধের মূল্য, ট্রেডিং সময়কাল ইত্যাদি ব্যবহার করতে পারেন, যার ফলে কৌশল কর্মক্ষমতা অনুকূলিত হয়।

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

  1. পরামিতি অপ্টিমাইজেশান ঝুঁকিঃ কৌশলটির কার্যকারিতা ইএমএ সময়কাল এবং স্টপ-লস শতাংশের মতো পরামিতিগুলির নির্বাচনের উপর নির্ভর করে এবং অনুপযুক্ত পরামিতিগুলি দুর্বল কৌশল কার্যকারিতার দিকে পরিচালিত করতে পারে। অতএব, সর্বোত্তম পরামিতিগুলি নির্বাচন করতে historicalতিহাসিক ডেটাতে পরামিতি অপ্টিমাইজেশন এবং ব্যাকটেস্টিং সম্পাদন করা প্রয়োজন।

  2. বাজার ঝুঁকিঃ কৌশলটি মূলত ট্রেন্ডিং বাজারে প্রযোজ্য। একটি অস্থির বাজার বা প্রবণতা বিপরীত, ঘন ঘন ট্রেডিং বড় ড্রাউনডাউন হতে পারে। অতএব, বাজারের অবস্থার অনুযায়ী কৌশল পরামিতিগুলি সামঞ্জস্য করা বা কৌশল ব্যবহার বন্ধ করা প্রয়োজন।

  3. খরচ ঝুঁকিঃ কৌশলটি বিপুল সংখ্যক লেনদেন তৈরি করতে পারে, যার ফলে লেনদেনের খরচ বৃদ্ধি পায়। অতএব, উপযুক্ত লেনদেনের লক্ষ্য এবং ভলিউম নির্বাচন করা এবং প্রতিটি লেনদেনের খরচ নিয়ন্ত্রণ করা প্রয়োজন।

অপ্টিমাইজেশান দিক

  1. আরো প্রযুক্তিগত সূচক প্রবর্তন করুনঃ EMA ক্রস সিগন্যালের ভিত্তিতে, অন্যান্য প্রযুক্তিগত সূচক যেমন RSI এবং MACD প্রবর্তন করুন যাতে মাল্টি-ফ্যাক্টর ট্রেডিং সিগন্যাল গঠন করা যায় এবং প্রবণতা মূল্যায়নের নির্ভুলতা উন্নত হয়।

  2. ডায়নামিক স্টপ লসঃ স্টপ লস পজিশনকে বাজারের অস্থিরতা এবং ATR এর মতো সূচক অনুযায়ী ডায়নামিকভাবে সামঞ্জস্য করুন, ঝুঁকি নিয়ন্ত্রণ করুন এবং যতটা সম্ভব স্টপ লস দ্বারা সৃষ্ট লাভের ক্ষতি হ্রাস করুন।

  3. পজিশন ম্যানেজমেন্টঃ বাজারের প্রবণতার শক্তি, চলমান গড় থেকে মূল্য বিচ্যুতির ডিগ্রি ইত্যাদি অনুযায়ী অবস্থান আকার গতিশীলভাবে সামঞ্জস্য করুন, প্রবণতা শক্তিশালী হলে অবস্থান বাড়ান এবং প্রবণতা দুর্বল হলে বা অস্পষ্ট হলে অবস্থান হ্রাস করুন।

  4. মেশিন লার্নিং অপ্টিমাইজেশানঃ কৌশল পরামিতিগুলি অনুকূল করতে এবং স্বয়ংক্রিয়ভাবে সর্বোত্তম পরামিতি সংমিশ্রণ নির্বাচন করতে, কৌশল রিটার্ন উন্নত করতে এবং ওভারফিটিং ঝুঁকি হ্রাস করতে মেশিন লার্নিং অ্যালগরিদম ব্যবহার করুন।

সিদ্ধান্ত

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


/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 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/
// © ZenAndTheArtOfTrading / www.PineScriptMastery.com
// @version=5
strategy("EMA strategy", 
     overlay=true, 
     initial_capital=50000,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, // 100% of balance invested on each trade
     commission_type=strategy.commission.cash_per_contract, 
     commission_value=0.005) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.ema(close, i_ma1)
ma2 = ta.ema(close, i_ma2)

// Check filter(s)
f_dateFilter = true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close < ma2 and strategy.position_size > 0 //and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)

আরো