
এই কৌশলটি MACD সূচক এবং একাধিক ইএমএ লাইনকে একত্রিত করে, বাজারের একটি শক্তিশালী প্রবণতা ক্যাপচার করার জন্য ঘূর্ণিপথ এবং মিনিট লাইন দুটি সময় স্কেল থেকে। ঘূর্ণিপথের দিকে MACD সূচকটি বড় প্রবণতার দিকনির্দেশের জন্য ব্যবহৃত হয়, মিনিট লাইনে 5, 15 এবং 30 দিনের তিনটি ইএমএ লাইন ব্যবহার করে ট্রেন্ডটি নিশ্চিত করতে এবং ব্রেকপয়েন্টগুলিতে লেনদেন করা হয়। কৌশলটির মূল ধারণাটি হ’ল শক্তিশালী প্রবণতা অনুসরণ করা, বড় তরঙ্গের উপর চড়ে, স্বল্পমেয়াদী ইএমএ লাইনটি দীর্ঘমেয়াদী ইএমএ লাইনটি ভেঙে দেয়।
বৃত্তাকার MACD বৃহত্তর প্রবণতা নির্ণয় করুন: বৃত্তাকার MACD সূচকটি গণনা করুন, এই সপ্তাহের এবং গত সপ্তাহের MACD কলামযুক্ত মানের পার্থক্যের তুলনায়, পার্থক্যটি 0 এর চেয়ে বড় ট্রেন্ডের দিকে নির্দেশ করে এবং 0 এর চেয়ে ছোট ট্রেন্ডের দিকে নির্দেশ করে। প্রতি সপ্তাহে সোমবারের ট্রেডিংয়ের সময় ট্রেন্ডের দিকটি আপডেট করুন।
মাল্টি ইএমএ লাইন ট্রেন্ড নিশ্চিতকরণঃ মিনিটের লাইন চার্টে পাঁচ, ১৫ এবং ৩০ দিনের তিনটি ইএমএ লাইন আঁকুন। যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএর উপরে এবং উপরের দিকে চলে, তখন ট্রেন্ড আপ হয়; বিপরীতে ট্রেন্ড ডাউন হয়।
ইএমএ লাইন ক্রসপয়েন্ট ট্রেডিং:
গ্রিডিংঃ গ্রিডিং শর্তাদি সেট করা হয়নি।
ডাবল টাইম স্কেলের সাথে মিলিত, প্রবণতা বিচার আরও নির্ভরযোগ্য। ঘূর্ণমান MACD বৃহত্তর প্রবণতা বিচার করে, অস্থির বাজারে অতিরিক্ত প্যাচ করা এড়ানো; মিনিট লাইন EMA ক্রস-নিশ্চিত প্রবণতা, প্রবণতা প্রতিটি তরঙ্গ ধরা।
মিন্ট লাইন ইএমএ প্যারামিটার নির্বাচন করুন 5, 15, 30 দিন, তিন লাইন সমন্বয় ভাল শব্দ ফিল্টার করতে পারেন, স্পষ্ট প্রবণতা ধরা
স্টপ লস সেট যুক্তিসঙ্গত, একক লেনদেনের ঝুঁকি নিয়ন্ত্রণ করুন। ফিক্সড পয়েন্ট স্টপ এবং ইএমএ স্টপ একত্রিত হয়ে ক্ষতি নিয়ন্ত্রণ এবং প্রবণতা অনুসরণ করতে পারে।
কোড মডুলার ডিজাইন, প্রধান মডিউল যেমন MACD গণনা, ইএমএ গণনা ইত্যাদি, এর উচ্চতর পুনরায় ব্যবহারযোগ্যতা এবং প্রসারণযোগ্যতা রয়েছে।
ম্যাকডের স্তম্ভচিত্রের পার্থক্যের থ্রেশহোল্ডের ভুল নির্বাচন প্রবণতা বিচারক মানদণ্ডকে খুব হালকা বা কঠোর করে তোলে, যা বিচারকে ভুল করে তোলে। সেরা থ্রেশহোল্ডটি রিটার্নিং এবং প্যারামিটার অপ্টিমাইজেশনের মাধ্যমে বেছে নেওয়া যেতে পারে।
মিন্টলাইন ইএমএ প্যারামিটারগুলি ভুলভাবে নির্বাচন করা হয়েছে, চক্রটি খুব সংক্ষিপ্ত হওয়ার ফলে ঘন ঘন লেনদেন হয় এবং খুব দীর্ঘ সময় নষ্ট হয়। সর্বোত্তম প্যারামিটার সমন্বয়টি পুনরায় পরীক্ষা এবং প্যারামিটার অপ্টিমাইজেশনের মাধ্যমে বেছে নেওয়া যেতে পারে।
স্থির পয়েন্টের ক্ষতির অবস্থানটি ভুলভাবে বেছে নেওয়া হয়েছে, খুব ছোট সেট করা ঘন ঘন ক্ষতির কারণ হতে পারে, এবং সাধারণ সেট করা একক ক্ষতির কারণ হতে পারে। জাতের ওঠানামা বৈশিষ্ট্য অনুসারে ব্যক্তিগতকৃত ক্ষতির সেট করা যেতে পারে।
ট্রেন্ড টার্নপয়েন্ট ইএমএ লাইন কিছুটা পিছিয়ে যেতে পারে এবং সর্বোত্তম ক্রয়-বিক্রয় পয়েন্টটি মিস করতে পারে। তবে দীর্ঘমেয়াদে, ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করতে সক্ষম, কৌশলটি সামগ্রিকভাবে ভাল করছে।
MACD ট্রেন্ডের উপর ভিত্তি করে, RSI ইত্যাদির উপর ভিত্তি করে ট্রেন্ডের শক্তি নিশ্চিত করতে এবং ট্রেন্ডের সঠিকতা বাড়ানোর জন্য বিবেচনা করা যেতে পারে।
ট্রেডিং সিগন্যালের ফিল্টারিং শর্ত হিসাবে সিসিআই ইত্যাদির মতো সূচকগুলি যুক্ত করে ট্রেডিং ফ্রিকোয়েন্সি এবং ঝুঁকি হ্রাস করার জন্য ইএমএ লাইন ক্রসিংয়ের উপর ভিত্তি করে।
ব্যক্তিগতকৃত স্টপপ পয়েন্ট সেট করা যেতে পারে, যেটি প্রতিটি শেয়ারের ঐতিহাসিক অস্থিরতার উপর ভিত্তি করে তৈরি করা যেতে পারে, যাতে কৌশলটি জাতের বৈশিষ্ট্যগুলির জন্য আরও উপযুক্ত হয়।
পজিশন বাড়ানো এবং হ্রাস করার কৌশল বিবেচনা করা যেতে পারে, প্রবণতা শক্তিশালী হলে ধীরে ধীরে পজিশন বাড়ানো, প্রবণতা দুর্বল হলে ধীরে ধীরে পজিশন হ্রাস করা, তহবিলের ব্যবহারের দক্ষতা বাড়ানো।
ম্যাকড + ইএমএ মাল্টি টাইম স্কেল ব্রেকআউট কৌশলটি একটি প্রবণতা-অনুসরণকারী কৌশল যা প্রবণতা এবং নিশ্চিতকরণ প্রবণতার উপর তুলনামূলকভাবে বৈজ্ঞানিক ভিত্তি রয়েছে, যা কার্যকরভাবে বাজারের মূল প্রবণতাটি ধরে রাখতে এবং স্থিতিশীল উপার্জন করতে পারে। একই সাথে, এই কৌশলটি ঝুঁকি নিয়ন্ত্রণের ক্ষেত্রেও তুলনামূলকভাবে নিখুঁত, যুক্তিসঙ্গত স্টপ লস সেট এবং পজিশনের শর্তগুলি কার্যকরভাবে নিয়ন্ত্রণ করে। তবে কৌশলটিতে কিছু ত্রুটি রয়েছে, যেমন প্রবণতা বিচারের পরে পজিশনের বৃদ্ধি বা হ্রাসের অভাব ইত্যাদি। এই ভিত্তিতে আরও অপ্টিমাইজ এবং উন্নত করা যেতে পারে। সামগ্রিকভাবে বলতে গেলে, কৌশলটি একটি খুব শেখার এবং ব্যবহারের পরিমাণযুক্ত ট্রেডিং কৌশল।
/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// 1) 전주와 전전주의 히스토그램의 차이를 계산하여, 매주 월요일에 매매 방향을 표시하고,
// 2) 5일, 15일, 30일 선을 호출하여 평행하게 그리고, 매매 방향에 따라
// 3) 분봉기준의 이동평균선 매매전략
// 4) 수익 실현은 미설정 해둠
//@version=5
strategy('Last week MACD+ 15day, 30day break through, by Ho.J', overlay=true, initial_capital=30000, commission_value = 7.5, commission_type=strategy.commission.cash_per_order, slippage = 0)
// 백테스팅 기간 설정
start_time = input(timestamp("Jan 19 2024 00:00:01"), confirm = true)
end_time = input(timestamp("MAR 19 2024 23:59:59"), confirm = true)
is_in_time = true
stopLoss = input.int(100, title="손절 수준")
// 지난주 값 불러오기 입력 매개변수, 1은 5일, 3은 15일, 6은 30일 이동평균선을 구하는 변수임
emaLength1 = input(1, title="EMA Length")
emaLength2 = input(3, title="EMA Length")
emaLength3 = input(6, title="EMA Length")
timeframePeriod = "W" // 'D'는 일간 데이터를 의미
// 분봉기준 EMA 계산
shortEMA = ta.ema(close, 50)
mediumEMA = ta.ema(close, 60)
longEMA = ta.ema(close, 150)
// 분봉기준 EMA 그리기
plot(shortEMA, color=color.blue, title="5일 EMA")
plot(mediumEMA, color=color.orange, title="15일 EMA")
plot(longEMA, color=color.red, title="30일 EMA")
// 주간 MACD 계산, 전주와 전전주 히스토그램을 계산하여 상대적인 상승, 하락을 계산
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
histogram = macdLine - signalLine
histLastWeek = request.security(syminfo.tickerid, timeframePeriod, histogram[1], lookahead=barmerge.lookahead_on)
histWeekBeforeLast = request.security(syminfo.tickerid, timeframePeriod, histogram[2], lookahead=barmerge.lookahead_on)
histDiff = histLastWeek - histWeekBeforeLast
// 현재 주의 월요일 첫 봉인지 확인
isMondayFirstBar = (dayofweek == dayofweek.monday) and (hour == 09) and (minute == 00) // 여기서 시간은 시장 개장 시간에 따라 조정해야 함
// 월요일 첫봉에, 주간 MACD 히스토그램이 상승하면 '매수', 하락하면 '매도' 표시
var label myLabel = na
if (isMondayFirstBar)
if (histDiff > 0)
myLabel := label.new(bar_index, high, "이번주는 매수만", color=color.green, textcolor=color.white, style=label.style_label_down, size=size.large)
else if (histDiff < 0)
myLabel := label.new(bar_index, low, "이번주는 매도만", color=color.red, textcolor=color.white, style=label.style_label_up, size=size.large)
// 지난주 EMA 값 요청
// 'lookahead'를 사용하여 지난 데이터를 기준으로 계산
lastWeekEMA1 = request.security(syminfo.tickerid, timeframePeriod, ta.ema(close[1], emaLength1), lookahead=barmerge.lookahead_on)
lastWeekEMA2 = request.security(syminfo.tickerid, timeframePeriod, ta.ema(close[1], emaLength2), lookahead=barmerge.lookahead_on)
lastWeekEMA3 = request.security(syminfo.tickerid, timeframePeriod, ta.ema(close[1], emaLength3), lookahead=barmerge.lookahead_on)
// 지난주 EMA 그리기
plot(lastWeekEMA1, color=color.red, title="Last Week EMA1")
plot(lastWeekEMA2, color=color.rgb(157, 126, 126), title="Last Week EMA2")
plot(lastWeekEMA3, color=color.rgb(199, 192, 192), title="Last Week EMA3")
// 매수/매도 조건
buySignal = ta.crossover(close, lastWeekEMA2) and histDiff > 0
// addbuySignal = ta.crossover(close, lastWeekEMA3) and histDiff > 0
sellSignal = ta.crossunder(shortEMA, longEMA) and histDiff < 0
// addSellSignal = ta.crossunder(close, lastWeekEMA3) and histDiff < 0
// 매수 조건
if (buySignal)
strategy.entry('Buy', strategy.long)
alert('Buy Signal', alert.freq_once_per_bar_close)
// if (addbuySignal)
// strategy.entry('Buy', strategy.long)
// alert('add Buy Signal', alert.freq_once_per_bar_close)
if (strategy.position_size > 0 and ((strategy.position_avg_price - close) >= stopLoss) or ta.crossunder(close, mediumEMA))
strategy.close('Buy')
alert('Close Buy Signal', alert.freq_once_per_bar_close)
// 매도 조건
if (sellSignal)
strategy.entry('Sell', strategy.short)
alert('Sell Signal', alert.freq_once_per_bar_close)
//if (addSellSignal)
// strategy.entry('Sell', strategy.short)
// alert('add Sell Signal', alert.freq_once_per_bar_close)
if (strategy.position_size < 0 and ((close - strategy.position_avg_price) >= stopLoss) or ta.crossover(shortEMA, mediumEMA))
strategy.close('Sell')
alert('Close Sell Signal', alert.freq_once_per_bar_close)