ডাবল EMA গোল্ডেন ক্রস এবং ডেড ক্রস ট্রেন্ড অনুসরণ কৌশল


সৃষ্টির তারিখ: 2024-02-29 11:45:42 অবশেষে সংশোধন করুন: 2024-02-29 11:45:42
অনুলিপি: 0 ক্লিকের সংখ্যা: 644
1
ফোকাস
1617
অনুসারী

ডাবল EMA গোল্ডেন ক্রস এবং ডেড ক্রস ট্রেন্ড অনুসরণ কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটির কেন্দ্রীয় সূচক হল দুটি গ্রুপ EMA, যার মধ্যে একটি দীর্ঘমেয়াদী EMA1 এবং একটি সংক্ষিপ্ত মেয়াদী EMA2 রয়েছে। EMA1 প্যারামিটারটি 21 এবং EMA2 প্যারামিটারটি 10। কৌশলটি 4 ঘন্টা লাইনে বেস পিরিয়ড হিসাবে এই দুটি গ্রুপ EMA গণনা করে।

যখন সংক্ষিপ্ত সময়ের EMA2 দীর্ঘ সময়ের EMA1 অতিক্রম করে, একটি ক্রয় সংকেত উত্পন্ন হয়। এটি দামের স্বল্পমেয়াদী প্রবণতা শক্তিশালী হয়ে ওঠে এবং একটি উত্থান শুরু হয়। যখন সংক্ষিপ্ত সময়ের EMA2 দীর্ঘ সময়ের EMA1 অতিক্রম করে, একটি বিক্রয় সংকেত উত্পন্ন হয়। এটি বোঝায় যে দামের স্বল্পমেয়াদী উত্থান প্রবণতা বিরতি দেওয়া হয় এবং একটি পতন শুরু হয়।

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

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

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

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

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

এই ঝুঁকিগুলি নিম্নলিখিত উপায়ে নিয়ন্ত্রণ করা যেতে পারেঃ

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

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

এই কৌশলটি আরও উন্নত করার সুযোগ রয়েছেঃ

  1. মডেলের পোর্টফোলিও বাড়ানো। কৌশলটির স্থায়িত্ব বাড়ানোর জন্য বিভিন্ন প্যারামিটার সূচকগুলির আরও একটি সংমিশ্রণ তৈরি করা যেতে পারে।

  2. অতিরিক্ত ক্ষতির ব্যবস্থাপনা যুক্তিসঙ্গত ক্ষতির থামার পয়েন্ট নির্ধারণ করুন, যা কার্যকরভাবে একক ক্ষতি নিয়ন্ত্রণ করতে পারে

  3. ডায়নামিক প্যারামিটার অপ্টিমাইজেশান। EMA এর প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে বিভিন্ন বাজার পরিস্থিতি অনুসারে অপ্টিমাইজ করা যেতে পারে।

  4. মেশিন লার্নিং টেকনোলজির সাথে মিলিত। টেনসরফ্লো এবং অন্যান্য ফ্রেমওয়ার্ক ব্যবহার করে, রিয়েল-টাইমে মূল্য প্রবণতার পূর্বাভাস দেওয়ার জন্য মডেলগুলিকে প্রশিক্ষণ দেওয়া হয়।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3


/// Component Code Startt
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=false)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

strategy(title="Ema cross strat", overlay=true)
margin = input(true, title="Margin?")
Margin = margin  ? margin : false
resCustom = input(title="EMA Timeframe", defval="240" )
source = close,
len2 = input(21, minval=1, title="EMA1")
len3 = input(10, minval=1, title="EMA2")
ema2 = request.security(syminfo.tickerid,resCustom,ema(source,len2), lookahead=barmerge.lookahead_off)
ema3 = request.security(syminfo.tickerid,resCustom,ema(source,len3), lookahead=barmerge.lookahead_off)


mylong = crossover(ema3, ema2)
myshort = crossunder(ema3,ema2)

last_long = na
last_short = na
last_long := mylong ? time : nz(last_long[1])
last_short := myshort ? time : nz(last_short[1])

in_long = last_long > last_short ? 2 : 0
in_short = last_short > last_long ? 2 : 0

mylong2 = crossover(ema3, ema2)
myshort2 = crossunder(ema3, ema2)

last_long2 = na
last_short2 = na
last_long2 := mylong2 ? time : nz(last_long2[1])
last_short2 := myshort2 ? time : nz(last_short2[1])

in_long2 = last_long2 > last_short2 ? 0 : 0
in_short2 = last_short2 > last_long2 ? 0 : 0

condlongx =   in_long + in_long2
condlong = crossover(condlongx, 1.9)
condlongclose = crossunder(condlongx, 1.9)

condshortx =  in_short + in_short2
condshort = crossover(condshortx, 1.9)
condshortclose = crossover(condshortx, 1.9)




if crossover(condlongx, 1.9) and testPeriod() and strategy.position_size <= 0
    strategy.entry("Long", strategy.long, comment="Long")

if crossover(condshortx, 1.9) and testPeriod() and strategy.position_size > 0    
    strategy.close("Long",when = not Margin)
    
if crossover(condshortx, 1.9) and testPeriod() and strategy.position_size >= 0
    strategy.entry("Short", strategy.short, comment="Short", when = Margin)