মাল্টি-ইন্ডিকেটর EMA কৌশল


সৃষ্টির তারিখ: 2023-09-28 15:57:34 অবশেষে সংশোধন করুন: 2023-09-28 15:57:34
অনুলিপি: 1 ক্লিকের সংখ্যা: 509
1
ফোকাস
1235
অনুসারী

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি প্রথমে নিম্নলিখিত সূচকগুলি গণনা করেঃ

  • EMA: একটি নির্দিষ্ট সময়কালের ইন্ডেক্সাল মুভিং এভারেজ EMA

  • MACD: MACD সূচকটির DIF লাইন এবং DEA লাইন গণনা করুন।

  • Oscillator: একটি নির্দিষ্ট সময়ের জন্য বন্ধের মূল্য এবং খোলার মূল্যের মধ্যে পার্থক্য গণনা করা হয়।

  • RSI: একটি নির্দিষ্ট চক্রের তুলনামূলক শক্তিশালি সূচক।

  • Stochastic: একটি নির্দিষ্ট প্যারামিটারের জন্য K এবং D এর মান গণনা করা হয়।

  • Bollinger Bands: একটি নির্দিষ্ট সময়কালের জন্য একটি বোলিংয়ের উপরের, মধ্যম এবং নীচের ট্র্যাক।

তারপরে এই সূচকগুলির বর্তমান অবস্থার উপর ভিত্তি করে তাদের বিভিন্ন মান দেওয়া হয়। উদাহরণস্বরূপ, যখন স্টোক্যাস্টিক 20 এর চেয়ে কম হয় তখন মান 2 হয়; যখন আরএসআই 80 এর চেয়ে বড় হয় তখন মান -2 দেওয়া হয়।

এর পরে, সমস্ত সূচকের মান যোগ করা হয় এবং একটি সমন্বিত সংকেত ট্রিগার গণনা করা হয়। যদি ট্রিগারটি 7 এর চেয়ে বড় হয় তবে এটি একটি কেনার সংকেত দেয়; যদি ট্রিগারটি 7 এর চেয়ে কম হয় তবে এটি একটি বিক্রয় সংকেত দেয়।

একাধিক সূচকের সমন্বিত সংকেত গণনা করে, বর্তমান প্রবণতার দিকটি আরও সঠিকভাবে নির্ধারণ করা যায়, যার ফলে আরও নির্ভরযোগ্য ট্রেডিং সংকেত তৈরি হয়।

সামর্থ্য বিশ্লেষণ

এই মাল্টিমিটার কৌশলটির সবচেয়ে বড় সুবিধা হল এটি একাধিক সূচকের সুবিধাগুলিকে একত্রিত করতে পারে, যা একটি একক সূচকের দ্বারা সৃষ্ট ভুল সংকেত এড়াতে আরও সম্পূর্ণ এবং সঠিক বিচার করতে পারে।

বিশেষ করে, এই কৌশলটির সুবিধাগুলি নিম্নরূপঃ

  1. একাধিক সূচক সমন্বিতভাবে ব্যবহার করে ট্রেন্ডগুলি আরও নির্ভরযোগ্যভাবে বিচার করা যায়। একটি একক সূচক বিভ্রান্তিকর সংকেত তৈরি করতে পারে, একাধিক সূচক একে অপরকে যাচাই করতে পারে, ত্রুটি হ্রাস করতে পারে।

  2. সূচকের বিভিন্ন বৈশিষ্ট্য ব্যবহার করে, প্রবণতার বিভিন্ন পর্যায়ে সনাক্ত করুন। যেমন MACD প্রবণতা শুরু করতে পারে, আরএসআই সিদ্ধান্ত নিতে পারে যে এটি অতিরিক্ত গরম হয়েছে কিনা ইত্যাদি।

  3. বিভিন্ন প্যারামিটার সেট করা সূচকগুলি বিভিন্ন সময়কালের বৈশিষ্ট্যগুলি ক্যাপচার করতে পারে। যেমন দ্রুত-সময়কালীন ইএমএ এবং ধীর-সময়কালীন ইএমএ ইত্যাদি।

  4. প্রতিটি সূচকের ওজন কাস্টমাইজ করা যায়। আরো গুরুত্বপূর্ণ সূচকগুলির জন্য, তাদের উচ্চতর ওজন দেওয়া যেতে পারে।

  5. ব্যাকটেস্টের ফলাফলের উপর ভিত্তি করে, সূচক সমন্বয় এবং ওজন বরাদ্দকে অপ্টিমাইজ করা যায়, যার ফলে আরও ভাল কৌশলগত প্রভাব পাওয়া যায়।

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

