🪙
 Get student discount & enjoy best sellers ~$7/week

Remember: The content and code examples provided here are designed to help readers understand concepts and principles. These are learning resources and may not be suitable for direct implementation in live environments. For customized, production-ready scripts tailored to your specific strategy and risk parameters, Consult with our expert developers.

Shooting Star

1. Introduction & Hook

The Shooting Star candlestick pattern is a powerful tool in the arsenal of technical traders. It signals potential reversals and helps traders anticipate market turning points. In this comprehensive guide, we will explore the Shooting Star strategy in Pine Script, dissect its mathematical foundation, and provide practical implementations in Pine Script, Python, Node.js, and more. Whether you are a beginner or an advanced trader, this article will equip you with the knowledge to leverage the Shooting Star for robust trading strategies.

2. What is Shooting Star?

The Shooting Star is a single-candle bearish reversal pattern. It forms after an uptrend and is characterized by a small real body near the session's low, a long upper shadow, and little or no lower shadow. The pattern suggests that buyers pushed prices higher, but sellers regained control, driving the price back down. This shift in momentum often precedes a downward move, making the Shooting Star a valuable signal for traders seeking to capitalize on reversals.

3. Market Logic Behind the Strategy

The market psychology behind the Shooting Star is rooted in the battle between bulls and bears. When the market is in an uptrend, buyers are in control. The Shooting Star forms when buyers attempt to push the price higher, but sellers overwhelm them, causing the price to fall back near the open. This rejection of higher prices signals waning bullish momentum and the potential for a bearish reversal. Traders use this pattern to identify exhaustion in uptrends and to time their entries for short positions or to exit long trades.

4. Mathematical Foundation & Formula

The Shooting Star pattern is defined by specific mathematical criteria:

  • The candle must have a small real body near the session's low.
  • The upper shadow must be at least twice the length of the real body.
  • The lower shadow should be very small or nonexistent.

Let:

  • Open = Opening price
  • Close = Closing price
  • High = Highest price
  • Low = Lowest price

Then:

  • Real Body = abs(Close - Open)
  • Upper Shadow = High - max(Open, Close)
  • Lower Shadow = min(Open, Close) - Low

The pattern is valid if:

  • Upper Shadow >= 2 * Real Body
  • Lower Shadow <= 0.1 * Real Body
  • Real Body is near the session's low

5. Step-by-Step Calculation Example

Suppose we have the following candlestick data:

  • Open: 100
  • High: 110
  • Low: 99
  • Close: 101

Calculations:

  • Real Body = abs(101 - 100) = 1
  • Upper Shadow = 110 - max(100, 101) = 110 - 101 = 9
  • Lower Shadow = min(100, 101) - 99 = 100 - 99 = 1

Check criteria:

  • Upper Shadow (9) >= 2 * Real Body (2): True
  • Lower Shadow (1) <= 0.1 * Real Body (0.1): False

In this example, the lower shadow is too large, so this is not a valid Shooting Star. Adjusting the close to 100.1 would yield:

  • Real Body = abs(100.1 - 100) = 0.1
  • Upper Shadow = 110 - 100.1 = 9.9
  • Lower Shadow = 100 - 99 = 1

