اس حکمت عملی میں چاند کے مرحلے کا استعمال ٹریڈنگ سگنلز کے طور پر کیا جاتا ہے ، جس میں آر ایس آئی ، ایم اے سی ڈی ، او بی وی اور دیگر اشارے کے ساتھ مل کر بٹ کوائن جیسی کریپٹو کرنسیوں کے لئے تجارتی مواقع کی نشاندہی کی جاتی ہے۔ اس حکمت عملی کا بنیادی فائدہ یہ ہے کہ چاند کے مرحلے ، ایک بیرونی عنصر کو ٹریڈنگ ٹرگر کے طور پر استعمال کیا جاتا ہے ، جو زیادہ تر حکمت عملیوں سے مختلف ہے جو صرف تکنیکی اشارے پر انحصار کرتی ہے ، اس طرح کسی حد تک مارکیٹ میں ہیرا پھیری سے بچ سکتی ہے۔
اس حکمت عملی کا بنیادی منطق قمری مرحلے کے مختلف مراحل کی بنیاد پر طویل یا مختصر مواقع کا تعین کرنا ہے۔ قمری مرحلے کا حساب اس طرح کیا جاتا ہے:
قمری مرحلے کی لمبائی = 29.5305882 دن
مکمل چاند کے وقت کو دیکھتے ہوئے، اس مکمل چاند سے موجودہ وقت تک دنوں کی تعداد کا حساب لگایا جا سکتا ہے
قمری عمر = چاند کے مکمل ہونے کے بعد سے دن معلوم ہیں ٪ قمری مرحلے کی مدت
قمری مرحلے کی قیمت = (1 + cos(قمر کی عمر / قمری مرحلے کی سائیکل کی لمبائی * 2 * π)) / 2
چاند کے مرحلے کی قدر 0 سے 1 کے درمیان اتار چڑھاؤ کرتی ہے۔ قدر جتنی زیادہ ہوگی اس کا مطلب چاند کی مکمل روشنی کے قریب ہوگا ، جبکہ قدر جتنی کم ہوگی اس کا مطلب چاند کی نئی روشنی کے قریب ہوگا۔
حکمت عملی قمری مرحلے کی حدوں کی بنیاد پر طویل یا مختصر مواقع کا فیصلہ کرتی ہے۔ اگر قمری مرحلے کی قیمت طویل حد سے زیادہ ہے (ڈیفالٹ 0.51) ، تو طویل ہونے کا امکان ہے۔ اگر قمری مرحلے کی قیمت مختصر حد سے کم ہے (ڈیفالٹ 0.49) ، تو مختصر ہونے کا امکان ہے۔
اس کے علاوہ ، اس حکمت عملی میں تجارتی حجم ، آر ایس آئی اور ایم اے سی ڈی جیسے اشارے کو بھی جوڑ دیا گیا ہے تاکہ ناقص حالات کے دوران تجارتی سگنل سے بچ سکے۔ یہ صرف اس وقت پوزیشنیں کھولتا ہے جب حجم میں اضافہ ہوتا ہے ، آر ایس آئی اور ایم اے سی ڈی سگنل سیدھے ہوجاتے ہیں۔
اس حکمت عملی کے اہم فوائد:
خلاصہ یہ ہے کہ یہ حکمت عملی چاند کے مراحل کے منفرد فوائد کا بھرپور استعمال کرتی ہے اور متعدد تکنیکی اشارے کو یکجا کرتی ہے تاکہ اعلی امکان والے تجارتی مواقع کی نشاندہی کی جاسکے ، جبکہ تجارتی خطرات کو مؤثر طریقے سے بیان کرنے کے لئے رسک کنٹرول کے طریقہ کار کو فائدہ اٹھایا جاسکے۔
اس حکمت عملی کے اہم خطرات میں شامل ہیں:
ان خطرات پر قابو پانے کے لیے مندرجہ ذیل اقدامات کئے جا سکتے ہیں:
پیرامیٹر کی اصلاح اور مشترکہ اشارے کے ذریعے تجارتی خطرات کو بڑی حد تک کم کیا جاسکتا ہے۔
اس حکمت عملی کو مزید بہتر بنانے کے لئے ابھی بھی گنجائش ہے:
یہ حکمت عملی چاند کے مرحلے کے تجارتی سگنلز کے ذریعہ موثر بٹ کوائن ٹریڈنگ کا احساس کرتی ہے ، جو مرکزی دھارے کے تکنیکی اشارے کے ساتھ مل کر ہے۔ سنگل اشارے کی حکمت عملی کے مقابلے میں ، یہ حکمت عملی مارکیٹ میں ہیرا پھیری کے خطرات کے خلاف بہتر طور پر ہیجنگ کرسکتی ہے اور اس کے منفرد فوائد ہیں۔ خطرات سے بچنے اور پیرامیٹر کی اصلاح کے ل stop اسٹاپ نقصان کو فائدہ اٹھانے سے ، مستحکم اور اچھی واپسی مستحکم حاصل کی جاسکتی ہے۔ اس حکمت عملی کو بہتر بنانے کے لئے ابھی بھی بہت زیادہ گنجائش ہے اور اس میں درخواست کے امکانات کا وعدہ ہے۔
/*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")