ডবল মুভিং এভারেজ ক্রসিং এর উপর ভিত্তি করে ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-12-27 16:07:49 অবশেষে সংশোধন করুন: 2023-12-27 16:07:49
অনুলিপি: 2 ক্লিকের সংখ্যা: 681
1
ফোকাস
1623
অনুসারী

ডবল মুভিং এভারেজ ক্রসিং এর উপর ভিত্তি করে ট্রেডিং কৌশল

ওভারভিউ

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

কৌশল নীতি

  1. 5 দিনের ইএমএ এবং 34 দিনের ডিএমএ গণনা করুন
  2. যখন একটি স্বল্পমেয়াদী 5 দিনের ইএমএ 34 দিনের দীর্ঘমেয়াদী ডিএমএকে নীচে থেকে অতিক্রম করে তখন একটি ক্রয় সংকেত তৈরি হয়
  3. যখন স্বল্পমেয়াদী 5 দিনের ইএমএ 34 দিনের দীর্ঘমেয়াদী ডিএমএকে উপরে থেকে নীচে অতিক্রম করে তখন একটি বিক্রয় সংকেত উত্পন্ন হয়
  4. শুধুমাত্র নির্দিষ্ট সময়ের মধ্যে ট্রেড করতে পারবেন
  5. ট্র্যাকিং স্টপ ব্যবহার করতে বা না করতে বেছে নিতে পারেন

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

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

  1. কৌশলগুলি সহজ, স্পষ্ট এবং সহজেই বোঝা যায়
  2. চলমান গড়ের সমন্বয় ব্যবহার, যা প্রবণতা বিচার এবং মূল্যের তথ্যের মসৃণ প্রক্রিয়াকরণ উভয়কেই বিবেচনা করে
  3. সংক্ষিপ্ত ও দীর্ঘমেয়াদী গড় লাইন ক্রস, যা বড় বাজার বাঁক বিন্দুতে অগ্রিম ট্রেডিং সংকেত দিতে পারে
  4. বিভিন্ন জাত এবং সময়কালের জন্য গড় রেখার দৈর্ঘ্যকে প্যারামিটার দ্বারা অপ্টিমাইজ করা যায়
  5. দুইটি বিষয়কে একত্রিত করে কৌশলগত স্থিতিশীলতা বাড়ানো যায়

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

  1. ভূমিকম্পের সময় ভুল সংকেত বেশি হতে পারে
  2. গড় রেখার অনুপযুক্ত দৈর্ঘ্য সংকেত বিলম্ব হতে পারে
  3. ভুল ট্রেডিং সময় এবং স্টপ লস সেটিং কৌশলগত মুনাফা প্রভাবিত করতে পারে

গড় লাইন দৈর্ঘ্য, ট্রেডিং সময় অপ্টিমাইজেশান এবং যুক্তিসঙ্গত স্টপ লস সেটআপের মাধ্যমে এই ঝুঁকিগুলি হ্রাস করা যায়।

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

  1. বিভিন্ন ট্রেডিং প্রজাতি এবং চক্রের জন্য গড় লাইন দৈর্ঘ্যের প্যারামিটারগুলি সামঞ্জস্য করুন
  2. ট্রেডিং সময় পরামিতি অপ্টিমাইজ করুন, প্রধান সক্রিয় সময় সময় ট্রেডিং
  3. ফিক্সড স্টপ এবং ট্র্যাকিং স্টপ এর তুলনা
  4. বিভিন্ন মূল্য নির্ধারণের পদ্ধতির প্রভাব পরীক্ষা করা

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_1",false]]
*/

