3 10.0 দোলকের প্রোফাইল বিপরীতমুখী কৌশলটি বিভিন্ন সময়সীমার MACD সূচকগুলি গণনা করে সম্ভাব্য মূল্য বিপরীতমুখীতা চিহ্নিত করে। এটি বৃহত্তর মূলধন দক্ষতা অর্জনের জন্য একটি প্রবণতা অনুসরণকারী স্টপ লস পদ্ধতি গ্রহণ করে।
কৌশলটি দ্রুত এবং ধীর রেখা এবং এমএসিডি সূচক এবং সংকেত লাইন তৈরি করতে 3 এবং 10 সময়ের এসএমএ চলমান গড় গণনা করে। যখন দ্রুত লাইন এবং সংকেত লাইন শূন্য রেখাটি উপরে বা নীচে অতিক্রম করে, এটি নির্দেশ করে যে দাম একটি সমালোচনামূলক পয়েন্টে পৌঁছেছে এবং বিপরীত হতে পারে। এছাড়াও, এটি বিপরীত সংকেতগুলির নির্ভরযোগ্যতা সনাক্ত করতে ভলিউম চাপ বিচার, আরএসআই সূচক ইত্যাদি অন্তর্ভুক্ত করে। বিপরীত সংকেতগুলি নির্দিষ্ট নির্ভরযোগ্যতার প্রয়োজনীয়তা পূরণ করলে এটি দীর্ঘ বা সংক্ষিপ্ত হয়।
বিশেষ করে, কৌশলটি নিম্নলিখিতগুলির মাধ্যমে মূল্য বিপরীত মূল্যায়ন করেঃ
যখন বিপরীত সিগন্যাল নির্ভরযোগ্যতা উচ্চ, কৌশল উচ্চ মুনাফা সাধন করার জন্য প্রবণতা অনুসরণ স্টপ লস গ্রহণ করে।
এই কৌশলটির নিম্নলিখিত সুবিধা রয়েছে:
এছাড়াও কিছু ঝুঁকি আছেঃ
ঝুঁকিগুলি নিম্নলিখিতগুলির মাধ্যমে হ্রাস করা যেতে পারেঃ
কৌশলটি নিম্নলিখিতগুলির মাধ্যমে আরও অপ্টিমাইজ করা যেতে পারেঃ
মাল্টি-টাইমফ্রেম এমএসিডি শূন্য-ক্রসিং বিপরীতমুখী কৌশলটি মাল্টি-ইনডিকেটর মূল্যায়নের মাধ্যমে এন্ট্রি টাইমিং নির্ধারণের জন্য মূল্য, ভলিউম এবং অস্থিরতা সূচকগুলিকে ব্যাপকভাবে বিবেচনা করে। এটি পর্যাপ্ত লাভজনকতার উপর সময়মত স্টপ লস সেট করে। এটি বিপরীতমুখী বাজারের সময় ভাল রিটার্ন অর্জন করতে পারে। মেশিন লার্নিং এবং কী স্তরের সংহতকরণের আরও উন্নতি লাভজনকতা উন্নত করার সময় ঝুঁকি এবং ট্রেডিং ফ্রিকোয়েন্সি হ্রাস করতে পারে।
/*backtest start: 2023-02-11 00:00:00 end: 2024-02-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("3 10.0 Oscillator Profile Flagging", shorttitle="3 10.0 Oscillator Profile Flagging", overlay=false) signalBiasValue = input(title="Signal Bias", defval=0.26) macdBiasValue = input(title="MACD Bias", defval=0.8) shortLookBack = input( title="Short LookBack", defval=3) longLookBack = input( title="Long LookBack", defval=10.0) takeProfit = input( title="Take Profit", defval=0.8) stopLoss = input( title="Stop Loss", defval=0.75) 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") intrabarRange = high - low rsi = ta.rsi(close, 14) rsiSlope = rsi - rsi[1] 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 ) // 393.60 Profit 52.26% 15m if ( hasBullInversion and rsiSlope > 1.5 and volume > 300000.0 ) strategy.entry("15C1", strategy.long, qty=10.0) strategy.exit("TPS", "15C1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss) // 356.10 Profit 51,45% 15m if ( getVolBias(shortLookBack) == false and rsiSlope > 3.0 and signalSlope > 0) strategy.entry("15C2", strategy.long, qty=10.0) strategy.exit("TPS", "15C2", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss) // 124 Profit 52% 15m if ( rsiSlope < -11.25 and macdSlope < 0.0 and signalSlope < 0.0) strategy.entry("15P1", strategy.short, qty=10.0) strategy.exit("TPS", "15P1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss) // 455.40 Profit 49% 15m if ( math.abs(math.abs(macd) - math.abs(signal)) < .1 and buyVolume > sellVolume and hasBullInversion) strategy.entry("15P2", strategy.short, qty=10.0) strategy.exit("TPS", "15P2", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)