
এই কৌশলটি 3 দিনের দ্রুত চলমান গড়, 10 দিনের ধীর চলমান গড় এবং 16 দিনের সিগন্যাল মসৃণ চলমান গড় ব্যবহার করে MACD সূচকটি তৈরি করে, আরএসআই সূচক এবং লেনদেনের পরিমাণের বৈশিষ্ট্য দ্বারা সমর্থিত, একটি বহুমাত্রিক কে-লাইন বৈশিষ্ট্য সেট করে, যা বিচার করে যে পরিস্থিতি অত্যধিক ঘনিষ্ঠ হয়ে গেছে, একটি অঞ্চলীয় অস্থির প্রবণতা তৈরি করে, যাতে এন্ট্রিগুলি লাভজনক হয়।
কোডটি মূলত 3 দিনের দ্রুত চলমান গড় বিয়োগ 10 দিনের ধীর চলমান গড়ের মাধ্যমে এমএসিডি সূচক গঠন করে, 16 দিনের সিগন্যাল লাইনটি মসৃণভাবে পরিচালনা করে, স্ট্যান্ডার্ড এমএসিডি কৌশল গঠন করে। একই সাথে সংমিশ্রিত ট্র্যাফিক বিশ্লেষণ ক্রয় এবং বিক্রয় পরিমাণ, শক্তির বৈশিষ্ট্য নির্ধারণ করে। এছাড়াও আরএসআই সূচকটি ওভার-বই ওভার-বিক্রয় নির্ধারণের জন্য প্রবর্তিত হয়েছে। একাধিক সূচক সংমিশ্রণ, পরিস্থিতির বৈশিষ্ট্য নির্ধারণ, অন্তরাল কম্পন প্রবণতার পরিবর্তনগুলি আবিষ্কার করে, এন্ট্রি সংকেত তৈরি করে।
বিশেষ করে, MACD লাইন এবং সংকেত লাইন সম্পর্ক, প্রান্তিকতার পরিবর্তন, ম্যানিপুলেটর শক্তি হ্রাস বিচার, বিপরীত সুযোগ খুঁজুন। একই সময়ে, লেনদেনের পরিমাণের ক্রয়-বিক্রয় ভলিউমের পরিবর্তনগুলি ম্যানিপুলেটর শক্তি হ্রাসের প্রতিফলন করে। RSI সূচকগুলির সাথে মিলিত পরিবর্তনগুলি ওভার-বিক্রয় ওভার-বিক্রয় ঘটনাটি বিচার করে, এই সূচকগুলির সংমিশ্রণ, আমরা পরিস্থিতির স্থানীয় বৈশিষ্ট্য এবং সম্ভাব্য বিপরীত হওয়ার সময় নির্ধারণ করতে পারি।
এই নীতিতে তিনটি এন্ট্রি সিগন্যাল রয়েছেঃ
যখন লেনদেনের পরিমাণে ক্রয়-বিক্রয়ের পরিমাণের সুবিধা না থাকে, আরএসআই 41 এর নিচে থাকে এবং বেড়ে যায়, এবং এমএসিডি সংকেতগুলি সুস্পষ্টভাবে বিচ্যুত হয় না, তখন অতিরিক্ত করা হয়;
যখন লেনদেনের পরিমাণে ক্রয়ের পরিমাণের সুবিধা থাকে, আরএসআই 45-55 এর মধ্যে থাকে এবং এটি বৃদ্ধি পায়, যখন এমএসিডি এবং সিগন্যাল লাইন একই সাথে বৃদ্ধি পায়, তখন আরও বেশি করা হয়;
যখন MACD সেট থ্রেশহোল্ডের উপরে এবং উপরে থাকে, তখন খালি করুন।
এই তিনটি পরিস্থিতিই স্বল্পমেয়াদী আঞ্চলিক অস্থিরতা এবং এক দিকের অত্যধিক সম্প্রসারণকে প্রতিফলিত করে, তাই এটিকে বিপরীত দিকের পদক্ষেপ নেওয়ার জন্য একটি ভাল সময় হিসাবে বিবেচনা করা হয়।
Exit হল স্টপ লস এবং স্টপ ব্রেক পদ্ধতি, নিয়ন্ত্রণ প্রত্যাহার এবং মুনাফা অর্জনের জন্য।
এই কৌশলটি বিভিন্ন সূচককে একত্রিত করে যা ঝড়ের ব্যাপ্তি এবং ওভারবয় ওভারসেলের ঘটনা নির্ধারণ করে। লাভের ধারণাটি স্পষ্ট। লেনদেনের পরিমাণ বিশ্লেষণটি আরও গভীরভাবে ব্যবহার করা হয়েছে, অপারেশন ভিত্তি বাড়ানো হয়েছে।
বিশেষ করে, এর সুবিধাগুলো হলঃ
ম্যাকড একটি পরিমাপযোগ্য মূল্য পরীক্ষামূলক সূচক, যা মূল্য এবং লেনদেনের পরিমাণের মধ্যে সম্পর্ক নির্ধারণ করে এবং একক প্রযুক্তিগত বিশ্লেষণের বিষয়বস্তু এড়িয়ে যায়;
এয়ার ফোর্স, এন্ট্রিস কনফার্মেশন যোগ করুন;
আরএসআই ওভারবয় ওভারসোল্ডের বিচার করে, যা বিপরীতমুখী হওয়ার জন্য সাহায্য করে।
স্টপ লস ক্যাপ সেটআপ অতিরিক্ত ক্ষতি প্রতিরোধ করে এবং মুনাফার একটি অংশ লক করে দেয়।
যদিও এই কৌশলটি সমন্বিতভাবে একাধিক সূচক ব্যবহার করে জয়লাভের হার বাড়িয়ে তোলে, তবে যে কোনও কৌশলই অনিবার্যভাবে কিছু ঝুঁকি নিয়ে আসে, প্রধান সমস্যা হলঃ
একটি সূচক একটি মিথ্যা সংকেত প্রেরণ করার সম্ভাবনা, যেমন একটি বিপরীতমুখী প্রবণতা চালিয়ে যাওয়া;
স্টপ লস স্ট্রিপটি ভুলভাবে সেট করা হয়েছে, এটি খুব বেশি প্রত্যাহারের সম্ভাবনা রয়েছে এবং মুনাফা খুব ভালভাবে লক করা যায় না;
প্যারামিটার সেটিং এর জন্য আরও পরীক্ষামূলক অপ্টিমাইজেশনের প্রয়োজন হতে পারে, যেমন গড়রেখার প্যারামিটার সমন্বয়, RSI চক্র, স্টপ লস স্টপ বক্স গুণক ইত্যাদি।
এই ঝুঁকিগুলি আরও অপ্টিমাইজেশান দ্বারা হ্রাস করা যেতে পারে।
এই কৌশলটি আরও উন্নত করার জন্য অনেক জায়গা রয়েছে, যা নিম্নলিখিত দিকগুলিকে কেন্দ্র করেঃ
বিভিন্ন সমান্তরাল প্যারামিটার সেটিং পরীক্ষা করে সেরা সমন্বয় খুঁজে বের করা;
আরএসআই প্যারামিটার সেটিং পরীক্ষা করে এমন একটি চক্র নির্ণয় করা যা ওভার-বই ওভার-সোল্ডের জন্য আরও উপযুক্ত;
সর্বাধিক প্রত্যাহার এবং মুনাফা লকিংয়ের মধ্যে ভারসাম্য বজায় রাখার জন্য স্টপ লস স্টপ মপ্লাইয়েন্টগুলিকে অনুকূলিত করুন;
মেশিন লার্নিং মডেলের মাধ্যমে, বড় ডেটা ব্যবহার করে প্রশিক্ষণ দেওয়া, ভুল সিদ্ধান্ত নেওয়ার সম্ভাবনা হ্রাস করা এবং বিজয়ী হওয়ার সম্ভাবনা বাড়ানো।
এই অপ্টিমাইজেশানগুলি আরও পদ্ধতিগত প্রতিক্রিয়া দ্বারা করা যেতে পারে। প্যারামিটার স্পেস টেস্টিংয়ের প্রসারিত এবং নমুনার আকার বৃদ্ধির সাথে সাথে কৌশলগুলির সাফল্য এবং মুনাফা সূচকগুলিও বাড়তে থাকে।
এই কৌশলটি MACD, RSI এবং লেনদেনের পরিমাণের তিনটি শ্রেণীর সূচককে সমন্বিতভাবে ব্যবহার করে, বাজারের অঞ্চলগুলির মধ্যে ঝড়ের বৈশিষ্ট্যগুলি বিচার করে, বিপরীত বিন্দুতে এন্ট্রিগুলি স্থাপন করে, যাতে বিপরীত বর্ধনের লক্ষ্যমাত্রা অর্জন করা যায়। কৌশলটি স্পষ্ট, প্রবণতা এবং বিপরীতের সাথে সামঞ্জস্যপূর্ণ, অপ্টিমাইজেশনের পরে ভাল মুনাফার জায়গা রয়েছে। প্যারামিটার সমন্বয় এবং মডেল প্রবর্তনের মাধ্যমে এটি একটি কার্যকর এবং স্থিতিশীল পরিমাণযুক্ত কৌশল হিসাবে প্রত্যাশিত।
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("3 1 Oscillator Profile Flagging", shorttitle="3 1 Oscillator Profile Flagging", overlay=false)
signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.7)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=6)
takeProfit = input( title="Take Profit", defval=2)
stopLoss = input( title="Stop Loss", defval=0.7)
fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)
buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
plot(macd, color=color.blue, title="Total Volume")
plot(signal, color=color.orange, title="Total Volume")
plot(macdSlope, color=color.green, title="MACD Slope")
plot(signalSlope, color=color.red, title="Signal Slope")
intrabarRange = high - low
rsi = ta.rsi(close, 14)
rsiSlope = rsi - rsi[1]
plot(rsiSlope, color=color.black, title="RSI Slope")
getRSISlopeChange(lookBack) =>
j = 0
for i = 0 to lookBack
if ( rsi[i] - rsi[ i + 1 ] ) > -5
j += 1
j
getBuyerVolBias(lookBack) =>
j = 0
for i = 1 to lookBack
if buyVolume[i] > sellVolume[i]
j += 1
j
getSellerVolBias(lookBack) =>
j = 0
for i = 1 to lookBack
if sellVolume[i] > buyVolume[i]
j += 1
j
getVolBias(lookBack) =>
float b = 0.0
float s = 0.0
for i = 1 to lookBack
b += buyVolume[i]
s += sellVolume[i]
b > s
getSignalBuyerBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] > signalBiasValue
j += 1
j
getSignalSellerBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] < ( 0.0 - signalBiasValue )
j += 1
j
getSignalNoBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] < signalBiasValue and signal[i] > ( 0.0 - signalBiasValue )
j += 1
j
getPriceRising(lookBack) =>
j = 0
for i = 1 to lookBack
if close[i] > close[i + 1]
j += 1
j
getPriceFalling(lookBack) =>
j = 0
for i = 1 to lookBack
if close[i] < close[i + 1]
j += 1
j
getRangeNarrowing(lookBack) =>
j = 0
for i = 1 to lookBack
if intrabarRange[i] < intrabarRange[i + 1]
j+= 1
j
getRangeBroadening(lookBack) =>
j = 0
for i = 1 to lookBack
if intrabarRange[i] > intrabarRange[i + 1]
j+= 1
j
bool isNegativeSignalReversal = signalSlope < 0.0 and signalSlope[1] > 0.0
bool isNegativeMacdReversal = macdSlope < 0.0 and macdSlope[1] > 0.0
bool isPositiveSignalReversal = signalSlope > 0.0 and signalSlope[1] < 0.0
bool isPositiveMacdReversal = macdSlope > 0.0 and macdSlope[1] < 0.0
bool hasBearInversion = signalSlope > 0.0 and macdSlope < 0.0
bool hasBullInversion = signalSlope < 0.0 and macdSlope > 0.0
bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0.0 - signalBiasValue )
bool hasSignalBuyerBias = hasSignalBias and signal > 0.0
bool hasSignalSellerBias = hasSignalBias and signal < 0.0
bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0.0 - macdBiasValue )
bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)
bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )
// 202.30 Profit 55.29% 5m
if ( ( getVolBias(longLookBack) == false ) and rsi <= 41 and math.abs(rsi - rsi[shortLookBack]) > 1 and hasNoSignalBias and rsiSlope > 1.5 and close > open)
strategy.entry("5C1", strategy.long, qty=1)
strategy.exit("TPS", "5C1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)
// 171.70 Profit 50.22% 5m
if ( getVolBias(longLookBack) == true and rsi > 45 and rsi < 55 and macdSlope > 0 and signalSlope > 0)
strategy.entry("5C2", strategy.long, qty=1)
strategy.exit("TPS", "5C2", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)
// 309.50 Profit 30.8% 5m 2 tp .7 sl 289 trades
if ( macd > macdBiasValue and macdSlope > 0)
strategy.entry("5P1", strategy.short, qty=1)
strategy.exit("TPS", "5P1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)