যদিও এই কৌশলটি একাধিক সূচক ব্যবহার করে প্রবণতা নির্ণয় করে, তবুও নিম্নলিখিত ঝুঁকিগুলি রয়েছেঃ

  1. একাধিক সূচক সমন্বয় অনুপযুক্ত, প্রতিটি সূচক সুবিধা ব্যবহার করতে পারে না, বা বিচার সংঘাত সৃষ্টি করে। প্রতিটি সূচকের প্রযোজ্য পরিবেশ বোঝার প্রয়োজন।

  2. ওজন বন্টন অযৌক্তিক, প্রতিটি সূচকের গুরুত্বকে সঠিকভাবে প্রকাশ করা যায় না। পুনরাবৃত্ত পরীক্ষার মাধ্যমে ওজনকে অনুকূলিতকরণের প্রয়োজন রয়েছে।

  3. একক-চক্র প্যারামিটার সেটিংটি ভুল হতে পারে। একাধিক সময়-চক্র যাচাইকরণ ব্যবহার করুন।

  4. স্থির সূচক ওজনের এবং পরামিতি বাজারের পরিবর্তনের সাথে খাপ খাইয়ে নিতে পারে না, তাই একটি গতিশীল সমন্বয় ব্যবস্থা চালু করা প্রয়োজন।

  5. সূচক সংকেত বিলম্বিত হয়, অন্যান্য প্রযুক্তিগত পদ্ধতির সাথে মিলিত হয়ে ক্ষতির সময় নির্ধারণ করা উচিত।

  6. একাধিক সূচক সমন্বয় কৌশলগত জটিলতা বৃদ্ধি করে, পর্যাপ্ত ঐতিহাসিক তথ্য সমর্থন প্রয়োজন, এবং প্যারামিটার অপ্টিমাইজেশান আরো কঠিন।

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

এই কৌশলটি নিম্নলিখিত উপায়ে উন্নত করা যেতে পারেঃ

  1. আরও বেশি ধরণের সূচক পরীক্ষা করে বর্তমান বাজারের পরিস্থিতির প্রতি আরও বেশি সংবেদনশীল সূচক খুঁজে বের করুন।

  2. প্রতিটি সূচকের জন্য চক্রীয় প্যারামিটারগুলিকে অপ্টিমাইজ করা হয়েছে যাতে এটি বিভিন্ন স্তরের প্রবণতা বৈশিষ্ট্যগুলিকে ধরতে পারে।

  3. প্রতিটি সূচকের ওজন বন্টনকে অপ্টিমাইজ করুন যাতে এটি প্রতিটি সূচকের আপেক্ষিক গুরুত্বকে আরও সঠিকভাবে প্রকাশ করতে পারে।

  4. বাজারের পরিবর্তনের সাথে খাপ খাইয়ে নেওয়ার জন্য গতিশীল সমন্বয় ব্যবস্থা যোগ করা, রিয়েল-টাইম প্যারামিটার এবং ওজনের অপ্টিমাইজেশন করা।

  5. স্টপ লস স্ট্র্যাটেজির সাথে, যুক্তিসঙ্গত স্টপ লস পয়েন্ট সেট করুন, ক্ষতির ঝুঁকি হ্রাস করুন।

  6. একক চক্রের অপ্টিমাইজেশান এড়াতে একাধিক সময় চক্রের যাচাইকরণ যুক্ত করুন।

  7. ধাপে ধাপে অপ্টিমাইজেশান এবং সমন্বয় অপ্টিমাইজেশান পদ্ধতি ব্যবহার করে, সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন।

  8. আরও বুদ্ধিমানভাবে সূচকগুলির ভারসাম্য বজায় রাখার জন্য মেশিন লার্নিং এবং অন্যান্য উন্নত পদ্ধতি ব্যবহার করা হচ্ছে।

  9. ক্রয় ও বিক্রয় কৌশলকে অপ্টিমাইজ করুন, ট্রেডিং ট্র্যাকিং বজায় রাখুন এবং খুব ঘন ঘন লেনদেন এড়িয়ে চলুন।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 4h
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/
// © ally17

