ডুয়াল ইএমএ গোল্ডেন ক্রস ব্রুকথ্রো স্ট্র্যাটেজি

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

img

সারসংক্ষেপ

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

কৌশল নীতি

  1. দ্রুত EMA5 এবং ধীর EMA34 ট্রেডিং সংকেত গঠন করে। EMA5 সাম্প্রতিক মূল্য পরিবর্তন এবং EMA34 মধ্যমেয়াদী মূল্য পরিবর্তন প্রতিফলিত করে।
  2. যখন EMA5 EMA34 অতিক্রম করে, তখন এটি একটি সোনার ক্রস, যা স্বল্পমেয়াদী প্রবণতাকে মধ্যমেয়াদী প্রবণতা থেকে ভাল বলে নির্দেশ করে, তাই লং পজিশন ধরে রাখুন।
  3. যখন EMA5 EMA34 এর নিচে অতিক্রম করে, তখন এটি একটি মৃত্যুর ক্রস, যা সংক্ষিপ্ত মেয়াদী প্রবণতা মধ্যমেয়াদী প্রবণতার চেয়ে খারাপ, তাই শর্ট পজিশন ধরে রাখুন।
  4. লাভ এবং ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লাভ এবং স্টপ লস সেট করুন।

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

  1. ডুয়াল ইএমএ ব্যবহার করে মিথ্যা ব্রেকআউট ফিল্টার করা হয় এবং ফাঁদে পড়া এড়ানো হয়।
  2. মধ্যমেয়াদী প্রবণতা অনুসরণ করে লাভের সুযোগ বাড়ায়।
  3. স্টপ লাভ এবং স্টপ লস সেট করা কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে।

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

  1. ডুয়াল ইএমএ-র প্রভাব পিছিয়ে থাকে এবং স্বল্পমেয়াদী ট্রেডিংয়ের সুযোগগুলি মিস করতে পারে।
  2. স্টপ লস সেট করা খুব বড় হলে ক্ষতির ঝুঁকি বাড়বে।
  3. লাভ বন্ধ করার জন্য খুব সংকীর্ণভাবে সেট করা হলে লাভ বাড়ানোর সুযোগ হারাবে।

অপ্টিমাইজেশান নির্দেশাবলী

  1. সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে EMA পরামিতি অপ্টিমাইজ করুন।
  2. আরও বেশি লাভের জন্য স্টপ লাভ এবং স্টপ লস পয়েন্টগুলি অপ্টিমাইজ করুন।
  3. সিগন্যাল ফিল্টার করতে এবং নির্ভুলতা উন্নত করতে MACD, KDJ এর মতো অন্যান্য সূচক যুক্ত করুন।

সংক্ষিপ্তসার

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


/*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"}]
*/

//@version=2
strategy(title='[STRATEGY][RS]MicuRobert EMA cross V2', shorttitle='S', overlay=true, pyramiding=0, initial_capital=100000)
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)

আরো