Now, Upper Shadow (9.9) >= 2 * Real Body (0.2): True

  • Lower Shadow (1) <= 0.1 * Real Body (0.01): False
  • To get a valid Shooting Star, the lower shadow must be much smaller than the real body.

    6. Pine Script Implementation

    //@version=6
    // Shooting Star Indicator
    indicator("Shooting Star", overlay=true)
    // Calculate candle components
    realBody = math.abs(close - open)
    upperShadow = high - math.max(open, close)
    lowerShadow = math.min(open, close) - low
    // Shooting Star conditions
    isShootingStar = upperShadow >= 2 * realBody and lowerShadow <= 0.1 * realBody and close < open
    plotshape(isShootingStar, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Shooting Star")
    

    This Pine Script code identifies Shooting Star patterns and plots a red triangle above each occurrence. The logic strictly follows the mathematical criteria outlined earlier.

    7. Parameters & Customization in Pine Script

    Traders may wish to adjust the sensitivity of the pattern. For example, you can parameterize the shadow ratios:

    //@version=6
    indicator("Custom Shooting Star", overlay=true)
    upperShadowRatio = input.float(2.0, title="Upper Shadow Ratio")
    lowerShadowRatio = input.float(0.1, title="Lower Shadow Ratio")
    realBody = math.abs(close - open)
    upperShadow = high - math.max(open, close)
    lowerShadow = math.min(open, close) - low
    isShootingStar = upperShadow >= upperShadowRatio * realBody and lowerShadow <= lowerShadowRatio * realBody and close < open
    plotshape(isShootingStar, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Shooting Star")
    

    With these parameters, traders can fine-tune the indicator to match their trading style or the volatility of the asset.

    8. Python & FastAPI + NoSQL Implementation

    To automate Shooting Star detection in Python, you can use Pandas for data manipulation and FastAPI for serving results via an API. Here is a simplified example:

    import pandas as pd
    from fastapi import FastAPI
    from pydantic import BaseModel
    import uvicorn
    
    app = FastAPI()
    
    class Candle(BaseModel):
        open: float
        high: float
        low: float
        close: float
    
    def is_shooting_star(candle):
        real_body = abs(candle['close'] - candle['open'])
        upper_shadow = candle['high'] - max(candle['open'], candle['close'])
        lower_shadow = min(candle['open'], candle['close']) - candle['low']
        return upper_shadow >= 2 * real_body and lower_shadow <= 0.1 * real_body and candle['close'] < candle['open']
    
    @app.post("/detect")
    def detect_shooting_star(candle: Candle):
        result = is_shooting_star(candle.dict())
        return {"is_shooting_star": result}
    
    # To run: uvicorn script:app --reload
    

    For NoSQL storage, you can use MongoDB to store detected patterns for later analysis or backtesting.

    9. Node.js / JavaScript Implementation

    Node.js is well-suited for real-time detection of candlestick patterns. Here is a basic implementation:

    // Shooting Star detection in JavaScript
    function isShootingStar(candle) {
      const realBody = Math.abs(candle.close - candle.open);
      const upperShadow = candle.high - Math.max(candle.open, candle.close);
      const lowerShadow = Math.min(candle.open, candle.close) - candle.low;
      return upperShadow >= 2 * realBody && lowerShadow <= 0.1 * realBody && candle.close < candle.open;
    }
    
    // Example usage
    const candle = { open: 100, high: 110, low: 99.9, close: 99.8 };
    console.log(isShootingStar(candle)); // true or false
    

    This function can be integrated into trading bots or web applications for real-time pattern recognition.

    10. Backtesting & Performance Insights

    Backtesting is essential to validate the effectiveness of the Shooting Star strategy. In Pine Script, you can use the strategy functions to simulate trades:

    //@version=6
    strategy("Shooting Star Backtest", overlay=true)
    realBody = math.abs(close - open)
    upperShadow = high - math.max(open, close)
    lowerShadow = math.min(open, close) - low
    isShootingStar = upperShadow >= 2 * realBody and lowerShadow <= 0.1 * realBody and close < open
    if isShootingStar
        strategy.entry("Short", strategy.short)
    

    Performance metrics such as win rate, profit factor, and drawdown can be analyzed in TradingView's strategy tester. For Python, use backtrader or bt libraries to simulate trades and analyze results.

    11. Risk Management Integration

    Risk management is crucial for any trading strategy. Integrate position sizing, stop-loss, and take-profit mechanisms to protect your capital. Here is an example in Pine Script:

    //@version=6
    strategy("Shooting Star with Risk Management", overlay=true)
    realBody = math.abs(close - open)
    upperShadow = high - math.max(open, close)
    lowerShadow = math.min(open, close) - low
    isShootingStar = upperShadow >= 2 * realBody and lowerShadow <= 0.1 * realBody and close < open
    risk = input.float(1, title="Risk % per Trade")
    stopLoss = input.float(2, title="Stop Loss %")
    takeProfit = input.float(4, title="Take Profit %")
    if isShootingStar
        strategy.entry("Short", strategy.short, qty_percent=risk)
        strategy.exit("Exit", from_entry="Short", stop=close * (1 + stopLoss / 100), limit=close * (1 - takeProfit / 100))
    

    This script sizes positions based on risk and sets automated exits for stop-loss and take-profit.

    12. Combining with Other Indicators

    The Shooting Star can be combined with other indicators for confirmation. For example, use RSI to filter trades:

    //@version=6
    indicator("Shooting Star + RSI", overlay=true)
    realBody = math.abs(close - open)
    upperShadow = high - math.max(open, close)
    lowerShadow = math.min(open, close) - low
    isShootingStar = upperShadow >= 2 * realBody and lowerShadow <= 0.1 * realBody and close < open
    rsi = ta.rsi(close, 14)
    confirm = isShootingStar and rsi > 70
    plotshape(confirm, style=shape.triangledown, location=location.abovebar, color=color.purple, size=size.small, title="Confirmed Shooting Star")
    

    This approach reduces false signals and improves reliability.

    13. Multi-Timeframe & Multi-Asset Usage

    The Shooting Star strategy is versatile and can be applied across multiple timeframes and asset classes. In Pine Script, use the request.security function to access higher timeframe data:

    //@version=6
    indicator("Multi-Timeframe Shooting Star", overlay=true)
    higher_tf = input.timeframe("D", title="Higher Timeframe")
    [htf_open, htf_high, htf_low, htf_close] = request.security(syminfo.tickerid, higher_tf, [open, high, low, close])
    realBody = math.abs(htf_close - htf_open)
    upperShadow = htf_high - math.max(htf_open, htf_close)
    lowerShadow = math.min(htf_open, htf_close) - htf_low
    isShootingStar = upperShadow >= 2 * realBody and lowerShadow <= 0.1 * realBody and htf_close < htf_open
    plotshape(isShootingStar, style=shape.triangledown, location=location.abovebar, color=color.orange, size=size.small, title="HTF Shooting Star")
    

    This enables traders to spot patterns on daily charts while trading intraday. The strategy is effective for equities, forex, crypto, and options, with minor adjustments for each market's volatility and liquidity.

    14. AI/ML Enhancements

    Machine learning can enhance the Shooting Star strategy by optimizing parameters and integrating it into larger models. Feature engineering may include:

    • Frequency of Shooting Star occurrences
    • Success rate after the pattern
    • Contextual features (trend strength, volume, volatility)

    Example: Reinforcement Learning (RL) agent optimizing parameters

    # Pseudocode for RL agent
    for episode in range(num_episodes):
        state = get_market_state()
        action = agent.select_action(state)  # e.g., adjust upperShadowRatio
        reward = simulate_trading(action)
        agent.learn(state, action, reward)
    

    Python libraries like TensorFlow, PyTorch, and Stable Baselines can be used for implementation.

    15. Automation with Playwright/Jest

    Automated testing ensures the reliability of your strategy scripts. Use playwright for end-to-end browser testing or Jest for unit tests in JavaScript.

    // Jest unit test for Shooting Star function
    const { isShootingStar } = require('./shootingStar');
    test('detects valid Shooting Star', () => {
      const candle = { open: 100, high: 110, low: 99.9, close: 99.8 };
      expect(isShootingStar(candle)).toBe(true);
    });
    
    // Playwright e2e test pseudocode
    import { test, expect } from '@playwright/test';
    test('Shooting Star indicator renders', async ({ page }) => {
      await page.goto('http://localhost:3000');
      await expect(page.locator('.shooting-star-indicator')).toBeVisible();
    });
    

    These tests help catch errors early and maintain code quality.

    16. Advanced Variations

    Advanced traders may develop variations such as:

    • Double Shooting Star: Two consecutive patterns for stronger signals
    • Volume-Weighted Shooting Star: Require high volume for confirmation
    • Adaptive thresholds based on volatility

    These enhancements can be implemented by modifying the base logic and adding new conditions.

    17. Common Pitfalls & Misconceptions

    • Assuming every Shooting Star leads to a reversal: False signals are common, especially in strong trends.
    • Ignoring market context: Always consider trend strength, support/resistance, and volume.
    • Overfitting parameters: Excessive optimization can reduce robustness.
    • Neglecting risk management: Even high-probability patterns can fail.

    18. Conclusion & Key Takeaways

    The Shooting Star is a valuable reversal pattern for technical traders. By understanding its logic, mathematical foundation, and practical implementation, you can integrate it into robust trading systems. Always combine it with sound risk management and confirmatory indicators for best results. Automation, backtesting, and AI/ML enhancements can further boost your edge in the markets.

    Glossary of Key Terms

    • Real Body: The difference between the open and close of a candlestick.
    • Upper Shadow: The distance between the high and the higher of open or close.
    • Lower Shadow: The distance between the low and the lower of open or close.
    • Reversal Pattern: A chart pattern that signals a change in trend direction.
    • Backtesting: Testing a strategy on historical data to evaluate performance.
    • Risk Management: Techniques to control losses and protect capital.
    • Multi-Timeframe Analysis: Using multiple chart timeframes for confirmation.
    • Feature Engineering: Creating new input features for machine learning models.

    Comparison Table

    StrategyPattern TypeMarket ContextReliabilityBest Use
    Shooting StarBearish ReversalUptrendModerateShort entries, exit longs
    HammerBullish ReversalDowntrendModerateLong entries, exit shorts
    DojiIndecisionAnyLowWait for confirmation
    EngulfingReversalTrendHighTrend reversals

    Frequently Asked Questions about Shooting Star

    What is a Shooting Star in Pine Script?

    A Shooting Star is a technical indicator used to identify potential buying or selling opportunities in financial markets.

    It is characterized by a candlestick with a long lower wick and a short upper wick, indicating that the price has retreated significantly from its recent peak but then bounced back up.

    How do I use Shooting Star in Pine Script trading?

    The Shooting Star indicator can be used as a standalone signal or combined with other indicators to confirm trades.

    • Buy: When the candlestick has a long lower wick and closes above its midpoint, it may be a buying opportunity.
    • Sell: When the candlestick has a long lower wick and closes below its midpoint, it may be a selling opportunity.

    What are the advantages of using Shooting Star in Pine Script?

    The Shooting Star indicator offers several advantages:

    • It can help identify potential reversals and trends changes.
    • It is relatively simple to use and understand.
    • It can be used on various time frames, from short-term to long-term.

    Overall, the Shooting Star indicator is a valuable tool for traders looking to improve their technical analysis skills.

    Can I backtest Shooting Star in Pine Script?

    Yes, you can definitely backtest the Shooting Star indicator using Pine Script.

    Backtesting allows you to test the strategy on historical data and evaluate its performance before applying it to live markets.

    • Use Pine Script's built-in backtesting features or third-party libraries like PineScript-Backtest.
    • Evaluate metrics such as profit/loss, drawdown, and Sharpe ratio to assess the strategy's performance.

    How do I optimize Shooting Star in Pine Script?

    Optimizing the Shooting Star indicator involves adjusting parameters to suit your trading style and risk tolerance.

    Common optimization techniques include:

    • Adjusting the length of the lower wick to filter out noise.
    • Setting a threshold for the midpoint price to increase sensitivity.
    • Using multiple time frames to combine signals.

    Experiment with different settings and evaluate their impact on your trading results.



    How to post a request?

    Posting a request is easy. Get Matched with experts within 5 minutes

    • 1:1 Live Session: $60/hour
    • MVP Development / Code Reviews: $200 budget
    • Bot Development: $400 per bot
    • Portfolio Optimization: $300 per portfolio
    • Custom Trading Strategy: $99 per strategy
    • Custom AI Agents: Starting at $100 per agent
    Professional Services: Trading Debugging $60/hr, MVP Development $200, AI Trading Bot $400, Portfolio Optimization $300, Trading Strategy $99, Custom AI Agent $100. Contact for expert help.
    ⭐⭐⭐ 500+ Clients Helped | 💯 100% Satisfaction Rate


    Was this content helpful?

    Help us improve this article