রিভার্সাল ডাবল MACD ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2024-01-12 14:49:47 অবশেষে সংশোধন করুন: 2024-01-12 14:49:47
অনুলিপি: 0 ক্লিকের সংখ্যা: 690
1
ফোকাস
1617
অনুসারী

রিভার্সাল ডাবল MACD ট্রেডিং কৌশল

ওভারভিউ

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

কৌশল নীতি

কৌশলটি মূলত MACD সূচকের উপর ভিত্তি করে। MACD দ্রুত চলমান গড় EMA ((12) কে কমিয়ে ধীর চলমান গড় EMA ((26) দ্রুত লাইন পেতে, তারপরে সিগন্যাল ((9) ব্যবহার করে দীর্ঘ লাইন হিসাবে। যখন দ্রুত লাইনের উপর দীর্ঘ লাইন অতিক্রম করা হয় তখন গোল্ডেন ক্রস উত্পন্ন হয়। যখন দ্রুত লাইনের নীচে ধীর লাইন অতিক্রম করা হয় তখন মৃত ক্রস উত্পন্ন হয়।

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

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

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

এই কৌশলটি দ্বি-সময়কালীন MACD এবং RVI এবং CCI সূচকগুলির সাথে মিলিত হয়, যা বিপরীতমুখী সুযোগগুলিকে আরও সঠিকভাবে সনাক্ত করতে পারে, কিছু মিথ্যা বিপরীতমুখী সংকেতগুলিকে ফিল্টার করে, যার ফলে কৌশলটির স্থায়িত্ব বাড়ায়। এর সুবিধাগুলি নিম্নরূপঃ

  1. ট্রেডিংয়ে অনিশ্চয়তা বাড়ানোর জন্য ৬ ঘণ্টার MACD ব্যবহার করুন।

  2. 1 ঘন্টা স্তরের MACD বিপরীত সময়কে চিহ্নিত করে, যা স্বল্প সময়ের মধ্যে মূল্য সংশোধনকে ধরতে পারে।

  3. আরভিআই এবং সিসিআই সূচকের সমন্বয় ব্যবহার করে, বিপরীতের সময়টি আরও সঠিকভাবে নির্ধারণ করা যায়।

  4. স্টপ লস পয়েন্ট যুক্ত করার কৌশলটি ক্ষতি হ্রাস করতে পারে।

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

এই কৌশলটির কিছু ঝুঁকিও রয়েছে, যেমনঃ

  1. MACD সূচক নিজেই মিথ্যা সংকেত তৈরি করতে পারে, তাই সহায়ক সূচক ফিল্টারিং ভাল হলেও ক্ষতির সম্পূর্ণ এড়ানো সম্ভব নয়। পজিশন আকার হ্রাস করার পরামর্শ দেওয়া হয়েছে।

  2. আরভিআই এবং সিসিআই সূচকগুলি ভুল সংকেত দিতে পারে, যার ফলে ভাল বিপরীতমুখী সুযোগগুলি মিস করা বা অপ্রয়োজনীয় ক্ষতি বাড়ানো যায়। আরভিআই এবং সিসিআই প্যারামিটারগুলি যুক্তিসঙ্গতভাবে সামঞ্জস্য করার পরামর্শ দেওয়া হয়।

  3. ভুলভাবে স্টপ পয়েন্ট সেট করা স্টপ লস ট্রিগার করার জন্য খুব বেশি ঘন হতে পারে, বা ক্ষতি নিয়ন্ত্রণের জন্য সময়মত নিয়ন্ত্রণের জন্য খুব হালকা হতে পারে। বাজারের ওঠানামা অনুযায়ী স্টপ লসের মাত্রা সামঞ্জস্য করার পরামর্শ দেওয়া হয়।

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

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

  1. বর্তমানে 1 ঘন্টা এবং 6 ঘন্টা দুটি সময়কাল ব্যবহার করা হয়, আরও সময়কালের সমন্বয় পরীক্ষা করা যেতে পারে, আরও স্থিতিশীল প্যারামিটার খুঁজতে।

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

  3. বিভিন্ন জাতের প্যারামিটার অনুসারে ক্রমাগত অপ্টিমাইজ করা যায়, প্যারামিটার বেস স্থাপন করা যায়। মাঝারি এবং নিম্ন-ফ্রিকোয়েন্সি ব্যবসায়ের জন্য উপযুক্ত জাতগুলি প্যারামিটার চক্রটি যথাযথভাবে বাড়িয়ে তুলতে পারে।

  4. আপনি একটি গতিশীল স্টপ-অফ ব্যবস্থা সেট করতে পারেন, লাভের পরে ধীরে ধীরে স্টপ-অফ স্থানান্তর করতে পারেন। বা বাজারের অস্থিরতার পরিমাণ অনুসারে রিয়েল-টাইমে স্টপ-অফের মাত্রা সামঞ্জস্য করতে পারেন।

সারসংক্ষেপ

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

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

//@version=3
strategy("Bat MACD", overlay=true)

fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
h=1.05

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
hmacd= aMACD>0? h*aMACD: -(1/h)*abs(MACD) 

MACDD= (request.security(syminfo.tickerid,'360',ema(close, fastLength)) - request.security(syminfo.tickerid,'360',ema(close,slowlength)))
aMACDD = (request.security(syminfo.tickerid,'360',ema(ema(request.security(syminfo.tickerid,'360',close), fastLength)-ema(request.security(syminfo.tickerid,'360',close),slowlength), MACDLength)))
deltad= MACDD-aMACDD
L= input(0.95, title="SL")
SL = L*ema(close,10)

//MACD
slow = input(26,"Short period")
fast = input(12, "Long period")
signal = input(9, "Smoothing period")
//MACD = ema(close,fast)-ema(close,slow)
dMACD= MACD<0? ema(MACD,5):0
Mcond= rising(dMACD,1)
mcount=0.0
mcount := Mcond ? nz(mcount[1]) + 1 : nz(mcount[1])
counter=0
counter := (mcount-mcount[1]==0) ? nz(counter[1]) + 1 : 0
//counter := counter==3 ? 0: nz(counter[1])
pp=0.0
mc=0.0
pp:= (counter-counter[1]<0)? close[1] : nz(pp[1])
mc:= (counter-counter[1]<0)? MACD[1] : nz(mc[1])

bull = (pp-pp[1]<-close*0.005 and mc-mc[1]>0.02*abs(MACD) and MACD<0 and MACD[1]<0)? 1:0

//bgcolor(bull?green:white)
//RVI
p=10
CO=close-open
HL=high-low
value1 = (CO + 2*CO[1] + 2*CO[2] + CO[3])/6
value2 = (HL + 2*HL[1] + 2*HL[2] + HL[3])/6
num=sum(value1,p)
denom=sum(value2,p)
rvi=denom!=0?num/denom:0

//RVI
drvi= (rvi<0.2)? ema(rvi-0.20,3):0
RVcond= rising(drvi,1)
rvcount=0.0
rvcount := RVcond ? nz(rvcount[1]) + 1 : nz(rvcount[1])
rvcounter=0
rvcounter := (rvcount-rvcount[1]==0) ? nz(rvcounter[1]) + 1 : 0
//counter := counter==3 ? 0: nz(counter[1])
rvpp=0.0
rvmc=0.0
rvpp:= (rvcounter-rvcounter[1]<0)? close[1] : nz(rvpp[1])
rvmc:= (rvcounter-rvcounter[1]<0)? drvi[1] : nz(rvmc[1])
rvbull = (rvpp-rvpp[1]<-close*0.005 and rvmc-rvmc[1]>0.02 and drvi<0 and drvi[1]<0)? 1:0

//VolCCI
length1 = input(10, minval=1)
xMAVolPrice = ema(volume * close, length1)
xMAVol = ema(volume, length1)
src1 = xMAVolPrice / xMAVol
map = sma(src1, length1)
cci = (src1 - map) / (0.015 * dev(src1, length1))
cfi= (cci<0)? ema(cci,3) :0
CCcond= rising(cfi,1)
cccount=0.0
cccount := CCcond ? nz(cccount[1]) + 1 : nz(cccount[1])
cccounter=0
cccounter := (cccount-cccount[1]==0) ? nz(cccounter[1]) + 1 : 0
//counter := counter==3 ? 0: nz(counter[1])
ccpp=0.0
ccmc=0.0
ccpp:= (cccounter-cccounter[1]<0)? close[1] : nz(ccpp[1])
ccmc:= (cccounter-cccounter[1]<0)? cci[1] : nz(ccmc[1])
ccbull = (ccpp-ccpp[1]<-close*0.003 and ccmc-ccmc[1]>20 and cci<-95 and cci[1]<-95)? 1:0

A= bull+ccbull+rvbull
if ((MACD>hmacd)  and deltad>0 and delta>delta[1])
    strategy.entry("Long", strategy.long, comment="Buy", qty=10000/close)
if (crossunder(delta, 0) or crossunder(close,SL))
    strategy.close("Long")
if(crossover(low,SL) and SL-SL[1]<close*0.005 and SL-SL[1]>-close*0.005)    
    strategy.entry("Long", strategy.long, comment="Buy", qty=10000/close)
if A 
    strategy.entry("Long", strategy.long, comment="Buy", qty=10000/close)
plot(SL)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)