ট্রিপল EMA ট্রেন্ড অনুসরণ কৌশল


সৃষ্টির তারিখ: 2023-09-27 17:19:26 অবশেষে সংশোধন করুন: 2023-09-27 17:19:26
অনুলিপি: 0 ক্লিকের সংখ্যা: 494

ওভারভিউ

এই কৌশলটি SoftKill21 এর Amazing scalper for majors with risk management কৌশলটির উপর ভিত্তি করে সংশোধন করা হয়েছে, যা মূলত সহজ চলমান গড়ের পরিবর্তে ট্রিপল ইন্ডেক্সাল মুভিং এভারেজ ব্যবহার করে, যাতে পিছিয়ে পড়া কম হয়। এই কৌশলটি প্রধান মুদ্রা জোড়াগুলির 1 মিনিটের চক্রের জন্য প্রয়োগ করা হয়, ট্রেন্ড ট্র্যাকিং পদ্ধতি ব্যবহার করে, দ্রুত ইএমএ, স্ট্যান্ডার্ড ইএমএ এবং ধীর ইএমএর গোল্ড ক্রস এবং ডেডক্রস অনুযায়ী ক্রয় এবং বিক্রয় ক্রিয়াকলাপ। লন্ডন এবং নিউইয়র্ক ট্রেডিং সময়কালের সাথে মিলিত, এবং ঝুঁকি পরিচালনার নীতিগুলি পজিশনের আকার নির্ধারণ করে।

কৌশল নীতি

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

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

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

এই কৌশলটির সুবিধাগুলো হলঃ

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

  2. ইএমএ গণনা করার জন্য দ্বিতীয় ইন্ডেক্সাল মসৃণকরণ প্রযুক্তি ব্যবহার করা হয়েছে, যা সংকেতকে আরও সংবেদনশীল করে তোলে।

  3. মূল ব্যবসায়ের সময়গুলোতে সংযুক্ত করুন, যাতে অপ্রধান ব্যবসায়ের সময়গুলোতে বিভ্রান্তিকর সংকেত দেখা না যায়।

  4. অ্যাকাউন্টের অধিকার ও স্বার্থের উপর ভিত্তি করে ঝুঁকি ব্যবস্থাপনার নীতি গ্রহণ করুন। একক ক্ষতির কারণে অ্যাকাউন্টের উপর অত্যধিক প্রভাব ফেলার এড়ানো।

  5. কৌশল লজিক সহজ এবং স্পষ্ট, সহজেই বোঝা যায় এবং নতুনদের জন্য উপযুক্ত।

  6. বিভিন্ন মুদ্রা জোড়া এবং সময়কালের জন্য অনুকূলিতকরণ করা যেতে পারে, ব্যাপকভাবে প্রযোজ্য।

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

এই কৌশলটির কিছু সম্ভাব্য ঝুঁকি রয়েছেঃ

  1. EMA-এর দ্বারা আকস্মিক ঘটনার ফলে ঘটে যাওয়া স্বল্পমেয়াদী ভুয়া ব্রেকআউটগুলিকে কার্যকরভাবে ফিল্টার করা যায় না, যার ফলে ভুল সংকেত তৈরি হতে পারে। অন্যান্য সূচকগুলির সাথে মিলিতভাবে ফিল্টারিং বিশ্লেষণ করার পরামর্শ দেওয়া হয়।

  2. স্থির শতাংশ পজিশন বাজারের ওঠানামার জন্য গতিশীল সমন্বয় করতে পারে না, পজিশনটি খুব বড় বা খুব ছোট সমস্যা রয়েছে। অস্থিরতার হার যেমন সূচকগুলিকে গতিশীল সমন্বয় পজিশনের ভূমিকা বিবেচনা করা যেতে পারে।

  3. শুধুমাত্র দুটি প্রধান ট্রেডিং সময় বিবেচনা করুন, অন্য সময় ট্রেডিং সুযোগ মিস হতে পারে। আপনি বিভিন্ন সময় পরীক্ষা করতে পারেন।

  4. কোন ক্ষতি বন্ধ করার ব্যবস্থা নেই, একতরফা ক্ষতির কার্যকর নিয়ন্ত্রণ নেই। আপনি চলমান ক্ষতি বা সময় বন্ধ করতে পারেন।

  5. ইএমএ ক্রস কিছুটা পিছিয়ে আছে এবং সেরা প্রবেশের সময়টি মিস করতে পারে। ইএমএ চক্রটি হ্রাস করা বা অন্যান্য পূর্ববর্তী সূচকগুলির সাথে একত্রিত করার বিষয়টি বিবেচনা করা যেতে পারে।

  6. ট্রেডিং খরচ দ্বারা প্রভাবিত হতে পারে। স্টপ লস এবং স্টপ স্টপ অবস্থানগুলি যথাযথভাবে সামঞ্জস্য করার পরামর্শ দেওয়া হয়।

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

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

  1. বিভিন্ন ইএমএ চক্রের প্যারামিটার পরীক্ষা করে, সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন। ইএমএ চক্রের গতিশীল অপ্টিমাইজেশনের জন্য ইএমএ-র মতো প্রযুক্তির প্রবর্তন করা যেতে পারে।

  2. অন্যান্য ফিল্টারিং সূচক যেমন আরএসআই, ব্রিন ব্যান্ড ইত্যাদি যোগ করুন, যা সংকেতের গুণমান উন্নত করে।

  3. বাজারের অস্থিরতা এবং মুনাফার উপর ভিত্তি করে পজিশনগুলিকে সামঞ্জস্য করার জন্য একটি গতিশীল পজিশন ম্যানেজমেন্ট ব্যবস্থা চালু করা।

  4. মুভিং স্টপ, টাইম স্টপ যুক্ত করুন যাতে ক্ষতির পরিমাণ সীমিত হয়। স্টপ পয়েন্টটি যথাযথভাবে সামঞ্জস্য করুন।

  5. বিভিন্ন ট্রেডিং সময় পরীক্ষা করে সেরা ট্রেডিং সময় খুঁজে বের করুন।

  6. স্টপ ও লস লেভেলের অপ্টিমাইজেশন, লাভের আকার এবং বিজয়ী হারকে ভারসাম্যযুক্ত করে। প্যারালাল লাইন স্টপ এবং অন্যান্য স্মার্ট স্টপ চালু করা হয়েছে।

  7. ইএমএ গণনা করার পদ্ধতিতে পরিবর্তন আনার চেষ্টা করুন, যেমন লাইনারি ওজনযুক্ত ইএমএ, যাতে পিছিয়ে পড়া কমে যায়।

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

  9. লেনদেনের খরচ মডেলিং, এবং সিস্টেমটি সর্বোচ্চ মুনাফা অর্জনের জন্য সমন্বয় করা।

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-09-19 00:00:00
end: 2023-09-26 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// original author SoftKill21
//@version=4
//@capam 

