Trading Strategies

๐Ÿ”ฅ Vibe Prompt

"Implement three trading strategies in Python: Golden Cross, RSI Mean Reversion, and Breakout. Backtest each and compare performance."

Strategy 1: Golden/Death Cross

def golden_cross_strategy(data):
    """Buy when MA5 > MA20, sell when MA5 < MA20"""
    data['Signal'] = 0
    data.loc[data['MA5'] > data['MA20'], 'Signal'] = 1
    data.loc[data['MA5'] <= data['MA20'], 'Signal'] = -1
    
    data['Position'] = data['Signal'].shift(1)
    data['Return'] = data['Close'].pct_change()
    data['Strategy_Return'] = data['Position'] * data['Return']
    
    return data['Strategy_Return'].cumsum()

Strategy 2: RSI Mean Reversion

def rsi_mean_reversion(data):
    """Buy when RSI < 30 (oversold), sell when RSI > 70 (overbought)"""
    data['Signal'] = 0
    data.loc[data['RSI'] < 30, 'Signal'] = 1
    data.loc[data['RSI'] > 70, 'Signal'] = -1
    
    data['Position'] = data['Signal'].shift(1)
    data['Return'] = data['Close'].pct_change()
    data['Strategy_Return'] = data['Position'] * data['Return']
    
    return data['Strategy_Return'].cumsum()

Strategy 3: Breakout

def breakout_strategy(data, window=20):
    """Buy when price breaks above recent high"""
    data['High_20'] = data['High'].rolling(window).max()
    data['Low_20'] = data['Low'].rolling(window).min()
    
    data['Signal'] = 0
    data.loc[data['Close'] > data['High_20'].shift(1), 'Signal'] = 1
    data.loc[data['Close'] < data['Low_20'].shift(1), 'Signal'] = -1
    
    data['Position'] = data['Signal'].shift(1)
    data['Return'] = data['Close'].pct_change()
    data['Strategy_Return'] = data['Position'] * data['Return']
    
    return data['Strategy_Return'].cumsum()

Compare All Strategies

import matplotlib.pyplot as plt

results = pd.DataFrame({
    'Golden Cross': golden_cross_strategy(data),
    'RSI Reversion': rsi_mean_reversion(data),
    'Breakout': breakout_strategy(data),
    'Buy & Hold': data['Close'].pct_change().cumsum()
})

results.plot(figsize=(14, 6))
plt.title('Strategy Comparison')
plt.ylabel('Cumulative Return')
plt.grid(True, alpha=0.3)
plt.show()

print('Final Returns:')
print(results.iloc[-1])

Practice Exercise

๐Ÿ’ก Vibe Practice: Ask AI to create a strategy backtest report with Sharpe Ratio, Max Drawdown, Win Rate, and Profit Factor for each strategy.

Chapter Summary

  • Understand core concepts and principles
  • Master implementation methods and techniques
  • Familiar with common issues and solutions
  • Able to apply in real projects

Further Reading

  • Official documentation and API references
  • Open source examples on GitHub
  • Technical books and online courses
  • Community discussions and tech blogs

Unlock Full Tutorial

This chapter is paid content. Join the project to unlock over 5000 words of deep analysis, including 10+ god-tier Prompts and real Source Code examples!