//@version=2
strategy(title='[STRATEGY][RS]MicuRobert EMA cross V2', shorttitle='S', overlay=true)
USE_TRADESESSION = input(title='Use Trading Session?', type=bool, defval=true)
USE_TRAILINGSTOP = input(title='Use Trailing Stop?', type=bool, defval=true)
trade_session = input(title='Trade Session:',  defval='0400-1500', confirm=false)
istradingsession = not USE_TRADESESSION ? false : not na(time('1', trade_session))
bgcolor(istradingsession?gray:na)
trade_size = input(title='Trade Size:', type=float, defval=1)
tp = input(title='Take profit in pips:', type=float, defval=55.0) * (syminfo.mintick*10)
sl = input(title='Stop loss in pips:', type=float, defval=22.0) * (syminfo.mintick*10)
ma_length00 = input(title='EMA length:', defval=5)
ma_length01 = input(title='DEMA length:',  defval=34)
price = input(title='Price source:', defval=open)

//  ||--- NO LAG EMA, Credit LazyBear:  ---||
f_LB_zlema(_src, _length)=>
    _ema1=ema(_src, _length)
    _ema2=ema(_ema1, _length)
    _d=_ema1-_ema2
    _zlema=_ema1+_d
//  ||-------------------------------------||

ma00 = f_LB_zlema(price, ma_length00)
ma01 = f_LB_zlema(price, ma_length01)
plot(title='M0', series=ma00, color=black)
plot(title='M1', series=ma01, color=black)

isnewbuy = change(strategy.position_size)>0 and change(strategy.opentrades)>0
isnewsel = change(strategy.position_size)<0 and change(strategy.opentrades)>0

buy_entry_price = isnewbuy ? price : buy_entry_price[1]
sel_entry_price = isnewsel ? price : sel_entry_price[1]
plot(title='BE', series=buy_entry_price, style=circles, color=strategy.position_size <= 0 ? na : aqua)
plot(title='SE', series=sel_entry_price, style=circles, color=strategy.position_size >= 0 ? na : aqua)
buy_appex = na(buy_appex[1]) ? price : isnewbuy ? high : high >= buy_appex[1] ? high : buy_appex[1]
sel_appex = na(sel_appex[1]) ? price : isnewsel ? low : low <= sel_appex[1] ? low : sel_appex[1]
plot(title='BA', series=buy_appex, style=circles, color=strategy.position_size <= 0 ? na : teal)
plot(title='SA', series=sel_appex, style=circles, color=strategy.position_size >= 0 ? na : teal)
buy_ts = buy_appex - sl
sel_ts = sel_appex + sl
plot(title='Bts', series=buy_ts, style=circles, color=strategy.position_size <= 0 ? na : red)
plot(title='Sts', series=sel_ts, style=circles, color=strategy.position_size >= 0 ? na : red)

buy_cond1 = crossover(ma00, ma01) and (USE_TRADESESSION ? istradingsession : true)
buy_cond0 = crossover(price, ma00) and ma00 > ma01 and (USE_TRADESESSION ? istradingsession : true)
buy_entry = buy_cond1 or buy_cond0
buy_close = (not USE_TRAILINGSTOP ? low <= buy_entry_price - sl: low <= buy_ts) or high>=buy_entry_price+tp//high>=last_traded_price + tp or low<=last_traded_price - sl //high >= hh or 
sel_cond1 = crossunder(ma00, ma01) and (USE_TRADESESSION ? istradingsession : true)
sel_cond0 = crossunder(price, ma00) and ma00 < ma01 and (USE_TRADESESSION ? istradingsession : true)
sel_entry = sel_cond1 or sel_cond0
sel_close = (not USE_TRAILINGSTOP ? high >= sel_entry_price + sl : high >= sel_ts) or low<=sel_entry_price-tp//low<=last_traded_price - tp or high>=last_traded_price + sl //low <= ll or 

strategy.entry('buy', long=strategy.long, qty=trade_size, comment='buy', when=buy_entry)
strategy.close('buy', when=buy_close)
strategy.entry('sell', long=strategy.short, qty=trade_size, comment='sell', when=sel_entry)
strategy.close('sell', when=sel_close)