strategy(title="Triple EMA Scalper low lag strat", shorttitle="3EMA scalper", overlay=true)
strategy.initial_capital = 50000
len1 = input(25, minval=1, title="Length")
len2 = input(50, minval=1, title="Length")
len3 = input(100, minval=1, title="Length")

src = input(close, title="Source")
tmp1 = ema(src, len1)
tmp2 = ema(src, len2)
tmp3 = ema(src, len3)
fastemaOut = 2*tmp1 - ema(tmp1, len1)
standardemaOut = 2*tmp2 - ema(tmp2, len2)
slowemaOut = 2*tmp3 - ema(tmp3, len3)
//fastemaOut = sma(src, len1)
//standardemaOut = sma(src, len2)
//slowemaOut = sma(src, len3)

plot(fastemaOut, color=color.black, title="First EMA")
plot(standardemaOut, color=color.yellow, title="Second EMA")
plot(slowemaOut, color=color.blue, title="Third EMA")


timeinrange(res, sess) => time(res, sess) != 0


londopen = timeinrange(timeframe.period, "0300-1100") 
nyopen = timeinrange(timeframe.period, "0800-1600") 

longCondition = crossover(fastemaOut,standardemaOut) and crossover(fastemaOut,slowemaOut) and londopen //or nyopen)
shortCondition = crossunder(fastemaOut,standardemaOut) and crossunder(fastemaOut,slowemaOut) and londopen// or nyopen)

longCondition2 = crossover(fastemaOut,standardemaOut) and crossover(fastemaOut,slowemaOut) and nyopen
shortCondition2 = crossunder(fastemaOut,standardemaOut) and crossunder(fastemaOut,slowemaOut) and nyopen
tp = input(50,title="TP")
sl = input(100, title="SL")

tradeLondon =  input(title="Trade london session?", type=input.bool, defval=true)
tradeNewyork = input(title="Trade new york session?", type=input.bool, defval=true)

//MONEY MANAGEMENT--------------------------------------------------------------
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit          //floating profit/loss
risk = input(1,type=input.float,title="Risk % of equity ")/100           //risk % per trade
temp01 = balance * risk     //Risk in USD
temp02 = temp01/sl        //Risk in lots
temp03 = temp02*100000      //Convert to contracts
size = temp03 - temp03%1000 //Normalize to 1000s (Trade size)
if(size < 1000)
    size := 1000        

if(tradeLondon==true)
    strategy.entry("long",1,when=longCondition)
    strategy.exit("tp/sl","long",profit=tp,loss=sl)
    
    strategy.entry("short",0,when=shortCondition)
    strategy.exit("tp/sl","short",profit=tp,loss=sl)

if(tradeNewyork==true)
    strategy.entry("long",1,when=longCondition2)
    strategy.exit("tp/sl","long",profit=tp,loss=sl)
    
    strategy.entry("short",0,when=shortCondition2)
    strategy.exit("tp/sl","short",profit=tp,loss=sl)

// strategy.risk.max_intraday_filled_orders(2)