//@version=4
// strategy("ELIA MULTI STRATEGY",overlay=true,initial_capital=1000, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.00, default_qty_value=25)

//INPUT
start = timestamp(input(2021, "start year"), 1, 1, 00, 00)
end = timestamp(input(9999, "end year"), 1, 1, 00, 00)

emalen=input(80, title="Ema Len")
macdfast=input(12, title="Macd Fast Len")
macdslow=input(26, title="Macd Fast Len")
macdsig=input(12, title="Macd Signal Len")
occlen=input(15, title="Occ Len")

rsilen=input(2, title="Rsi Len")
stochklen=input(11, title="Stk K Len")
stochdlen=input(3, title="Stk D Len")
stochlen=input(3, title="Stk Smooth Len")
bblength = input(10, minval=1, title="BB Len")
mult = input(2.0, minval=0.001, maxval=50, title="BB Std Dev")

momlen=input(10, title="Mom Len")


//CALCOLI
var trigger = 0.0

var emavar = 0.0
var macdvar = 0.0
var occvar = 0.0

var rsivar = 0.0
var stochvar = 0.0
var bbvar = 0.0

var donvar =0.0

ema = ema(close,emalen)

[macdLine, signalLine, histLine] = macd(close, 12, 26, 9) // MACD

occ = ema(close,occlen) - ema(open,occlen)

rsi = rsi(close, rsilen) // RSI

stoch = sma(stoch(close, high, low, stochklen), stochlen) // Stoch

basis = sma(close, bblength)
dev = mult * stdev(close, bblength)
upper = basis + dev
lower = basis - dev

moment = mom(close, momlen) // Momentum

Obv = obv // OBV


//PLOT


//STRATEGIA
emavar := (close>ema)? 3 : -3
macdvar := (macdLine>signalLine)? 3 : -3
occvar := (occ>0)? 3 : -3

rsivar := (rsi<20)? 2 : (rsi>50 and rsi<80)? 1 : (rsi>80)? -2 : (rsi<50 and rsi>20)? -1 : 0
stochvar := (stoch<20)? 2 : (stoch>80)? -2 : 0
bbvar :=  (close<lower)? 2 : (close>upper)? -2 : 0

trigger := emavar+macdvar+occvar+rsivar+stochvar+bbvar

longcondition = trigger>=7
closelong = trigger<3

shortcondition = trigger<=-7
closeshort = trigger >-3

trendcolor = longcondition ? color.green : shortcondition? color.red : (trigger>3 and trigger<7)? #A2E1BF : (trigger<-3 and trigger>-7)? #E19997 : na
bgcolor(trendcolor, transp=80)


if time > start and time < end
    if longcondition
        strategy.entry("LONG", long=strategy.long)

if closelong
    strategy.close("LONG", comment="CLOSE LONG")
    
if time > start and time < end
    if shortcondition
        strategy.entry("SHORT", long=strategy.short)

if closeshort
    strategy.close("SHORT", comment="CLOSE SHORT")
    
//plotshape(longcondition, color=color.green, text="L", size=size.small, style=shape.triangledown)
//plotshape(shortcondition, color=color.red, "S"(trigger), size=size.small, style=shape.triangledown)
//plotshape(closelong, color=color.purple, text="LC", size=size.small, style=shape.triangledown)
//plotshape(closeshort, color=color.purple, text="SC", size=size.small, style=shape.triangledown)