স্বাভাবিক MACD-এর উপর ভিত্তি করে পরিমাণগত ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-09-14 20:01:07 অবশেষে সংশোধন করুন: 2023-09-14 20:01:07
অনুলিপি: 1 ক্লিকের সংখ্যা: 1118
1
ফোকাস
1617
অনুসারী

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

১, কৌশলগত নীতি

এই কৌশলটির মূল ধারণা হল ঐতিহ্যবাহী MACD সূচকগুলিকে একীভূত করা যাতে ত্রুটি হ্রাস করা যায়। নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করা হয়ঃ

  1. স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী Hull Moving Averages গণনা করা হয়, যার ক্রস-সংযোগ থেকে বড় প্রবণতা নির্ণয় করা হয়;

  2. MACD সূচকের পার্থক্য গণনা করুন;

  3. MACD সূচকগুলিকে নির্দিষ্ট সময়ের মধ্যে একীভূতকরণ প্রক্রিয়া করা হয়;

  4. ট্রেডিং ট্রিগার গঠনের জন্য MACD এর গড় রেখা গণনা করা হয়।

  5. একীকরণ MACD উপর ট্রিগার সমান্তরাল যখন আরো, নিচে যখন খালি;

  6. এই প্রবণতাগুলিকে এড়িয়ে চলার জন্য সমান্তরাল সম্পর্কগুলিকে ফিল্টার করুন।

  7. একক লেনদেনের ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস স্টপ পয়েন্ট সেট করুন।

একীভূতকরণ প্রক্রিয়াটি MACD পার্থক্যের পরম মাত্রা হ্রাস করতে পারে, যার ফলে গোলমাল হ্রাস এবং সংকেতের গুণমান উন্নত হয়। প্রবণতা ফিল্টারিং স্থানীয় সামঞ্জস্যের কারণে বিপরীত অপারেশন এড়াতে পারে। স্টপ লস স্টপ একক ক্ষতি নিয়ন্ত্রণ করে।

দ্বিতীয়, কৌশলগত সুবিধা

এই কৌশলটি সহজ MACD কৌশলগুলির তুলনায় সর্বাধিক সুবিধা হ’ল এটির একীকরণ প্রক্রিয়াজাতকরণ যা MACD এর ত্রুটি হ্রাস করতে এবং সংকেতের নির্ভুলতা বাড়িয়ে তুলতে পারে।

আরেকটি সুবিধা হল ট্রেন্ডিং ফিল্টার যুক্ত করা হয়েছে যাতে ট্রেন্ডের মধ্যে বিপরীত অপারেশন এড়ানো যায়। এটি কৌশলটির স্থায়িত্ব বাড়ায়।

অবশেষে, স্টপ লস স্টপ কন্ডিশন সেট করা, প্রতিটি লেনদেনের ঝুঁকি-লাভ নিয়ন্ত্রণযোগ্য করে তোলে, এবং ইতিবাচক তহবিল পরিচালনা করে।

তৃতীয়, সম্ভাব্য ঝুঁকি

যদিও এই কৌশলটি অপ্টিমাইজ করা হয়েছে, তবে নিম্নলিখিত ঝুঁকিগুলি ব্যবহারের ক্ষেত্রে সতর্ক হওয়া উচিতঃ

প্রথমত, প্যারামিটারগুলি অপ্টিমাইজ করা কঠিন, এবং ভুলভাবে সেট করা হলে এটি অতিরিক্ত মিলিত হতে পারে।

দ্বিতীয়ত, স্টপ লস সেটিং খুব কাছাকাছি থাকলে ক্ষতির পরিমাণ বাড়ার সম্ভাবনা থাকে।

শেষ অবধি, প্রবণতা পরিবর্তনের সময়, সংকেতগুলি বিলম্বিত হতে পারে এবং সময়মতো প্রতিক্রিয়া জানাতে পারে না।

বিষয়বস্তুঃ

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

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

//@version=2
// Normalized MACD but heavily modified by SeaSide420. Normalized MACD v420
strategy("Normalized MACD (v420)",shorttitle="NmacD(v420)",overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1440, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) 
p=input(ohlc4)
jah=input(title="HullMA cross",defval=21)
tsp = input(34,title='Trigger')
np = input(50,title='Normalize')
SL = input(defval=-420.00, title="Stop Loss in $", step=1)
TP = input(defval=31.00, title="Target Point in $", step=1)
ot=1
n2ma=2*wma(p,round(jah/2))
nma=wma(p,jah)
diff=n2ma-nma
sqn=round(sqrt(jah))
n2ma1=2*wma(p[2],round(jah/2))
nma1=wma(p[2],jah)
diff1=n2ma1-nma1
sqn1=round(sqrt(jah))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
sh=n1
lon=n2
ratio = min(sh,lon)/max(sh,lon)
Mac = (iff(sh>lon,2-ratio,ratio)-1)
MacNorm = ((Mac-lowest(Mac, np)) /(highest(Mac, np)-lowest(Mac, np)+.000001)*2)- 1
MacNorm2 = iff(np<2,Mac,MacNorm)
Trigger = wma(MacNorm2, tsp)
Hist =(MacNorm2-Trigger)
Hist2= Hist>1?1:Hist<-1?-1:Hist
teh=MacNorm2+MacNorm2[2]-MacNorm2[1]
closelong = strategy.openprofit<SL or strategy.openprofit>TP or teh[1]<Trigger[1] and n1<n2[1]
if (closelong)
    strategy.close("Long")
closeshort = strategy.openprofit<SL or strategy.openprofit>TP or  teh[1]>Trigger[1] and n1>n2[1]
if (closeshort)
    strategy.close("Short")
longCondition = Trigger<0 and teh>Trigger and MacNorm>Trigger and strategy.opentrades<ot 
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = Trigger>0 and teh<Trigger and MacNorm<Trigger and strategy.opentrades<ot 
if (shortCondition)
    strategy.entry("Short",strategy.short)