এই কৌশলটি বিটকয়েনের মতো ক্রিপ্টোকারেন্সিগুলির জন্য ট্রেডিংয়ের সুযোগগুলি সনাক্ত করার জন্য আরএসআই, এমএসিডি, ওবিভি এবং অন্যান্য সূচকগুলির সাথে মিলিয়ে ট্রেডিং সংকেত হিসাবে চন্দ্রের ফেজ চক্র ব্যবহার করে। এই কৌশলটির মূল সুবিধা হ'ল চন্দ্রের ফেজ, একটি বাহ্যিক কারণ, ট্রেডিং ট্রিগার হিসাবে ব্যবহার করা, যা বেশিরভাগ কৌশল থেকে পৃথক যা কেবলমাত্র প্রযুক্তিগত সূচকগুলির উপর নির্ভর করে, তাই কিছু পরিমাণে বাজার ম্যানিপুলেশন এড়াতে পারে।
এই কৌশলটির মূল যুক্তি হ'ল চাঁদের ফেজ চক্রের বিভিন্ন পর্যায়ে ভিত্তি করে দীর্ঘ বা স্বল্প সুযোগ নির্ধারণ করা। চাঁদের ফেজটি গণনা করা হয়ঃ
চাঁদের ধাপের চক্রের দৈর্ঘ্য = ২৯.৫৩০.৫৮৮২ দিন
একটি পূর্ণিমার সময় দেওয়া, পূর্ণিমার সময় থেকে বর্তমান সময় পর্যন্ত দিনের সংখ্যা গণনা করা যেতে পারে
চাঁদের বয়স = চাঁদের পূর্ণিমার দিনগুলি % চাঁদের ধাপের চক্রের দৈর্ঘ্য
চাঁদের ধাপের মান = (1 + cos(চাঁদের বয়স / চাঁদের ধাপের চক্রের দৈর্ঘ্য * 2 * π)) / 2
চাঁদের ধাপের মান 0 থেকে 1 এর মধ্যে পরিবর্তিত হয়। যত বড় মান হবে ততই পূর্ণিমার কাছাকাছি, যখন ছোট মান হবে নতুন চাঁদের কাছাকাছি।
কৌশলটি চাঁদের ফেজ থ্রেশহোল্ডের উপর ভিত্তি করে দীর্ঘ বা সংক্ষিপ্ত সুযোগগুলি বিচার করে। যদি চাঁদের ফেজ মান দীর্ঘ থ্রেশহোল্ডের চেয়ে বড় হয় (ডিফল্ট 0.51), দীর্ঘ যাওয়ার সম্ভাবনা রয়েছে। যদি চাঁদের ফেজ মান সংক্ষিপ্ত থ্রেশহোল্ডের চেয়ে কম হয় (ডিফল্ট 0.49), সংক্ষিপ্ত যাওয়ার সম্ভাবনা রয়েছে।
এছাড়াও, কৌশলটি অনুকূল অবস্থার সময় ট্রেডিং সংকেত এড়াতে ট্রেডিং ভলিউম, আরএসআই এবং এমএসিডি এর মতো সূচকগুলিও একত্রিত করে। এটি কেবলমাত্র যখন ভলিউম বৃদ্ধি পায়, আরএসআই এবং এমএসিডি সংকেতগুলি সারিবদ্ধ হয় তখন অবস্থানগুলি খোলে।
এই কৌশলটির প্রধান সুবিধাগুলি হল:
সংক্ষেপে, এই কৌশলটি চাঁদের ধাপগুলির অনন্য সুবিধাগুলিকে পুরোপুরি ব্যবহার করে এবং উচ্চ সম্ভাব্যতার ট্রেডিং সুযোগগুলি সনাক্ত করতে একাধিক প্রযুক্তিগত সূচককে একত্রিত করে, বিপণনের ঝুঁকিগুলি কার্যকরভাবে সংজ্ঞায়িত করার জন্য ঝুঁকি নিয়ন্ত্রণ প্রক্রিয়াগুলিকে কাজে লাগায়।
এই কৌশলটির প্রধান ঝুঁকিগুলির মধ্যে রয়েছেঃ
এই ঝুঁকি নিয়ন্ত্রণের জন্য, নিম্নলিখিত ব্যবস্থা গ্রহণ করা যেতে পারেঃ
প্যারামিটার অপ্টিমাইজেশান এবং সংমিশ্রিত সূচকগুলির মাধ্যমে বাণিজ্যিক ঝুঁকিগুলি ব্যাপকভাবে হ্রাস করা যেতে পারে।
এই কৌশলকে আরও উন্নত করার সুযোগ রয়েছেঃ
এই কৌশলটি মূলধারার প্রযুক্তিগত সূচকগুলির সাথে একত্রিত অনন্য চন্দ্র ফেজ ট্রেডিং সংকেতের মাধ্যমে দক্ষ বিটকয়েন ট্রেডিং উপলব্ধি করে। একক সূচক কৌশলগুলির তুলনায়, এই কৌশলটি বাজারের ম্যানিপুলেশন ঝুঁকির বিরুদ্ধে আরও ভাল hedge করতে পারে এবং অনন্য সুবিধাগুলি রয়েছে। ঝুঁকি প্রতিরোধ এবং পরামিতি অপ্টিমাইজেশান বন্ধ করার জন্য স্টপ লস ব্যবহার করে, স্থিতিশীল এবং ভাল রিটার্ন স্থিতিশীলভাবে অর্জন করা যেতে পারে। এই কৌশলটি উন্নত করার জন্য এখনও অনেক জায়গা রয়েছে এবং এটির প্রতিশ্রুতিবদ্ধ অ্যাপ্লিকেশন সম্ভাবনা রয়েছে।
/*backtest start: 2023-01-08 00:00:00 end: 2024-01-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Lunar Phase Strategy by Symphoenix", overlay=true) // Input parameters start_year = input(2023, title="Start year") end_year = input(2023, title="End year") longPhaseThreshold = input(0.51, title="Long Phase Threshold") shortPhaseThreshold = input(0.49, title="Short Phase Threshold") riskPerTrade = input(0.05, title="Risk Per Trade (as a % of Equity)") stopLossPerc = input(0.01, title="Stop Loss Percentage") atrLength = input(21, title="ATR Length for Volatility") trailPerc = input(0.1, title="Trailing Stop Percentage") maxDrawdownPerc = input(0.1, title="Maximum Drawdown Percentage") volumeLength = input(7, title="Volume MA Length") // Constants for lunar phase calculation and ATR atr = ta.atr(atrLength) volMA = ta.sma(volume, volumeLength) // Volume moving average // Improved Lunar Phase Calculation calculateLunarPhase() => moonCycleLength = 29.5305882 daysSinceKnownFullMoon = (time - timestamp("2019-12-12T05:12:00")) / (24 * 60 * 60 * 1000) lunarAge = daysSinceKnownFullMoon % moonCycleLength phase = ((1 + math.cos(lunarAge / moonCycleLength * 2 * math.pi)) / 2) phase lunarPhase = calculateLunarPhase() // Advanced Volume Analysis priceChange = ta.change(close) obv = ta.cum(priceChange > 0 ? volume : priceChange < 0 ? -volume : 0) // Additional Technical Indicators rsi = ta.rsi(close, 14) [macdLine, signalLine, _] = ta.macd(close, 12, 26, 9) // Calculate Position Size based on Volatility and Account Equity calculatePositionSize() => equity = strategy.equity riskAmount = equity * riskPerTrade positionSize = riskAmount / atr if positionSize > 1000000000000 positionSize := 1000000000000 positionSize positionSize = calculatePositionSize() // Maximum Drawdown Tracking var float maxPortfolioValue = na maxPortfolioValue := math.max(maxPortfolioValue, strategy.equity) drawdown = (maxPortfolioValue - strategy.equity) / maxPortfolioValue // Check for maximum drawdown if drawdown > maxDrawdownPerc strategy.close_all() strategy.cancel_all() // Volume Analysis isVolumeConfirmed = volume > volMA // Date Check for Backtesting Period isWithinBacktestPeriod = year >= start_year and year <= end_year // Entry and Exit Conditions // Adjusted Entry and Exit Conditions longCondition = lunarPhase > longPhaseThreshold and lunarPhase < 0.999 and isVolumeConfirmed and obv > obv[1] and rsi < 70 and macdLine > signalLine and isWithinBacktestPeriod shortCondition = lunarPhase < shortPhaseThreshold and lunarPhase > 0.001 and isVolumeConfirmed and obv < obv[1] and rsi > 30 and macdLine < signalLine and isWithinBacktestPeriod if longCondition if strategy.position_size < 0 strategy.close_all() if strategy.position_size < positionSize strategy.entry("Long", strategy.long, qty=positionSize) strategy.exit("Exit Long", "Long", trail_offset=atr * trailPerc, trail_points=atr) if shortCondition if strategy.position_size > 0 strategy.close_all() if strategy.position_size > -positionSize strategy.entry("Short", strategy.short, qty=positionSize) strategy.exit("Exit Short", "Short", trail_offset=atr * trailPerc, trail_points=atr) // Implementing Stop-Loss Logic longStopLoss = strategy.position_avg_price * (1 - stopLossPerc) shortStopLoss = strategy.position_avg_price * (1 + stopLossPerc) if strategy.position_size > 0 and close < longStopLoss strategy.close("Long") if strategy.position_size < 0 and close > shortStopLoss strategy.close("Short")