Automated backup - 20250719_000001
This commit is contained in:
79
FinanceReport/Chase0053_Activity20250601_20250701_20250718.CSV
Executable file
79
FinanceReport/Chase0053_Activity20250601_20250701_20250718.CSV
Executable file
@@ -0,0 +1,79 @@
|
||||
Transaction Date,Post Date,Description,Category,Type,Amount,Memo
|
||||
06/30/2025,07/01/2025,ALP*Programming,Professional Services,Sale,-6.08,
|
||||
06/30/2025,07/01/2025,TCGPLAYER.COM,Shopping,Return,0.21,
|
||||
06/30/2025,07/01/2025,AMAZON MKTPL*NQ7SV9K20,Shopping,Sale,-322.49,
|
||||
06/28/2025,06/30/2025,ALP*Taobao,Shopping,Sale,-3.04,
|
||||
06/28/2025,06/30/2025,ALP*DepartmentStores,Shopping,Sale,-15.35,
|
||||
06/29/2025,06/30/2025,AMAZON MKTPL*NQ7Q38KO1,Shopping,Sale,-5.16,
|
||||
06/27/2025,06/29/2025,GAMESTOP #6292,Entertainment,Sale,-537.49,
|
||||
06/27/2025,06/29/2025,ALP*Taobao,Shopping,Sale,-5.02,
|
||||
06/26/2025,06/29/2025,ALP*Taobao,Shopping,Sale,-6.95,
|
||||
06/26/2025,06/29/2025,ALP*Taobao,Shopping,Sale,-3.05,
|
||||
06/27/2025,06/29/2025,SAMSCLUB #8119,Shopping,Sale,-109.63,
|
||||
06/27/2025,06/29/2025,ALP*Taobao,Shopping,Sale,-2.37,
|
||||
06/28/2025,06/29/2025,WM SUPERCENTER #5771,Groceries,Sale,-3.65,
|
||||
06/26/2025,06/27/2025,ALP*Taobao,Shopping,Sale,-7.53,
|
||||
06/24/2025,06/25/2025,YAMI.COM,Groceries,Sale,-68.98,
|
||||
06/23/2025,06/24/2025,ALP*Programming,Professional Services,Sale,-13.93,
|
||||
06/22/2025,06/23/2025,ALP*Taobao,Shopping,Sale,-11.15,
|
||||
06/21/2025,06/22/2025,SAMS CLUB #8119,Gas,Sale,-37.57,
|
||||
06/21/2025,06/22/2025,PORKBUN* PORKBUN.COM,Bills & Utilities,Sale,-1.00,
|
||||
06/21/2025,06/22/2025,ALP*Taobao,Shopping,Sale,-1.36,
|
||||
06/21/2025,06/22/2025,SAMSCLUB #8119,Shopping,Sale,-86.27,
|
||||
06/21/2025,06/22/2025,TCGPLAYER.COM,Shopping,Return,0.21,
|
||||
06/20/2025,06/22/2025,ALP*PersonalServices,Personal,Sale,-16.35,
|
||||
06/21/2025,06/22/2025,SAMSCLUB #8119,Shopping,Sale,-1.08,
|
||||
06/21/2025,06/22/2025,ALP*Taobao,Shopping,Sale,-5.07,
|
||||
06/19/2025,06/20/2025,ALP*Programming,Professional Services,Sale,-7.61,
|
||||
06/19/2025,06/20/2025,ALP*PersonalServices,Personal,Sale,-27.84,
|
||||
06/20/2025,06/20/2025,OPENAI *CHATGPT SUBSCR,Shopping,Sale,-20.00,
|
||||
06/20/2025,06/20/2025,GOOGLE *SVCSCAS.6364-2,Personal,Sale,-5.00,
|
||||
06/19/2025,06/20/2025,ALP*PersonalServices,Personal,Sale,-27.84,
|
||||
06/17/2025,06/19/2025,ALP*Taobao,Shopping,Sale,-21.59,
|
||||
06/18/2025,06/19/2025,TCGPLAYER.COM,Shopping,Return,32.97,
|
||||
06/16/2025,06/17/2025,WALGREENS #9916,Health & Wellness,Sale,-18.72,
|
||||
06/16/2025,06/17/2025,AMAZON MKTPL*NA6BN8HT0,Shopping,Sale,-31.16,
|
||||
06/13/2025,06/16/2025,ALLEGNT AIR WXP,Travel,Sale,-273.50,
|
||||
06/12/2025,06/13/2025,SAMSCLUB #8119,Shopping,Sale,-91.62,
|
||||
06/11/2025,06/12/2025,TCGPLAYER.COM,Shopping,Return,0.54,
|
||||
06/11/2025,06/12/2025,TCGPLAYER.COM,Shopping,Sale,-38.73,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-32.97,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-7.53,
|
||||
06/11/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-31.48,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-9.58,
|
||||
06/11/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-108.46,
|
||||
06/10/2025,06/11/2025,ALP*Taobao,Shopping,Sale,-10.44,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-11.70,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-29.48,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-5.91,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-17.00,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-12.64,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-7.27,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-12.13,
|
||||
06/09/2025,06/11/2025,SAMSCLUB.COM,Shopping,Sale,-58.90,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-8.46,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-6.97,
|
||||
06/10/2025,06/11/2025,TCGPLAYER.COM,Shopping,Sale,-33.85,
|
||||
06/09/2025,06/10/2025,ALP*Taobao,Home,Sale,-3.64,
|
||||
06/09/2025,06/10/2025,ALP*PersonalServices,Personal,Sale,-24.50,
|
||||
06/08/2025,06/10/2025,ALP*PersonalServices,Personal,Sale,-1.39,
|
||||
06/06/2025,06/09/2025,THAI RICE RESTAURANT,Food & Drink,Sale,-20.31,
|
||||
06/08/2025,06/09/2025,ALP*PersonalServices,Personal,Sale,-27.84,
|
||||
06/08/2025,06/09/2025,ALP*PersonalServices,Personal,Sale,-27.84,
|
||||
06/08/2025,06/09/2025,ALP*PersonalServices,Personal,Sale,-24.71,
|
||||
06/07/2025,06/08/2025,Payment Thank You-Mobile,,Payment,1688.51,
|
||||
06/08/2025,06/08/2025,WALMART.COM,Shopping,Sale,-46.31,
|
||||
06/03/2025,06/05/2025,MINUTECLINIC #21532,Health & Wellness,Sale,-30.00,
|
||||
06/05/2025,06/05/2025,WALMART.COM,Shopping,Sale,-47.24,
|
||||
06/03/2025,06/04/2025,ALP*Taobao,Shopping,Sale,-1.39,
|
||||
06/03/2025,06/04/2025,ALP*Taobao,Shopping,Sale,-22.95,
|
||||
06/03/2025,06/04/2025,WALGREENS #9916,Health & Wellness,Sale,-10.00,
|
||||
06/01/2025,06/03/2025,ALP*Taobao,Shopping,Sale,-4.17,
|
||||
06/02/2025,06/03/2025,ALP*Taobao,Shopping,Return,4.17,
|
||||
06/01/2025,06/02/2025,ALP*Taobao,Shopping,Sale,-1.25,
|
||||
06/01/2025,06/02/2025,ALP*Taobao,Shopping,Sale,-6.95,
|
||||
06/01/2025,06/01/2025,ANNUAL MEMBERSHIP FEE,Fees & Adjustments,Fee,-95.00,
|
||||
05/31/2025,06/01/2025,ALP*Taobao,Shopping,Sale,-20.57,
|
||||
05/31/2025,06/01/2025,SP TG MALL,Shopping,Sale,-156.20,
|
||||
05/31/2025,06/01/2025,ALP*Taobao,Shopping,Sale,-11.40,
|
||||
05/29/2025,06/01/2025,ALP*RetailStores,Shopping,Sale,-2.78,
|
||||
|
137
backtest/PROJECT_STRUCTURE.md
Normal file
137
backtest/PROJECT_STRUCTURE.md
Normal file
@@ -0,0 +1,137 @@
|
||||
# Enhanced Emotional Damage Strategy - Project Structure
|
||||
|
||||
## 🎯 Quick Start
|
||||
```bash
|
||||
cd /home/will/docker/backtest/strategy/emotional-damage/
|
||||
# Edit config.json to modify parameters
|
||||
python3 run_strategy_with_config.py
|
||||
```
|
||||
|
||||
## 📁 Directory Structure
|
||||
|
||||
### Core Strategy Files
|
||||
```
|
||||
/strategy/emotional-damage/
|
||||
├── config.json # 🔧 Configuration parameters
|
||||
├── run_strategy_with_config.py # 🚀 Main strategy runner
|
||||
├── README_CONFIG.md # 📖 Usage documentation
|
||||
├── backtest_emotional_damage_enhanced_v2.py # 💎 Enhanced strategy implementation
|
||||
├── backtest_emotional_damage.py # 📚 Original strategy (reference)
|
||||
└── enhanced-emotional-damage.txt # 📝 Strategy description
|
||||
```
|
||||
|
||||
### Data & Database
|
||||
```
|
||||
/data/
|
||||
├── stock_data.db # 💾 Main SQLite database
|
||||
├── data_manager.py # 🔧 Database management
|
||||
└── __init__.py
|
||||
```
|
||||
|
||||
### Reports & Results
|
||||
```
|
||||
/reports/ # 📊 Generated reports
|
||||
├── enhanced_strategy_report_*.pdf # 📈 PDF performance report
|
||||
├── enhanced_trades_*.csv # 📋 Trade history CSV
|
||||
└── detailed_trades_*.txt # 🔍 Detailed trade log
|
||||
|
||||
/results/ # 💾 Strategy objects
|
||||
└── enhanced_strategy_*.pkl # 🎯 Serialized strategy
|
||||
```
|
||||
|
||||
### Chat History
|
||||
```
|
||||
/chat_history/ # 💬 Conversation logs
|
||||
├── enhanced_strategy_configuration_session.json
|
||||
├── enhanced_emotional_damage_full_conversation.json
|
||||
└── ...
|
||||
```
|
||||
|
||||
### Infrastructure
|
||||
```
|
||||
/
|
||||
├── Dockerfile # 🐳 Docker container setup
|
||||
├── docker-compose.yml # 🐳 Docker orchestration
|
||||
├── requirements.txt # 📦 Python dependencies
|
||||
├── download_data.py # 📥 Data download scripts
|
||||
├── download_qqq_data.py
|
||||
└── create_fear_greed_index.py # 🧮 F&G index creation
|
||||
```
|
||||
|
||||
## 🎛️ Configuration System
|
||||
|
||||
### Key Files:
|
||||
- **config.json**: All strategy parameters
|
||||
- **run_strategy_with_config.py**: Zero-token parameter testing
|
||||
- **README_CONFIG.md**: Complete usage guide
|
||||
|
||||
### Configuration Categories:
|
||||
1. **Strategy Parameters**: Capital, thresholds, stop-loss
|
||||
2. **Technical Indicators**: RSI, MACD, SMA settings
|
||||
3. **Output Settings**: PDF, CSV, console output control
|
||||
4. **Data Settings**: Date ranges, ticker filters
|
||||
|
||||
## 📈 Strategy Features
|
||||
|
||||
### Enhanced Capabilities:
|
||||
- ✅ **Gradual Transitions**: 4-step position changes over 4 weeks
|
||||
- ✅ **Technical Filtering**: RSI, MACD, SMA with 2/3 requirement
|
||||
- ✅ **Stop-Loss Protection**: 15% threshold with automatic QQQ replacement
|
||||
- ✅ **Integer Shares**: Realistic whole-share trading
|
||||
- ✅ **Complete Audit Trail**: F&G index, cash, portfolio state per trade
|
||||
|
||||
### Risk Management:
|
||||
- **Stop-Loss**: Configurable threshold (default 15%)
|
||||
- **Volatility Filtering**: 30-day historical volatility calculation
|
||||
- **Technical Validation**: Multiple indicator confirmation
|
||||
- **Gradual Execution**: Reduced market impact
|
||||
|
||||
## 🔧 Maintenance
|
||||
|
||||
### Regular Tasks:
|
||||
1. **Data Updates**: Run download scripts periodically
|
||||
2. **Parameter Tuning**: Modify config.json and test
|
||||
3. **Report Review**: Check /reports/ for latest results
|
||||
4. **Backup**: Save important .pkl files from /results/
|
||||
|
||||
### File Cleanup:
|
||||
- Old reports are automatically cleaned during major updates
|
||||
- Keep latest strategy pickle files for analysis
|
||||
- Chat history preserved for reference
|
||||
|
||||
## 🚀 Usage Examples
|
||||
|
||||
### Basic Run:
|
||||
```bash
|
||||
python3 run_strategy_with_config.py
|
||||
```
|
||||
|
||||
### Conservative Strategy:
|
||||
```json
|
||||
{
|
||||
"fear_threshold": 30,
|
||||
"greed_threshold": 70,
|
||||
"stop_loss_threshold": 0.10
|
||||
}
|
||||
```
|
||||
|
||||
### Aggressive Strategy:
|
||||
```json
|
||||
{
|
||||
"fear_threshold": 20,
|
||||
"greed_threshold": 80,
|
||||
"required_indicators": 1
|
||||
}
|
||||
```
|
||||
|
||||
## 📊 Output Files
|
||||
|
||||
Every run generates:
|
||||
- **PDF Report**: Visual performance analysis
|
||||
- **CSV Data**: Machine-readable trade history
|
||||
- **Detailed Log**: Human-readable trade breakdown
|
||||
- **Strategy Object**: For advanced analysis
|
||||
|
||||
---
|
||||
*Last Updated: 2025-07-18*
|
||||
*Status: Production Ready* ✅
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"session_info": {
|
||||
"date": "2025-07-18",
|
||||
"topic": "Enhanced Emotional Damage Strategy Configuration System",
|
||||
"duration": "Multiple hours",
|
||||
"status": "Completed Successfully"
|
||||
},
|
||||
"summary": {
|
||||
"objective": "Fix Enhanced strategy bugs and create configurable system",
|
||||
"achievements": [
|
||||
"Fixed critical share count fractional bug (all shares now integers)",
|
||||
"Fixed stop-loss logic (15% threshold now triggers correctly)",
|
||||
"Fixed cash management (immediate QQQ purchase after stop-loss)",
|
||||
"Enhanced trade recording (added F&G index, cash position, portfolio state)",
|
||||
"Created comprehensive configurable system with config.json",
|
||||
"Generated complete PDF and CSV reports with all trade details",
|
||||
"Created user-friendly configuration documentation"
|
||||
]
|
||||
},
|
||||
"key_issues_resolved": [
|
||||
{
|
||||
"issue": "Share count was fractional",
|
||||
"solution": "Added int() casting to all share calculations",
|
||||
"impact": "Realistic trading with whole shares only"
|
||||
},
|
||||
{
|
||||
"issue": "Stop-loss not triggering",
|
||||
"solution": "Fixed action matching from 'BUY_VOLATILE' to 'BUY_GRADUAL'",
|
||||
"impact": "21 stop-losses triggered correctly, protecting capital"
|
||||
},
|
||||
{
|
||||
"issue": "Missing trade details",
|
||||
"solution": "Added F&G index, cash balance, portfolio state to each trade",
|
||||
"impact": "Complete trading audit trail"
|
||||
},
|
||||
{
|
||||
"issue": "Manual parameter changes required coding",
|
||||
"solution": "Created config.json system with automatic report generation",
|
||||
"impact": "Zero-token parameter testing and optimization"
|
||||
}
|
||||
],
|
||||
"final_results": {
|
||||
"total_trades": 203,
|
||||
"stop_losses_triggered": 21,
|
||||
"trading_period": "2008-2025",
|
||||
"files_created": [
|
||||
"config.json - Configuration parameters",
|
||||
"run_strategy_with_config.py - Main configurable strategy runner",
|
||||
"README_CONFIG.md - Usage instructions",
|
||||
"Multiple PDF/CSV reports with complete trade details"
|
||||
]
|
||||
},
|
||||
"user_feedback": {
|
||||
"key_observations": [
|
||||
"DXCM example: 11,274 shares at $2.22, dropped to $1.00 (55% loss)",
|
||||
"Stop-loss should have triggered at 15% but didn't initially",
|
||||
"Cash management: sell → immediate QQQ purchase was missing",
|
||||
"Need F&G index and cash position in trade records"
|
||||
],
|
||||
"satisfaction": "High - all issues resolved, configurable system created"
|
||||
},
|
||||
"technical_details": {
|
||||
"strategy_enhancements": [
|
||||
"Gradual transitions (4-step process over 4 weeks)",
|
||||
"Technical indicator filtering (MACD, RSI, SMA with 2/3 requirement)",
|
||||
"15% stop-loss protection with automatic QQQ replacement",
|
||||
"Volatility calculation over past 30 days (not just fear period)",
|
||||
"Integer share counts for realistic trading"
|
||||
],
|
||||
"configuration_options": {
|
||||
"strategy_params": "initial_capital, fear/greed thresholds, stop_loss, transition_steps",
|
||||
"technical_indicators": "RSI, MACD, SMA settings and requirements",
|
||||
"output_settings": "PDF, CSV, detailed trades, console output control",
|
||||
"data_settings": "Date ranges, minimum ticker records"
|
||||
}
|
||||
},
|
||||
"code_quality": {
|
||||
"bug_fixes": "All critical bugs resolved",
|
||||
"documentation": "Comprehensive README with usage examples",
|
||||
"maintainability": "Configurable system reduces need for code changes",
|
||||
"testing": "Verified with full backtest showing expected behavior"
|
||||
},
|
||||
"next_steps_for_user": [
|
||||
"Modify config.json parameters as needed",
|
||||
"Run 'python3 run_strategy_with_config.py' to test new configurations",
|
||||
"Review generated reports in /reports/ directory",
|
||||
"Use different config files for parameter comparison testing"
|
||||
]
|
||||
}
|
||||
@@ -1,313 +0,0 @@
|
||||
import sqlite3
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
import seaborn as sns
|
||||
from matplotlib.backends.backend_pdf import PdfPages
|
||||
from datetime import datetime
|
||||
import warnings
|
||||
warnings.filterwarnings('ignore')
|
||||
|
||||
# Import the strategy
|
||||
import sys
|
||||
import os
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), 'strategy', 'emotional-damage'))
|
||||
from backtest_emotional_damage import run_emotional_damage_backtest
|
||||
|
||||
def calculate_performance_metrics(values, dates):
|
||||
"""Calculate comprehensive performance metrics"""
|
||||
|
||||
# Convert to pandas Series if needed
|
||||
if isinstance(values, list):
|
||||
values = pd.Series(values, index=dates)
|
||||
|
||||
# Total return
|
||||
total_return = (values.iloc[-1] / values.iloc[0] - 1) * 100
|
||||
|
||||
# Annualized return
|
||||
years = (dates[-1] - dates[0]).days / 365.25
|
||||
annual_return = ((values.iloc[-1] / values.iloc[0]) ** (1/years) - 1) * 100
|
||||
|
||||
# Calculate daily returns
|
||||
daily_returns = values.pct_change().dropna()
|
||||
|
||||
# Volatility (annualized)
|
||||
volatility = daily_returns.std() * np.sqrt(252) * 100
|
||||
|
||||
# Sharpe ratio (assuming 0% risk-free rate)
|
||||
sharpe_ratio = (daily_returns.mean() * 252) / (daily_returns.std() * np.sqrt(252))
|
||||
|
||||
# Maximum drawdown
|
||||
peak = values.expanding().max()
|
||||
drawdown = (values - peak) / peak
|
||||
max_drawdown = drawdown.min() * 100
|
||||
max_drawdown_date = drawdown.idxmin()
|
||||
|
||||
# Annual returns by year
|
||||
annual_returns = {}
|
||||
for year in range(dates[0].year, dates[-1].year + 1):
|
||||
year_mask = [d.year == year for d in dates]
|
||||
if any(year_mask):
|
||||
year_values = values[year_mask]
|
||||
if len(year_values) > 1:
|
||||
year_return = (year_values.iloc[-1] / year_values.iloc[0] - 1) * 100
|
||||
annual_returns[year] = year_return
|
||||
|
||||
return {
|
||||
'total_return': total_return,
|
||||
'annual_return': annual_return,
|
||||
'volatility': volatility,
|
||||
'sharpe_ratio': sharpe_ratio,
|
||||
'max_drawdown': max_drawdown,
|
||||
'max_drawdown_date': max_drawdown_date,
|
||||
'annual_returns': annual_returns
|
||||
}
|
||||
|
||||
def create_pdf_report():
|
||||
"""Generate comprehensive PDF report"""
|
||||
|
||||
print("Generating PDF report...")
|
||||
|
||||
# Run the backtest
|
||||
results = run_emotional_damage_backtest()
|
||||
|
||||
strategy = results['strategy']
|
||||
portfolio_df = results['portfolio_df']
|
||||
benchmark_data = results['benchmark_data']
|
||||
strategy_metrics = results['strategy_metrics']
|
||||
qqq_metrics = results['qqq_metrics']
|
||||
spy_metrics = results['spy_metrics']
|
||||
|
||||
# Create PDF
|
||||
pdf_filename = f"emotional_damage_strategy_report_{datetime.now().strftime('%Y%m%d_%H%M%S')}.pdf"
|
||||
|
||||
with PdfPages(pdf_filename) as pdf:
|
||||
|
||||
# Page 1: Title and Executive Summary
|
||||
fig, ax = plt.subplots(figsize=(11, 8.5))
|
||||
ax.axis('off')
|
||||
|
||||
# Title
|
||||
ax.text(0.5, 0.9, 'Emotional Damage Strategy',
|
||||
fontsize=24, fontweight='bold', ha='center')
|
||||
ax.text(0.5, 0.85, 'Backtest Performance Report',
|
||||
fontsize=18, ha='center')
|
||||
ax.text(0.5, 0.8, f'Generated on {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}',
|
||||
fontsize=12, ha='center')
|
||||
|
||||
# Strategy description
|
||||
strategy_desc = """
|
||||
Strategy Description:
|
||||
The Emotional Damage strategy is a tactical allocation approach that:
|
||||
• Starts with 100% QQQ allocation
|
||||
• Switches to 100% cash when CNN Fear & Greed Index < 25 (extreme fear)
|
||||
• Buys top 10 most volatile QQQ stocks when F&G recovers > 25
|
||||
• Returns to QQQ when F&G Index > 75 (extreme greed)
|
||||
|
||||
Backtest Period: {} to {}
|
||||
Total Trades Executed: {}
|
||||
""".format(
|
||||
portfolio_df.index[0].strftime('%Y-%m-%d'),
|
||||
portfolio_df.index[-1].strftime('%Y-%m-%d'),
|
||||
len(strategy.trades)
|
||||
)
|
||||
|
||||
ax.text(0.05, 0.65, strategy_desc, fontsize=11, va='top')
|
||||
|
||||
# Performance summary table
|
||||
summary_data = [
|
||||
['Metric', 'Emotional Damage', 'QQQ Buy & Hold', 'SPY Buy & Hold'],
|
||||
['Total Return', f"{strategy_metrics['total_return']:.1f}%",
|
||||
f"{qqq_metrics['total_return']:.1f}%", f"{spy_metrics['total_return']:.1f}%"],
|
||||
['Annual Return', f"{strategy_metrics['annual_return']:.1f}%",
|
||||
f"{qqq_metrics['annual_return']:.1f}%", f"{spy_metrics['annual_return']:.1f}%"],
|
||||
['Max Drawdown', f"{strategy_metrics['max_drawdown']:.1f}%",
|
||||
f"{qqq_metrics['max_drawdown']:.1f}%", f"{spy_metrics['max_drawdown']:.1f}%"],
|
||||
['Sharpe Ratio', f"{strategy_metrics['sharpe_ratio']:.2f}",
|
||||
f"{qqq_metrics['sharpe_ratio']:.2f}", f"{spy_metrics['sharpe_ratio']:.2f}"],
|
||||
['Max DD Date', strategy_metrics['max_drawdown_date'].strftime('%Y-%m-%d'),
|
||||
qqq_metrics['max_drawdown_date'].strftime('%Y-%m-%d'),
|
||||
spy_metrics['max_drawdown_date'].strftime('%Y-%m-%d')]
|
||||
]
|
||||
|
||||
# Create table
|
||||
table = ax.table(cellText=summary_data[1:], colLabels=summary_data[0],
|
||||
cellLoc='center', loc='center', bbox=[0.05, 0.15, 0.9, 0.35])
|
||||
table.auto_set_font_size(False)
|
||||
table.set_fontsize(10)
|
||||
table.scale(1, 2)
|
||||
|
||||
# Style header row
|
||||
for i in range(len(summary_data[0])):
|
||||
table[(0, i)].set_facecolor('#4472C4')
|
||||
table[(0, i)].set_text_props(weight='bold', color='white')
|
||||
|
||||
plt.tight_layout()
|
||||
pdf.savefig(fig, bbox_inches='tight')
|
||||
plt.close()
|
||||
|
||||
# Page 2: Portfolio Value Over Time
|
||||
fig, ax = plt.subplots(figsize=(11, 8.5))
|
||||
|
||||
# Normalize all series to same starting value for comparison
|
||||
start_value = 100000
|
||||
strategy_values = portfolio_df['value']
|
||||
qqq_values = benchmark_data['qqq_value']
|
||||
spy_values = benchmark_data['spy_value']
|
||||
|
||||
# Plot all three strategies
|
||||
ax.plot(strategy_values.index, strategy_values, label='Emotional Damage Strategy',
|
||||
linewidth=2, color='red')
|
||||
ax.plot(qqq_values.index, qqq_values, label='QQQ Buy & Hold',
|
||||
linewidth=2, color='blue')
|
||||
ax.plot(spy_values.index, spy_values, label='SPY Buy & Hold',
|
||||
linewidth=2, color='green')
|
||||
|
||||
ax.set_title('Portfolio Value Comparison Over Time', fontsize=16, fontweight='bold')
|
||||
ax.set_xlabel('Date', fontsize=12)
|
||||
ax.set_ylabel('Portfolio Value ($)', fontsize=12)
|
||||
ax.legend(fontsize=11)
|
||||
ax.grid(True, alpha=0.3)
|
||||
|
||||
# Format y-axis as currency
|
||||
ax.yaxis.set_major_formatter(plt.FuncFormatter(lambda x, p: f'${x:,.0f}'))
|
||||
|
||||
plt.xticks(rotation=45)
|
||||
plt.tight_layout()
|
||||
pdf.savefig(fig, bbox_inches='tight')
|
||||
plt.close()
|
||||
|
||||
# Page 3: Annual Returns Comparison
|
||||
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(11, 8.5))
|
||||
|
||||
# Annual returns bar chart
|
||||
years = sorted(set(strategy_metrics['annual_returns'].keys()) |
|
||||
set(qqq_metrics['annual_returns'].keys()) |
|
||||
set(spy_metrics['annual_returns'].keys()))
|
||||
|
||||
strategy_annual = [strategy_metrics['annual_returns'].get(year, 0) for year in years]
|
||||
qqq_annual = [qqq_metrics['annual_returns'].get(year, 0) for year in years]
|
||||
spy_annual = [spy_metrics['annual_returns'].get(year, 0) for year in years]
|
||||
|
||||
x = np.arange(len(years))
|
||||
width = 0.25
|
||||
|
||||
ax1.bar(x - width, strategy_annual, width, label='Emotional Damage', color='red', alpha=0.7)
|
||||
ax1.bar(x, qqq_annual, width, label='QQQ Buy & Hold', color='blue', alpha=0.7)
|
||||
ax1.bar(x + width, spy_annual, width, label='SPY Buy & Hold', color='green', alpha=0.7)
|
||||
|
||||
ax1.set_title('Annual Returns Comparison', fontsize=14, fontweight='bold')
|
||||
ax1.set_xlabel('Year')
|
||||
ax1.set_ylabel('Annual Return (%)')
|
||||
ax1.set_xticks(x)
|
||||
ax1.set_xticklabels(years, rotation=45)
|
||||
ax1.legend()
|
||||
ax1.grid(True, alpha=0.3)
|
||||
ax1.axhline(y=0, color='black', linestyle='-', alpha=0.5)
|
||||
|
||||
# Drawdown chart
|
||||
strategy_peak = strategy_values.expanding().max()
|
||||
strategy_dd = (strategy_values - strategy_peak) / strategy_peak * 100
|
||||
|
||||
qqq_peak = qqq_values.expanding().max()
|
||||
qqq_dd = (qqq_values - qqq_peak) / qqq_peak * 100
|
||||
|
||||
spy_peak = spy_values.expanding().max()
|
||||
spy_dd = (spy_values - spy_peak) / spy_peak * 100
|
||||
|
||||
ax2.fill_between(strategy_dd.index, strategy_dd, 0, alpha=0.3, color='red', label='Emotional Damage')
|
||||
ax2.fill_between(qqq_dd.index, qqq_dd, 0, alpha=0.3, color='blue', label='QQQ Buy & Hold')
|
||||
ax2.fill_between(spy_dd.index, spy_dd, 0, alpha=0.3, color='green', label='SPY Buy & Hold')
|
||||
|
||||
ax2.set_title('Drawdown Comparison', fontsize=14, fontweight='bold')
|
||||
ax2.set_xlabel('Date')
|
||||
ax2.set_ylabel('Drawdown (%)')
|
||||
ax2.legend()
|
||||
ax2.grid(True, alpha=0.3)
|
||||
|
||||
plt.tight_layout()
|
||||
pdf.savefig(fig, bbox_inches='tight')
|
||||
plt.close()
|
||||
|
||||
# Page 4: Strategy Trades and Fear & Greed Index
|
||||
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(11, 8.5))
|
||||
|
||||
# Fear & Greed Index over time
|
||||
fg_data = portfolio_df['fg_index']
|
||||
ax1.plot(fg_data.index, fg_data, color='purple', linewidth=1)
|
||||
ax1.axhline(y=25, color='red', linestyle='--', alpha=0.7, label='Fear Threshold (25)')
|
||||
ax1.axhline(y=75, color='green', linestyle='--', alpha=0.7, label='Greed Threshold (75)')
|
||||
ax1.fill_between(fg_data.index, 0, 25, alpha=0.2, color='red', label='Extreme Fear')
|
||||
ax1.fill_between(fg_data.index, 75, 100, alpha=0.2, color='green', label='Extreme Greed')
|
||||
|
||||
ax1.set_title('CNN Fear & Greed Index Over Time', fontsize=14, fontweight='bold')
|
||||
ax1.set_ylabel('Fear & Greed Index')
|
||||
ax1.legend()
|
||||
ax1.grid(True, alpha=0.3)
|
||||
ax1.set_ylim(0, 100)
|
||||
|
||||
# Strategy state over time
|
||||
states = portfolio_df['state']
|
||||
state_colors = {'QQQ_HOLD': 'blue', 'CASH_WAIT': 'gray', 'VOLATILE_STOCKS': 'orange'}
|
||||
|
||||
for i, state in enumerate(states.unique()):
|
||||
mask = states == state
|
||||
ax2.scatter(states[mask].index, [i] * sum(mask),
|
||||
c=state_colors.get(state, 'black'), label=state, alpha=0.6, s=1)
|
||||
|
||||
ax2.set_title('Strategy State Over Time', fontsize=14, fontweight='bold')
|
||||
ax2.set_xlabel('Date')
|
||||
ax2.set_ylabel('Strategy State')
|
||||
ax2.set_yticks(range(len(states.unique())))
|
||||
ax2.set_yticklabels(states.unique())
|
||||
ax2.legend()
|
||||
ax2.grid(True, alpha=0.3)
|
||||
|
||||
plt.tight_layout()
|
||||
pdf.savefig(fig, bbox_inches='tight')
|
||||
plt.close()
|
||||
|
||||
# Page 5: Trade Log (Recent Trades)
|
||||
fig, ax = plt.subplots(figsize=(11, 8.5))
|
||||
ax.axis('off')
|
||||
|
||||
ax.text(0.5, 0.95, 'Recent Trade Log (Last 20 Trades)',
|
||||
fontsize=16, fontweight='bold', ha='center')
|
||||
|
||||
# Get recent trades
|
||||
recent_trades = strategy.trades[-20:] if len(strategy.trades) >= 20 else strategy.trades
|
||||
|
||||
trade_data = [['Date', 'Action', 'Ticker', 'Shares', 'Price', 'Value']]
|
||||
|
||||
for trade in recent_trades:
|
||||
trade_data.append([
|
||||
trade['date'].strftime('%Y-%m-%d'),
|
||||
trade['action'],
|
||||
trade['ticker'],
|
||||
f"{trade['shares']:.2f}",
|
||||
f"${trade['price']:.2f}",
|
||||
f"${trade['value']:,.2f}"
|
||||
])
|
||||
|
||||
# Create table
|
||||
if len(trade_data) > 1:
|
||||
table = ax.table(cellText=trade_data[1:], colLabels=trade_data[0],
|
||||
cellLoc='center', loc='center', bbox=[0.05, 0.1, 0.9, 0.8])
|
||||
table.auto_set_font_size(False)
|
||||
table.set_fontsize(9)
|
||||
table.scale(1, 1.5)
|
||||
|
||||
# Style header row
|
||||
for i in range(len(trade_data[0])):
|
||||
table[(0, i)].set_facecolor('#4472C4')
|
||||
table[(0, i)].set_text_props(weight='bold', color='white')
|
||||
|
||||
plt.tight_layout()
|
||||
pdf.savefig(fig, bbox_inches='tight')
|
||||
plt.close()
|
||||
|
||||
print(f"PDF report saved as: {pdf_filename}")
|
||||
return pdf_filename
|
||||
|
||||
if __name__ == "__main__":
|
||||
create_pdf_report()
|
||||
@@ -1,23 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Main entry point for the backtest platform
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
from data.data_manager import DataManager
|
||||
|
||||
def main():
|
||||
print("回测平台启动中...")
|
||||
|
||||
# Initialize data manager
|
||||
dm = DataManager()
|
||||
|
||||
print("开始下载QQQ成分股数据 (2000-2025)...")
|
||||
dm.update_all_data()
|
||||
|
||||
print("数据下载完成!")
|
||||
print(f"可用股票: {len(dm.get_available_tickers())} 只")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
1
backtest/reports/detailed_trades_20250718_182730.txt
Normal file
1
backtest/reports/detailed_trades_20250718_182730.txt
Normal file
File diff suppressed because one or more lines are too long
233
backtest/reports/detailed_trades_20250718_183737.txt
Normal file
233
backtest/reports/detailed_trades_20250718_183737.txt
Normal file
@@ -0,0 +1,233 @@
|
||||
Enhanced Emotional Damage Strategy - Detailed Trades Report
|
||||
========================================================================================================================
|
||||
|
||||
📊 交易摘要:
|
||||
总交易数: 216
|
||||
交易时间: 2008-01-09 到 2025-05-23
|
||||
|
||||
交易类型统计:
|
||||
SELL_GRADUAL: 120
|
||||
BUY_GRADUAL: 68
|
||||
STOP_LOSS: 15
|
||||
BUY_QQQ_STOPLOSS: 13
|
||||
|
||||
📋 详细交易记录:
|
||||
========================================================================================================================
|
||||
No Date Action Ticker Shares Price Value F&G Cash State
|
||||
========================================================================================================================
|
||||
1 2008-01-09 SELL_GRADUAL QQQ 609 $ 41.37 $ 25,193 26 $25,208 FEAR_TRANSITION
|
||||
2 2008-01-10 SELL_GRADUAL QQQ 609 $ 41.43 $ 25,230 33 $50,438 FEAR_TRANSITION
|
||||
3 2008-01-11 SELL_GRADUAL QQQ 609 $ 40.62 $ 24,736 28 $75,174 FEAR_TRANSITION
|
||||
4 2008-01-14 SELL_GRADUAL QQQ 609 $ 41.33 $ 25,167 31 $100,341 FEAR_TRANSITION
|
||||
5 2008-01-16 BUY_GRADUAL ILMN 745 $ 33.63 $ 25,057 27 $75,284 GREED_TRANSITION
|
||||
6 2008-01-17 BUY_GRADUAL TMUS 852 $ 29.42 $ 25,063 20 $50,221 GREED_TRANSITION
|
||||
7 2008-01-18 BUY_GRADUAL DXCM 11274 $ 2.22 $ 25,085 20 $25,137 GREED_TRANSITION
|
||||
8 2008-01-22 BUY_GRADUAL SBUX 3549 $ 7.07 $ 25,085 19 $52 GREED_TRANSITION
|
||||
9 2008-03-10 STOP_LOSS DXCM 11274 $ 1.51 $ 17,052 27 $17,104 VOLATILE_STOCKS
|
||||
10 2008-03-10 BUY_QQQ_STOPLOSS QQQ 478 $ 35.62 $ 17,026 27 $78 VOLATILE_STOCKS
|
||||
11 2008-10-06 STOP_LOSS SBUX 3549 $ 4.91 $ 17,427 21 $17,504 VOLATILE_STOCKS
|
||||
12 2008-10-06 BUY_QQQ_STOPLOSS QQQ 577 $ 30.16 $ 17,402 21 $103 VOLATILE_STOCKS
|
||||
13 2008-10-23 STOP_LOSS ILMN 745 $ 22.69 $ 16,907 29 $17,010 VOLATILE_STOCKS
|
||||
14 2008-10-23 BUY_QQQ_STOPLOSS QQQ 640 $ 26.38 $ 16,882 29 $128 VOLATILE_STOCKS
|
||||
15 2008-10-24 STOP_LOSS TMUS 852 $ 20.55 $ 17,511 26 $17,639 VOLATILE_STOCKS
|
||||
16 2008-10-24 BUY_QQQ_STOPLOSS QQQ 685 $ 25.53 $ 17,488 26 $151 VOLATILE_STOCKS
|
||||
17 2009-05-05 BUY_GRADUAL QQQ 1 $ 30.39 $ 30 76 $121 QQQ_TRANSITION
|
||||
18 2009-05-06 BUY_GRADUAL QQQ 1 $ 30.40 $ 30 82 $91 QQQ_TRANSITION
|
||||
19 2009-05-07 BUY_GRADUAL QQQ 1 $ 29.69 $ 30 78 $61 QQQ_TRANSITION
|
||||
20 2009-05-08 BUY_GRADUAL QQQ 1 $ 29.71 $ 30 75 $31 QQQ_TRANSITION
|
||||
21 2010-05-27 SELL_GRADUAL QQQ 596 $ 40.00 $ 23,842 34 $23,873 FEAR_TRANSITION
|
||||
22 2010-05-28 SELL_GRADUAL QQQ 596 $ 39.77 $ 23,702 33 $47,575 FEAR_TRANSITION
|
||||
23 2010-06-01 SELL_GRADUAL QQQ 596 $ 39.40 $ 23,484 27 $71,059 FEAR_TRANSITION
|
||||
24 2010-06-02 SELL_GRADUAL QQQ 596 $ 40.34 $ 24,040 38 $95,099 FEAR_TRANSITION
|
||||
25 2010-06-04 BUY_GRADUAL SIRI 2679 $ 8.87 $ 23,772 37 $71,327 GREED_TRANSITION
|
||||
26 2010-06-07 BUY_GRADUAL NFLX 1524 $ 15.59 $ 23,766 35 $47,562 GREED_TRANSITION
|
||||
27 2010-06-08 BUY_GRADUAL TMUS 1776 $ 13.38 $ 23,771 34 $23,791 GREED_TRANSITION
|
||||
28 2010-06-09 BUY_GRADUAL LULU 1216 $ 19.55 $ 23,773 33 $18 GREED_TRANSITION
|
||||
29 2010-11-04 SELL_GRADUAL SIRI 669 $ 13.31 $ 8,904 80 $8,922 QQQ_TRANSITION
|
||||
30 2010-11-04 SELL_GRADUAL NFLX 381 $ 23.97 $ 9,134 80 $18,057 QQQ_TRANSITION
|
||||
31 2010-11-04 SELL_GRADUAL TMUS 444 $ 18.36 $ 8,151 80 $26,207 QQQ_TRANSITION
|
||||
32 2010-11-04 SELL_GRADUAL LULU 304 $ 22.50 $ 6,840 80 $33,047 QQQ_TRANSITION
|
||||
33 2010-11-05 SELL_GRADUAL SIRI 669 $ 13.85 $ 9,268 80 $42,315 QQQ_TRANSITION
|
||||
34 2010-11-05 SELL_GRADUAL NFLX 381 $ 24.01 $ 9,149 80 $51,464 QQQ_TRANSITION
|
||||
35 2010-11-05 SELL_GRADUAL TMUS 444 $ 18.92 $ 8,402 80 $59,866 QQQ_TRANSITION
|
||||
36 2010-11-05 SELL_GRADUAL LULU 304 $ 24.05 $ 7,310 80 $67,176 QQQ_TRANSITION
|
||||
37 2010-11-05 BUY_GRADUAL QQQ 709 $ 47.10 $ 33,392 80 $33,784 QQQ_TRANSITION
|
||||
38 2010-11-08 SELL_GRADUAL SIRI 669 $ 14.03 $ 9,389 78 $43,173 QQQ_TRANSITION
|
||||
39 2010-11-08 SELL_GRADUAL NFLX 381 $ 24.16 $ 9,206 78 $52,378 QQQ_TRANSITION
|
||||
40 2010-11-08 SELL_GRADUAL TMUS 444 $ 19.71 $ 8,753 78 $61,131 QQQ_TRANSITION
|
||||
41 2010-11-08 SELL_GRADUAL LULU 304 $ 24.77 $ 7,532 78 $68,662 QQQ_TRANSITION
|
||||
42 2010-11-08 BUY_GRADUAL QQQ 708 $ 47.16 $ 33,388 78 $35,274 QQQ_TRANSITION
|
||||
43 2010-11-09 SELL_GRADUAL SIRI 669 $ 13.49 $ 9,026 74 $44,300 QQQ_TRANSITION
|
||||
44 2010-11-09 SELL_GRADUAL NFLX 381 $ 24.35 $ 9,278 74 $53,577 QQQ_TRANSITION
|
||||
45 2010-11-09 SELL_GRADUAL TMUS 444 $ 19.34 $ 8,588 74 $62,165 QQQ_TRANSITION
|
||||
46 2010-11-09 SELL_GRADUAL LULU 304 $ 24.09 $ 7,323 74 $69,489 QQQ_TRANSITION
|
||||
47 2010-11-09 BUY_GRADUAL QQQ 712 $ 46.90 $ 33,396 74 $36,093 QQQ_TRANSITION
|
||||
48 2011-08-05 SELL_GRADUAL QQQ 532 $ 47.50 $ 25,272 16 $61,365 FEAR_TRANSITION
|
||||
49 2011-08-08 SELL_GRADUAL QQQ 532 $ 44.65 $ 23,751 12 $85,116 FEAR_TRANSITION
|
||||
50 2011-08-09 SELL_GRADUAL QQQ 532 $ 46.80 $ 24,897 21 $110,013 FEAR_TRANSITION
|
||||
51 2011-08-10 SELL_GRADUAL QQQ 532 $ 44.88 $ 23,878 16 $133,891 FEAR_TRANSITION
|
||||
52 2011-08-16 BUY_GRADUAL AMD 5281 $ 6.34 $ 33,482 28 $100,410 GREED_TRANSITION
|
||||
53 2011-08-17 BUY_GRADUAL DXCM 11842 $ 2.83 $ 33,483 27 $66,926 GREED_TRANSITION
|
||||
54 2011-08-18 BUY_GRADUAL ILMN 730 $ 45.82 $ 33,446 21 $33,480 GREED_TRANSITION
|
||||
55 2011-10-07 STOP_LOSS ILMN 730 $ 26.44 $ 19,301 46 $52,781 VOLATILE_STOCKS
|
||||
56 2011-10-07 BUY_QQQ_STOPLOSS QQQ 403 $ 47.80 $ 19,265 46 $33,516 VOLATILE_STOCKS
|
||||
57 2011-11-10 STOP_LOSS DXCM 11842 $ 1.77 $ 20,960 52 $54,476 VOLATILE_STOCKS
|
||||
58 2011-11-10 BUY_QQQ_STOPLOSS QQQ 417 $ 50.20 $ 20,934 52 $33,542 VOLATILE_STOCKS
|
||||
59 2012-01-20 SELL_GRADUAL AMD 1320 $ 6.42 $ 8,474 76 $42,017 QQQ_TRANSITION
|
||||
60 2012-01-20 BUY_GRADUAL QQQ 313 $ 53.05 $ 16,604 76 $25,413 QQQ_TRANSITION
|
||||
61 2012-01-23 SELL_GRADUAL AMD 1320 $ 6.52 $ 8,606 75 $34,019 QQQ_TRANSITION
|
||||
62 2012-01-23 BUY_GRADUAL QQQ 313 $ 53.06 $ 16,609 75 $17,410 QQQ_TRANSITION
|
||||
63 2012-01-24 SELL_GRADUAL AMD 1320 $ 6.53 $ 8,620 74 $26,030 QQQ_TRANSITION
|
||||
64 2012-01-24 BUY_GRADUAL QQQ 313 $ 52.97 $ 16,579 74 $9,451 QQQ_TRANSITION
|
||||
65 2012-01-25 SELL_GRADUAL AMD 1320 $ 6.73 $ 8,884 75 $18,335 QQQ_TRANSITION
|
||||
66 2012-01-25 BUY_GRADUAL QQQ 309 $ 53.63 $ 16,572 75 $1,763 QQQ_TRANSITION
|
||||
67 2012-05-21 SELL_GRADUAL QQQ 517 $ 55.57 $ 28,731 34 $30,494 FEAR_TRANSITION
|
||||
68 2012-05-22 SELL_GRADUAL QQQ 517 $ 55.51 $ 28,699 34 $59,192 FEAR_TRANSITION
|
||||
69 2012-05-23 SELL_GRADUAL QQQ 517 $ 55.62 $ 28,754 33 $87,946 FEAR_TRANSITION
|
||||
70 2012-05-24 SELL_GRADUAL QQQ 517 $ 55.25 $ 28,566 32 $116,512 FEAR_TRANSITION
|
||||
71 2012-05-29 BUY_GRADUAL VRTX 504 $ 57.80 $ 29,131 39 $87,381 GREED_TRANSITION
|
||||
72 2012-05-30 BUY_GRADUAL NXPI 1509 $ 19.31 $ 29,134 33 $58,247 GREED_TRANSITION
|
||||
73 2012-05-31 BUY_GRADUAL REGN 215 $ 135.28 $ 29,084 34 $29,162 GREED_TRANSITION
|
||||
74 2012-06-01 BUY_GRADUAL MNST 2478 $ 11.76 $ 29,133 27 $29 GREED_TRANSITION
|
||||
75 2012-07-20 STOP_LOSS AMD 1 $ 4.22 $ 4 55 $34 VOLATILE_STOCKS
|
||||
76 2012-10-22 STOP_LOSS MNST 2478 $ 7.62 $ 18,886 48 $18,920 VOLATILE_STOCKS
|
||||
77 2012-10-22 BUY_QQQ_STOPLOSS QQQ 320 $ 59.00 $ 18,879 48 $42 VOLATILE_STOCKS
|
||||
78 2012-11-27 STOP_LOSS VRTX 504 $ 39.98 $ 20,150 49 $20,191 VOLATILE_STOCKS
|
||||
79 2012-11-27 BUY_QQQ_STOPLOSS QQQ 347 $ 58.05 $ 20,143 49 $49 VOLATILE_STOCKS
|
||||
80 2013-01-24 SELL_GRADUAL NXPI 377 $ 26.46 $ 9,976 75 $10,025 QQQ_TRANSITION
|
||||
81 2013-01-24 SELL_GRADUAL REGN 53 $ 172.66 $ 9,151 75 $19,176 QQQ_TRANSITION
|
||||
82 2013-01-25 SELL_GRADUAL NXPI 377 $ 26.98 $ 10,173 77 $29,349 QQQ_TRANSITION
|
||||
83 2013-01-25 SELL_GRADUAL REGN 53 $ 174.00 $ 9,222 77 $38,571 QQQ_TRANSITION
|
||||
84 2013-01-25 BUY_GRADUAL QQQ 323 $ 60.20 $ 19,446 77 $19,125 QQQ_TRANSITION
|
||||
85 2013-01-28 SELL_GRADUAL NXPI 377 $ 27.35 $ 10,311 76 $29,436 QQQ_TRANSITION
|
||||
86 2013-01-28 SELL_GRADUAL REGN 53 $ 170.43 $ 9,033 76 $38,468 QQQ_TRANSITION
|
||||
87 2013-01-28 BUY_GRADUAL QQQ 322 $ 60.34 $ 19,429 76 $19,039 QQQ_TRANSITION
|
||||
88 2013-01-29 SELL_GRADUAL NXPI 377 $ 26.46 $ 9,976 77 $29,015 QQQ_TRANSITION
|
||||
89 2013-01-29 SELL_GRADUAL REGN 53 $ 174.48 $ 9,247 77 $38,263 QQQ_TRANSITION
|
||||
90 2013-01-29 BUY_GRADUAL QQQ 322 $ 60.35 $ 19,432 77 $18,831 QQQ_TRANSITION
|
||||
91 2015-08-25 SELL_GRADUAL QQQ 409 $ 90.96 $ 37,201 19 $56,032 FEAR_TRANSITION
|
||||
92 2015-08-26 SELL_GRADUAL QQQ 409 $ 95.54 $ 39,075 30 $95,107 FEAR_TRANSITION
|
||||
93 2015-08-27 SELL_GRADUAL QQQ 409 $ 97.96 $ 40,065 37 $135,171 FEAR_TRANSITION
|
||||
94 2015-08-28 SELL_GRADUAL QQQ 409 $ 97.94 $ 40,057 37 $175,229 FEAR_TRANSITION
|
||||
95 2015-09-01 BUY_GRADUAL NFLX 418 $ 105.79 $ 44,220 29 $131,008 GREED_TRANSITION
|
||||
96 2015-09-02 BUY_GRADUAL NVDA 81954 $ 0.54 $ 44,236 34 $86,772 GREED_TRANSITION
|
||||
97 2015-09-03 BUY_GRADUAL MU 2730 $ 16.20 $ 44,236 36 $42,537 GREED_TRANSITION
|
||||
98 2016-01-15 STOP_LOSS MU 2730 $ 10.82 $ 29,544 23 $72,080 VOLATILE_STOCKS
|
||||
99 2016-01-15 BUY_QQQ_STOPLOSS QQQ 314 $ 94.02 $ 29,522 23 $42,558 VOLATILE_STOCKS
|
||||
100 2017-02-16 SELL_GRADUAL NFLX 104 $ 142.01 $ 14,769 74 $57,327 QQQ_TRANSITION
|
||||
101 2017-02-16 SELL_GRADUAL NVDA 20488 $ 2.64 $ 54,120 74 $111,447 QQQ_TRANSITION
|
||||
102 2017-02-16 BUY_GRADUAL QQQ 663 $ 121.85 $ 80,788 74 $30,659 QQQ_TRANSITION
|
||||
103 2017-02-17 SELL_GRADUAL NFLX 104 $ 142.22 $ 14,791 74 $45,450 QQQ_TRANSITION
|
||||
104 2017-02-17 SELL_GRADUAL NVDA 20488 $ 2.64 $ 54,110 74 $99,560 QQQ_TRANSITION
|
||||
105 2017-02-17 BUY_GRADUAL QQQ 660 $ 122.38 $ 80,771 74 $18,790 QQQ_TRANSITION
|
||||
106 2017-02-21 SELL_GRADUAL NFLX 104 $ 142.60 $ 14,830 76 $33,620 QQQ_TRANSITION
|
||||
107 2017-02-21 SELL_GRADUAL NVDA 20488 $ 2.74 $ 56,048 76 $89,668 QQQ_TRANSITION
|
||||
108 2017-02-21 BUY_GRADUAL QQQ 657 $ 122.98 $ 80,800 76 $8,868 QQQ_TRANSITION
|
||||
109 2017-02-22 SELL_GRADUAL NFLX 104 $ 143.86 $ 14,961 75 $23,829 QQQ_TRANSITION
|
||||
110 2017-02-22 SELL_GRADUAL NVDA 20488 $ 2.73 $ 55,962 75 $79,791 QQQ_TRANSITION
|
||||
111 2018-12-18 SELL_GRADUAL QQQ 573 $ 151.55 $ 86,840 24 $166,631 FEAR_TRANSITION
|
||||
112 2018-12-19 SELL_GRADUAL QQQ 573 $ 147.83 $ 84,708 23 $251,339 FEAR_TRANSITION
|
||||
113 2018-12-20 SELL_GRADUAL QQQ 573 $ 145.69 $ 83,480 22 $334,818 FEAR_TRANSITION
|
||||
114 2018-12-21 SELL_GRADUAL QQQ 573 $ 141.17 $ 80,892 20 $415,711 FEAR_TRANSITION
|
||||
115 2018-12-27 BUY_GRADUAL ZS 2598 $ 40.17 $ 104,362 28 $311,349 GREED_TRANSITION
|
||||
116 2018-12-28 BUY_GRADUAL AMD 5857 $ 17.82 $ 104,372 26 $206,977 GREED_TRANSITION
|
||||
117 2018-12-31 BUY_GRADUAL MDB 1246 $ 83.74 $ 104,340 30 $102,637 GREED_TRANSITION
|
||||
118 2019-04-24 SELL_GRADUAL ZS 649 $ 64.99 $ 42,179 75 $144,816 QQQ_TRANSITION
|
||||
119 2019-04-24 SELL_GRADUAL AMD 1464 $ 28.46 $ 41,665 75 $186,481 QQQ_TRANSITION
|
||||
120 2019-04-24 SELL_GRADUAL MDB 311 $ 135.16 $ 42,035 75 $228,516 QQQ_TRANSITION
|
||||
121 2019-04-24 BUY_GRADUAL QQQ 835 $ 182.34 $ 152,252 75 $76,264 QQQ_TRANSITION
|
||||
122 2019-04-25 SELL_GRADUAL ZS 649 $ 66.96 $ 43,457 74 $119,721 QQQ_TRANSITION
|
||||
123 2019-04-25 SELL_GRADUAL AMD 1464 $ 27.66 $ 40,494 74 $160,216 QQQ_TRANSITION
|
||||
124 2019-04-25 SELL_GRADUAL MDB 311 $ 137.66 $ 42,812 74 $203,028 QQQ_TRANSITION
|
||||
125 2019-04-25 BUY_GRADUAL QQQ 832 $ 183.08 $ 152,320 74 $50,707 QQQ_TRANSITION
|
||||
126 2019-04-26 SELL_GRADUAL ZS 649 $ 66.94 $ 43,444 74 $94,151 QQQ_TRANSITION
|
||||
127 2019-04-26 SELL_GRADUAL AMD 1464 $ 27.88 $ 40,816 74 $134,968 QQQ_TRANSITION
|
||||
128 2019-04-26 SELL_GRADUAL MDB 311 $ 138.98 $ 43,223 74 $178,191 QQQ_TRANSITION
|
||||
129 2019-04-26 BUY_GRADUAL QQQ 831 $ 183.24 $ 152,273 74 $25,917 QQQ_TRANSITION
|
||||
130 2019-04-29 SELL_GRADUAL ZS 649 $ 68.20 $ 44,262 74 $70,179 QQQ_TRANSITION
|
||||
131 2019-04-29 SELL_GRADUAL AMD 1464 $ 27.69 $ 40,538 74 $110,717 QQQ_TRANSITION
|
||||
132 2019-04-29 SELL_GRADUAL MDB 311 $ 137.50 $ 42,762 74 $153,480 QQQ_TRANSITION
|
||||
133 2019-04-29 BUY_GRADUAL QQQ 830 $ 183.60 $ 152,385 74 $1,095 QQQ_TRANSITION
|
||||
134 2020-02-28 SELL_GRADUAL QQQ 832 $ 199.07 $ 165,626 20 $166,721 FEAR_TRANSITION
|
||||
135 2020-03-02 SELL_GRADUAL QQQ 832 $ 209.34 $ 174,173 37 $340,894 FEAR_TRANSITION
|
||||
136 2020-03-03 SELL_GRADUAL QQQ 832 $ 202.63 $ 168,588 29 $509,482 FEAR_TRANSITION
|
||||
137 2020-03-04 SELL_GRADUAL QQQ 832 $ 211.08 $ 175,622 38 $685,103 FEAR_TRANSITION
|
||||
138 2020-03-06 BUY_GRADUAL MRNA 5809 $ 29.61 $ 172,004 25 $513,099 GREED_TRANSITION
|
||||
139 2020-03-09 BUY_GRADUAL TSLA 4243 $ 40.53 $ 171,983 17 $341,116 GREED_TRANSITION
|
||||
140 2020-03-10 BUY_GRADUAL MRVL 7604 $ 22.62 $ 172,007 25 $169,109 GREED_TRANSITION
|
||||
141 2020-03-18 STOP_LOSS TSLA 4243 $ 24.08 $ 102,177 22 $271,286 VOLATILE_STOCKS
|
||||
142 2020-03-18 BUY_QQQ_STOPLOSS QQQ 598 $ 170.82 $ 102,153 22 $169,133 VOLATILE_STOCKS
|
||||
143 2020-06-03 SELL_GRADUAL MRNA 1452 $ 59.89 $ 86,960 79 $256,093 QQQ_TRANSITION
|
||||
144 2020-06-03 SELL_GRADUAL MRVL 1901 $ 35.14 $ 66,809 79 $322,902 QQQ_TRANSITION
|
||||
145 2020-06-03 BUY_GRADUAL QQQ 847 $ 229.44 $ 194,334 79 $128,569 QQQ_TRANSITION
|
||||
146 2020-06-04 SELL_GRADUAL MRNA 1452 $ 60.59 $ 87,977 79 $216,545 QQQ_TRANSITION
|
||||
147 2020-06-04 SELL_GRADUAL MRVL 1901 $ 35.08 $ 66,679 79 $283,225 QQQ_TRANSITION
|
||||
148 2020-06-04 BUY_GRADUAL QQQ 853 $ 227.83 $ 194,338 79 $88,887 QQQ_TRANSITION
|
||||
149 2020-06-05 SELL_GRADUAL MRNA 1452 $ 58.19 $ 84,492 84 $173,379 QQQ_TRANSITION
|
||||
150 2020-06-05 SELL_GRADUAL MRVL 1901 $ 35.08 $ 66,679 84 $240,058 QQQ_TRANSITION
|
||||
151 2020-06-05 BUY_GRADUAL QQQ 836 $ 232.35 $ 194,241 84 $45,817 QQQ_TRANSITION
|
||||
152 2020-06-08 SELL_GRADUAL MRNA 1452 $ 59.10 $ 85,813 83 $131,630 QQQ_TRANSITION
|
||||
153 2020-06-08 SELL_GRADUAL MRVL 1901 $ 34.16 $ 64,933 83 $196,563 QQQ_TRANSITION
|
||||
154 2020-06-08 BUY_GRADUAL QQQ 830 $ 234.15 $ 194,343 83 $2,219 QQQ_TRANSITION
|
||||
155 2022-01-26 SELL_GRADUAL QQQ 991 $ 336.81 $ 333,783 24 $336,002 FEAR_TRANSITION
|
||||
156 2022-01-27 SELL_GRADUAL QQQ 991 $ 333.42 $ 330,421 23 $666,424 FEAR_TRANSITION
|
||||
157 2022-01-28 SELL_GRADUAL QQQ 991 $ 343.88 $ 340,787 32 $1,007,210 FEAR_TRANSITION
|
||||
158 2022-01-31 SELL_GRADUAL QQQ 991 $ 354.88 $ 351,684 41 $1,358,895 FEAR_TRANSITION
|
||||
159 2022-02-02 BUY_GRADUAL NFLX 793 $ 429.48 $ 340,578 47 $1,018,317 GREED_TRANSITION
|
||||
160 2022-02-03 BUY_GRADUAL PDD 6184 $ 55.13 $ 340,924 43 $677,393 GREED_TRANSITION
|
||||
161 2022-02-04 BUY_GRADUAL WBD 11796 $ 28.90 $ 340,904 46 $336,489 GREED_TRANSITION
|
||||
162 2022-03-10 STOP_LOSS PDD 6184 $ 35.76 $ 221,140 34 $557,629 VOLATILE_STOCKS
|
||||
163 2022-03-10 BUY_QQQ_STOPLOSS QQQ 682 $ 323.81 $ 220,841 34 $336,788 VOLATILE_STOCKS
|
||||
164 2022-04-26 STOP_LOSS WBD 11796 $ 19.83 $ 233,915 30 $570,702 VOLATILE_STOCKS
|
||||
165 2022-04-26 BUY_QQQ_STOPLOSS QQQ 753 $ 310.38 $ 233,720 30 $336,983 VOLATILE_STOCKS
|
||||
166 2022-08-16 SELL_GRADUAL NFLX 198 $ 245.69 $ 48,647 76 $385,629 QQQ_TRANSITION
|
||||
167 2022-08-16 BUY_GRADUAL QQQ 413 $ 325.83 $ 134,567 76 $251,062 QQQ_TRANSITION
|
||||
168 2022-08-17 SELL_GRADUAL NFLX 198 $ 241.15 $ 47,748 72 $298,810 QQQ_TRANSITION
|
||||
169 2022-08-17 BUY_GRADUAL QQQ 418 $ 322.11 $ 134,642 72 $164,168 QQQ_TRANSITION
|
||||
170 2022-08-18 SELL_GRADUAL NFLX 198 $ 245.17 $ 48,544 73 $212,711 QQQ_TRANSITION
|
||||
171 2022-08-18 BUY_GRADUAL QQQ 417 $ 322.89 $ 134,643 73 $78,068 QQQ_TRANSITION
|
||||
172 2022-08-19 SELL_GRADUAL NFLX 198 $ 241.16 $ 47,750 68 $125,818 QQQ_TRANSITION
|
||||
173 2022-09-26 SELL_GRADUAL QQQ 671 $ 269.53 $ 180,852 25 $306,669 FEAR_TRANSITION
|
||||
174 2022-09-27 SELL_GRADUAL QQQ 671 $ 269.63 $ 180,924 26 $487,593 FEAR_TRANSITION
|
||||
175 2022-09-28 SELL_GRADUAL QQQ 671 $ 275.00 $ 184,523 33 $672,117 FEAR_TRANSITION
|
||||
176 2022-09-29 SELL_GRADUAL QQQ 671 $ 267.07 $ 179,204 29 $851,320 FEAR_TRANSITION
|
||||
177 2022-10-03 BUY_GRADUAL BIIB 809 $ 264.30 $ 213,819 32 $637,502 GREED_TRANSITION
|
||||
178 2022-10-04 BUY_GRADUAL REGN 289 $ 737.50 $ 213,138 42 $424,364 GREED_TRANSITION
|
||||
179 2022-10-05 BUY_GRADUAL NFLX 903 $ 236.73 $ 213,767 42 $210,597 GREED_TRANSITION
|
||||
180 2023-02-03 SELL_GRADUAL REGN 73 $ 780.97 $ 57,011 72 $267,608 QQQ_TRANSITION
|
||||
181 2023-02-03 SELL_GRADUAL NFLX 226 $ 365.90 $ 82,693 72 $350,301 QQQ_TRANSITION
|
||||
182 2023-02-03 SELL_GRADUAL BIIB 202 $ 283.63 $ 57,293 72 $407,594 QQQ_TRANSITION
|
||||
183 2023-02-03 BUY_GRADUAL QQQ 825 $ 301.49 $ 248,733 72 $158,862 QQQ_TRANSITION
|
||||
184 2023-02-06 SELL_GRADUAL REGN 73 $ 778.71 $ 56,846 65 $215,707 QQQ_TRANSITION
|
||||
185 2023-02-06 SELL_GRADUAL NFLX 226 $ 361.48 $ 81,694 65 $297,402 QQQ_TRANSITION
|
||||
186 2023-02-06 SELL_GRADUAL BIIB 202 $ 288.28 $ 58,233 65 $355,634 QQQ_TRANSITION
|
||||
187 2023-02-06 BUY_GRADUAL QQQ 832 $ 298.94 $ 248,721 65 $106,913 QQQ_TRANSITION
|
||||
188 2023-02-07 SELL_GRADUAL REGN 73 $ 767.82 $ 56,051 70 $162,964 QQQ_TRANSITION
|
||||
189 2023-02-07 SELL_GRADUAL NFLX 226 $ 362.95 $ 82,027 70 $244,991 QQQ_TRANSITION
|
||||
190 2023-02-07 SELL_GRADUAL BIIB 202 $ 291.43 $ 58,869 70 $303,859 QQQ_TRANSITION
|
||||
191 2023-02-07 BUY_GRADUAL QQQ 815 $ 305.14 $ 248,687 70 $55,173 QQQ_TRANSITION
|
||||
192 2023-02-08 SELL_GRADUAL REGN 73 $ 747.59 $ 54,574 64 $109,747 QQQ_TRANSITION
|
||||
193 2023-02-08 SELL_GRADUAL NFLX 226 $ 366.83 $ 82,904 64 $192,650 QQQ_TRANSITION
|
||||
194 2023-02-08 SELL_GRADUAL BIIB 202 $ 285.45 $ 57,661 64 $250,311 QQQ_TRANSITION
|
||||
195 2023-02-08 BUY_GRADUAL QQQ 830 $ 299.71 $ 248,761 64 $1,551 QQQ_TRANSITION
|
||||
196 2024-10-03 STOP_LOSS BIIB 1 $ 184.78 $ 185 62 $1,735 QQQ_HOLD
|
||||
197 2025-04-07 SELL_GRADUAL QQQ 825 $ 423.21 $ 349,152 24 $350,888 FEAR_TRANSITION
|
||||
198 2025-04-08 SELL_GRADUAL QQQ 825 $ 415.59 $ 342,864 23 $693,752 FEAR_TRANSITION
|
||||
199 2025-04-09 SELL_GRADUAL QQQ 825 $ 465.48 $ 384,019 39 $1,077,771 FEAR_TRANSITION
|
||||
200 2025-04-10 SELL_GRADUAL QQQ 825 $ 445.68 $ 367,686 34 $1,445,456 FEAR_TRANSITION
|
||||
201 2025-04-14 BUY_GRADUAL MCHP 9386 $ 38.58 $ 362,125 37 $1,083,331 GREED_TRANSITION
|
||||
202 2025-04-15 BUY_GRADUAL WBD 43896 $ 8.25 $ 362,142 38 $721,189 GREED_TRANSITION
|
||||
203 2025-04-16 STOP_LOSS WBD 43896 $ 7.92 $ 347,656 32 $1,068,845 GREED_TRANSITION
|
||||
204 2025-04-16 BUY_QQQ_STOPLOSS QQQ 783 $ 443.68 $ 347,403 32 $721,443 GREED_TRANSITION
|
||||
205 2025-04-16 BUY_GRADUAL AMD 4101 $ 88.29 $ 362,077 32 $359,365 GREED_TRANSITION
|
||||
206 2025-05-20 SELL_GRADUAL AMD 1025 $ 113.51 $ 116,348 76 $475,713 QQQ_TRANSITION
|
||||
207 2025-05-20 SELL_GRADUAL MCHP 2346 $ 60.33 $ 141,541 76 $617,254 QQQ_TRANSITION
|
||||
208 2025-05-20 BUY_GRADUAL QQQ 672 $ 519.69 $ 349,229 76 $268,025 QQQ_TRANSITION
|
||||
209 2025-05-21 SELL_GRADUAL AMD 1025 $ 112.06 $ 114,861 69 $382,887 QQQ_TRANSITION
|
||||
210 2025-05-21 SELL_GRADUAL MCHP 2346 $ 58.79 $ 137,933 69 $520,820 QQQ_TRANSITION
|
||||
211 2025-05-21 BUY_GRADUAL QQQ 682 $ 512.46 $ 349,501 69 $171,319 QQQ_TRANSITION
|
||||
212 2025-05-22 SELL_GRADUAL AMD 1025 $ 110.71 $ 113,478 67 $284,797 QQQ_TRANSITION
|
||||
213 2025-05-22 SELL_GRADUAL MCHP 2346 $ 58.05 $ 136,185 67 $420,982 QQQ_TRANSITION
|
||||
214 2025-05-22 BUY_GRADUAL QQQ 680 $ 513.42 $ 349,128 67 $71,854 QQQ_TRANSITION
|
||||
215 2025-05-23 SELL_GRADUAL AMD 1025 $ 110.31 $ 113,068 62 $184,922 QQQ_TRANSITION
|
||||
216 2025-05-23 SELL_GRADUAL MCHP 2346 $ 56.19 $ 131,822 62 $316,744 QQQ_TRANSITION
|
||||
220
backtest/reports/detailed_trades_20250718_185722.txt
Normal file
220
backtest/reports/detailed_trades_20250718_185722.txt
Normal file
@@ -0,0 +1,220 @@
|
||||
Enhanced Emotional Damage Strategy - Detailed Trades Report
|
||||
========================================================================================================================
|
||||
|
||||
📊 交易摘要:
|
||||
总交易数: 203
|
||||
交易时间: 2008-01-09 到 2025-05-23
|
||||
|
||||
交易类型统计:
|
||||
SELL_GRADUAL: 96
|
||||
BUY_GRADUAL: 67
|
||||
STOP_LOSS: 21
|
||||
BUY_QQQ_STOPLOSS: 19
|
||||
|
||||
📋 详细交易记录:
|
||||
======================================================================================================================================================
|
||||
No Date Action Ticker Shares Price Value F&G Cash Assets State
|
||||
======================================================================================================================================================
|
||||
1 2008-01-09 SELL_GRADUAL QQQ 609 $ 41.37 $ 25,193 26 $25,208 $100,829 FEAR_TRANSITION
|
||||
2 2008-01-10 SELL_GRADUAL QQQ 609 $ 41.43 $ 25,230 33 $50,438 $100,940 FEAR_TRANSITION
|
||||
3 2008-01-11 SELL_GRADUAL QQQ 609 $ 40.62 $ 24,736 28 $75,174 $99,951 FEAR_TRANSITION
|
||||
4 2008-01-14 SELL_GRADUAL QQQ 609 $ 41.33 $ 25,167 31 $100,341 $100,383 FEAR_TRANSITION
|
||||
5 2008-01-16 BUY_GRADUAL ILMN 745 $ 33.63 $ 25,057 27 $75,284 $100,381 GREED_TRANSITION
|
||||
6 2008-01-17 BUY_GRADUAL TMUS 852 $ 29.42 $ 25,063 20 $50,221 $99,964 GREED_TRANSITION
|
||||
7 2008-01-18 BUY_GRADUAL DXCM 11274 $ 2.22 $ 25,085 20 $25,137 $98,656 GREED_TRANSITION
|
||||
8 2008-01-22 BUY_GRADUAL SBUX 3549 $ 7.07 $ 25,085 19 $52 $97,152 GREED_TRANSITION
|
||||
9 2008-02-20 STOP_LOSS TMUS 852 $ 24.77 $ 21,101 54 $21,153 $94,385 VOLATILE_STOCKS
|
||||
10 2008-02-20 BUY_QQQ_STOPLOSS QQQ 556 $ 37.93 $ 21,090 54 $63 $94,385 VOLATILE_STOCKS
|
||||
11 2008-02-28 STOP_LOSS DXCM 11274 $ 1.88 $ 21,251 50 $21,314 $94,276 VOLATILE_STOCKS
|
||||
12 2008-02-28 BUY_QQQ_STOPLOSS QQQ 557 $ 38.09 $ 21,215 50 $99 $94,276 VOLATILE_STOCKS
|
||||
13 2008-04-25 STOP_LOSS SBUX 3549 $ 6.00 $ 21,310 69 $21,409 $95,418 VOLATILE_STOCKS
|
||||
14 2008-04-25 BUY_QQQ_STOPLOSS QQQ 523 $ 40.74 $ 21,305 69 $104 $95,418 VOLATILE_STOCKS
|
||||
15 2008-10-09 STOP_LOSS ILMN 745 $ 28.21 $ 21,017 9 $21,121 $65,760 VOLATILE_STOCKS
|
||||
16 2008-10-09 BUY_QQQ_STOPLOSS QQQ 770 $ 27.27 $ 20,997 9 $124 $65,760 VOLATILE_STOCKS
|
||||
17 2009-05-05 BUY_GRADUAL QQQ 1 $ 30.39 $ 30 76 $93 $73,275 QQQ_TRANSITION
|
||||
18 2009-05-06 BUY_GRADUAL QQQ 1 $ 30.40 $ 30 82 $63 $73,296 QQQ_TRANSITION
|
||||
19 2009-05-07 BUY_GRADUAL QQQ 1 $ 29.69 $ 30 78 $33 $71,582 QQQ_TRANSITION
|
||||
20 2009-05-08 BUY_GRADUAL QQQ 1 $ 29.71 $ 30 75 $3 $71,624 QQQ_TRANSITION
|
||||
21 2010-05-27 SELL_GRADUAL QQQ 602 $ 40.00 $ 24,082 34 $24,086 $96,453 FEAR_TRANSITION
|
||||
22 2010-05-28 SELL_GRADUAL QQQ 602 $ 39.77 $ 23,941 33 $48,026 $96,027 FEAR_TRANSITION
|
||||
23 2010-06-01 SELL_GRADUAL QQQ 602 $ 39.40 $ 23,720 27 $71,746 $95,585 FEAR_TRANSITION
|
||||
24 2010-06-02 SELL_GRADUAL QQQ 602 $ 40.34 $ 24,282 38 $96,028 $96,149 FEAR_TRANSITION
|
||||
25 2010-06-04 BUY_GRADUAL SIRI 2705 $ 8.87 $ 24,002 37 $72,026 $96,146 GREED_TRANSITION
|
||||
26 2010-06-07 BUY_GRADUAL NFLX 1539 $ 15.59 $ 24,000 35 $48,026 $95,899 GREED_TRANSITION
|
||||
27 2010-06-08 BUY_GRADUAL TMUS 1793 $ 13.38 $ 23,998 34 $24,028 $95,666 GREED_TRANSITION
|
||||
28 2010-06-09 STOP_LOSS TMUS 1793 $ 13.38 $ 23,998 33 $48,026 $97,032 GREED_TRANSITION
|
||||
29 2010-06-09 BUY_QQQ_STOPLOSS QQQ 627 $ 38.22 $ 23,961 33 $24,065 $97,032 GREED_TRANSITION
|
||||
30 2010-06-09 BUY_GRADUAL LULU 1227 $ 19.55 $ 23,988 33 $77 $97,032 GREED_TRANSITION
|
||||
31 2010-08-30 STOP_LOSS LULU 1227 $ 15.95 $ 19,571 31 $19,648 $94,278 VOLATILE_STOCKS
|
||||
32 2010-08-30 BUY_QQQ_STOPLOSS QQQ 512 $ 38.18 $ 19,548 31 $100 $94,278 VOLATILE_STOCKS
|
||||
33 2010-11-04 SELL_GRADUAL SIRI 676 $ 13.31 $ 8,998 80 $9,097 $126,785 QQQ_TRANSITION
|
||||
34 2010-11-04 SELL_GRADUAL NFLX 384 $ 23.97 $ 9,206 80 $18,303 $126,785 QQQ_TRANSITION
|
||||
35 2010-11-05 SELL_GRADUAL SIRI 676 $ 13.85 $ 9,365 80 $27,668 $127,933 QQQ_TRANSITION
|
||||
36 2010-11-05 SELL_GRADUAL NFLX 384 $ 24.01 $ 9,221 80 $36,890 $127,933 QQQ_TRANSITION
|
||||
37 2010-11-05 BUY_GRADUAL QQQ 404 $ 47.10 $ 19,027 80 $17,862 $127,933 QQQ_TRANSITION
|
||||
38 2010-11-08 SELL_GRADUAL SIRI 676 $ 14.03 $ 9,487 78 $27,349 $128,387 QQQ_TRANSITION
|
||||
39 2010-11-08 SELL_GRADUAL NFLX 384 $ 24.16 $ 9,278 78 $36,627 $128,387 QQQ_TRANSITION
|
||||
40 2010-11-08 BUY_GRADUAL QQQ 404 $ 47.16 $ 19,052 78 $17,575 $128,387 QQQ_TRANSITION
|
||||
41 2010-11-09 SELL_GRADUAL SIRI 676 $ 13.49 $ 9,120 74 $26,695 $127,596 QQQ_TRANSITION
|
||||
42 2010-11-09 SELL_GRADUAL NFLX 384 $ 24.35 $ 9,351 74 $36,046 $127,596 QQQ_TRANSITION
|
||||
43 2010-11-09 BUY_GRADUAL QQQ 406 $ 46.90 $ 19,043 74 $17,003 $127,596 QQQ_TRANSITION
|
||||
44 2011-08-05 SELL_GRADUAL QQQ 589 $ 47.50 $ 27,980 16 $44,983 $129,044 FEAR_TRANSITION
|
||||
45 2011-08-08 SELL_GRADUAL QQQ 589 $ 44.65 $ 26,296 12 $71,279 $123,983 FEAR_TRANSITION
|
||||
46 2011-08-09 SELL_GRADUAL QQQ 589 $ 46.80 $ 27,564 21 $98,843 $126,526 FEAR_TRANSITION
|
||||
47 2011-08-10 SELL_GRADUAL QQQ 589 $ 44.88 $ 26,436 16 $125,280 $125,395 FEAR_TRANSITION
|
||||
48 2011-08-16 BUY_GRADUAL AMD 4944 $ 6.34 $ 31,345 28 $93,935 $125,400 GREED_TRANSITION
|
||||
49 2011-08-17 BUY_GRADUAL DXCM 11087 $ 2.83 $ 31,348 27 $62,586 $124,408 GREED_TRANSITION
|
||||
50 2011-08-18 BUY_GRADUAL ILMN 684 $ 45.82 $ 31,339 21 $31,247 $121,090 GREED_TRANSITION
|
||||
51 2011-09-29 STOP_LOSS AMD 4944 $ 5.31 $ 26,253 36 $57,500 $119,987 VOLATILE_STOCKS
|
||||
52 2011-09-29 BUY_QQQ_STOPLOSS QQQ 551 $ 47.64 $ 26,248 36 $31,252 $119,987 VOLATILE_STOCKS
|
||||
53 2011-10-07 STOP_LOSS ILMN 684 $ 26.44 $ 18,085 46 $49,337 $106,508 VOLATILE_STOCKS
|
||||
54 2011-10-07 BUY_QQQ_STOPLOSS QQQ 378 $ 47.80 $ 18,070 46 $31,267 $106,508 VOLATILE_STOCKS
|
||||
55 2011-10-25 STOP_LOSS NFLX 3 $ 11.05 $ 33 58 $31,300 $107,461 VOLATILE_STOCKS
|
||||
56 2011-11-03 STOP_LOSS DXCM 11087 $ 1.97 $ 21,814 63 $53,114 $100,849 VOLATILE_STOCKS
|
||||
57 2011-11-03 BUY_QQQ_STOPLOSS QQQ 424 $ 51.37 $ 21,780 63 $31,334 $100,849 VOLATILE_STOCKS
|
||||
58 2012-01-20 BUY_GRADUAL QQQ 147 $ 53.05 $ 7,798 76 $23,536 $103,125 QQQ_TRANSITION
|
||||
59 2012-01-23 BUY_GRADUAL QQQ 147 $ 53.06 $ 7,800 75 $15,735 $103,151 QQQ_TRANSITION
|
||||
60 2012-01-24 BUY_GRADUAL QQQ 147 $ 52.97 $ 7,786 74 $7,949 $102,990 QQQ_TRANSITION
|
||||
61 2012-01-25 BUY_GRADUAL QQQ 146 $ 53.63 $ 7,830 75 $119 $104,184 QQQ_TRANSITION
|
||||
62 2012-05-21 SELL_GRADUAL QQQ 485 $ 55.57 $ 26,953 34 $27,072 $107,948 FEAR_TRANSITION
|
||||
63 2012-05-22 SELL_GRADUAL QQQ 485 $ 55.51 $ 26,922 34 $53,994 $107,857 FEAR_TRANSITION
|
||||
64 2012-05-23 SELL_GRADUAL QQQ 485 $ 55.62 $ 26,974 33 $80,968 $107,961 FEAR_TRANSITION
|
||||
65 2012-05-24 SELL_GRADUAL QQQ 485 $ 55.25 $ 26,797 32 $107,766 $107,784 FEAR_TRANSITION
|
||||
66 2012-05-29 BUY_GRADUAL VRTX 466 $ 57.80 $ 26,935 39 $80,831 $107,783 GREED_TRANSITION
|
||||
67 2012-05-30 BUY_GRADUAL NXPI 1395 $ 19.31 $ 26,933 33 $53,898 $108,892 GREED_TRANSITION
|
||||
68 2012-05-31 BUY_GRADUAL REGN 199 $ 135.28 $ 26,920 34 $26,978 $108,301 GREED_TRANSITION
|
||||
69 2012-06-01 BUY_GRADUAL MNST 2291 $ 11.76 $ 26,935 27 $44 $103,625 GREED_TRANSITION
|
||||
70 2012-06-13 STOP_LOSS REGN 199 $ 111.57 $ 22,203 44 $22,246 $101,613 VOLATILE_STOCKS
|
||||
71 2012-06-13 BUY_QQQ_STOPLOSS QQQ 401 $ 55.23 $ 22,149 44 $97 $101,613 VOLATILE_STOCKS
|
||||
72 2012-07-24 STOP_LOSS VRTX 466 $ 48.37 $ 22,540 51 $22,638 $98,436 VOLATILE_STOCKS
|
||||
73 2012-07-24 BUY_QQQ_STOPLOSS QQQ 401 $ 56.10 $ 22,497 51 $141 $98,436 VOLATILE_STOCKS
|
||||
74 2012-08-10 STOP_LOSS MNST 2291 $ 9.05 $ 20,722 62 $20,863 $99,014 VOLATILE_STOCKS
|
||||
75 2012-08-10 BUY_QQQ_STOPLOSS QQQ 347 $ 59.58 $ 20,673 62 $190 $99,014 VOLATILE_STOCKS
|
||||
76 2013-01-24 SELL_GRADUAL NXPI 348 $ 26.46 $ 9,209 75 $9,399 $105,958 QQQ_TRANSITION
|
||||
77 2013-01-24 BUY_GRADUAL QQQ 154 $ 59.90 $ 9,224 75 $175 $105,958 QQQ_TRANSITION
|
||||
78 2013-01-25 SELL_GRADUAL NXPI 348 $ 26.98 $ 9,390 77 $9,565 $106,902 QQQ_TRANSITION
|
||||
79 2013-01-25 BUY_GRADUAL QQQ 154 $ 60.20 $ 9,272 77 $293 $106,902 QQQ_TRANSITION
|
||||
80 2013-01-28 SELL_GRADUAL NXPI 348 $ 27.35 $ 9,518 76 $9,811 $107,355 QQQ_TRANSITION
|
||||
81 2013-01-28 BUY_GRADUAL QQQ 153 $ 60.34 $ 9,232 76 $579 $107,355 QQQ_TRANSITION
|
||||
82 2013-01-29 SELL_GRADUAL NXPI 348 $ 26.46 $ 9,209 77 $9,788 $107,058 QQQ_TRANSITION
|
||||
83 2013-01-29 BUY_GRADUAL QQQ 153 $ 60.35 $ 9,233 77 $555 $107,058 QQQ_TRANSITION
|
||||
84 2015-08-25 SELL_GRADUAL QQQ 440 $ 90.96 $ 40,021 19 $40,576 $161,163 FEAR_TRANSITION
|
||||
85 2015-08-26 SELL_GRADUAL QQQ 440 $ 95.54 $ 42,037 30 $82,612 $167,235 FEAR_TRANSITION
|
||||
86 2015-08-27 SELL_GRADUAL QQQ 440 $ 97.96 $ 43,101 37 $125,714 $169,377 FEAR_TRANSITION
|
||||
87 2015-08-28 SELL_GRADUAL QQQ 440 $ 97.94 $ 43,093 37 $168,807 $169,370 FEAR_TRANSITION
|
||||
88 2015-09-01 BUY_GRADUAL NFLX 399 $ 105.79 $ 42,210 29 $126,597 $169,343 GREED_TRANSITION
|
||||
89 2015-09-02 BUY_GRADUAL NVDA 78306 $ 0.54 $ 42,267 34 $84,330 $169,220 GREED_TRANSITION
|
||||
90 2015-09-03 BUY_GRADUAL MU 2608 $ 16.20 $ 42,259 36 $42,071 $167,587 GREED_TRANSITION
|
||||
91 2015-09-28 STOP_LOSS MU 2608 $ 13.73 $ 35,814 29 $77,885 $162,450 VOLATILE_STOCKS
|
||||
92 2015-09-28 BUY_QQQ_STOPLOSS QQQ 385 $ 92.94 $ 35,784 29 $42,102 $162,450 VOLATILE_STOCKS
|
||||
93 2017-02-16 SELL_GRADUAL NFLX 99 $ 142.01 $ 14,059 74 $56,161 $353,212 QQQ_TRANSITION
|
||||
94 2017-02-16 SELL_GRADUAL NVDA 19576 $ 2.64 $ 51,711 74 $107,872 $353,212 QQQ_TRANSITION
|
||||
95 2017-02-16 BUY_GRADUAL QQQ 634 $ 121.85 $ 77,254 74 $30,618 $353,212 QQQ_TRANSITION
|
||||
96 2017-02-17 SELL_GRADUAL NFLX 99 $ 142.22 $ 14,080 74 $44,697 $353,786 QQQ_TRANSITION
|
||||
97 2017-02-17 SELL_GRADUAL NVDA 19576 $ 2.64 $ 51,701 74 $96,399 $353,786 QQQ_TRANSITION
|
||||
98 2017-02-17 BUY_GRADUAL QQQ 632 $ 122.38 $ 77,344 74 $19,055 $353,786 QQQ_TRANSITION
|
||||
99 2017-02-21 SELL_GRADUAL NFLX 99 $ 142.60 $ 14,117 76 $33,172 $358,565 QQQ_TRANSITION
|
||||
100 2017-02-21 SELL_GRADUAL NVDA 19576 $ 2.74 $ 53,553 76 $86,725 $358,565 QQQ_TRANSITION
|
||||
101 2017-02-21 BUY_GRADUAL QQQ 628 $ 122.98 $ 77,233 76 $9,492 $358,565 QQQ_TRANSITION
|
||||
102 2017-02-22 SELL_GRADUAL NFLX 99 $ 143.86 $ 14,242 75 $23,734 $358,720 QQQ_TRANSITION
|
||||
103 2017-02-22 SELL_GRADUAL NVDA 19576 $ 2.73 $ 53,471 75 $77,204 $358,720 QQQ_TRANSITION
|
||||
104 2018-12-18 SELL_GRADUAL QQQ 570 $ 151.55 $ 86,385 24 $163,590 $424,134 FEAR_TRANSITION
|
||||
105 2018-12-19 SELL_GRADUAL QQQ 570 $ 147.83 $ 84,264 23 $247,854 $417,734 FEAR_TRANSITION
|
||||
106 2018-12-20 SELL_GRADUAL QQQ 570 $ 145.69 $ 83,043 22 $330,897 $415,268 FEAR_TRANSITION
|
||||
107 2018-12-21 SELL_GRADUAL QQQ 570 $ 141.17 $ 80,469 20 $411,366 $412,636 FEAR_TRANSITION
|
||||
108 2018-12-27 BUY_GRADUAL ZS 2566 $ 40.17 $ 103,076 28 $308,289 $412,683 GREED_TRANSITION
|
||||
109 2018-12-28 BUY_GRADUAL AMD 5785 $ 17.82 $ 103,089 26 $205,201 $411,733 GREED_TRANSITION
|
||||
110 2018-12-31 BUY_GRADUAL MDB 1231 $ 83.74 $ 103,084 30 $102,117 $413,961 GREED_TRANSITION
|
||||
111 2019-04-24 SELL_GRADUAL ZS 641 $ 64.99 $ 41,659 75 $143,775 $601,726 QQQ_TRANSITION
|
||||
112 2019-04-24 SELL_GRADUAL AMD 1446 $ 28.46 $ 41,153 75 $184,928 $601,726 QQQ_TRANSITION
|
||||
113 2019-04-24 SELL_GRADUAL MDB 307 $ 135.16 $ 41,494 75 $226,423 $601,726 QQQ_TRANSITION
|
||||
114 2019-04-24 BUY_GRADUAL QQQ 825 $ 182.34 $ 150,428 75 $75,994 $601,726 QQQ_TRANSITION
|
||||
115 2019-04-25 SELL_GRADUAL ZS 641 $ 66.96 $ 42,921 74 $118,916 $604,944 QQQ_TRANSITION
|
||||
116 2019-04-25 SELL_GRADUAL AMD 1446 $ 27.66 $ 39,996 74 $158,912 $604,944 QQQ_TRANSITION
|
||||
117 2019-04-25 SELL_GRADUAL MDB 307 $ 137.66 $ 42,262 74 $201,174 $604,944 QQQ_TRANSITION
|
||||
118 2019-04-25 BUY_GRADUAL QQQ 822 $ 183.08 $ 150,490 74 $50,684 $604,944 QQQ_TRANSITION
|
||||
119 2019-04-26 SELL_GRADUAL ZS 641 $ 66.94 $ 42,909 74 $93,592 $606,662 QQQ_TRANSITION
|
||||
120 2019-04-26 SELL_GRADUAL AMD 1446 $ 27.88 $ 40,314 74 $133,907 $606,662 QQQ_TRANSITION
|
||||
121 2019-04-26 SELL_GRADUAL MDB 307 $ 138.98 $ 42,667 74 $176,574 $606,662 QQQ_TRANSITION
|
||||
122 2019-04-26 BUY_GRADUAL QQQ 821 $ 183.24 $ 150,441 74 $26,133 $606,662 QQQ_TRANSITION
|
||||
123 2019-04-29 SELL_GRADUAL ZS 641 $ 68.20 $ 43,716 74 $69,849 $607,606 QQQ_TRANSITION
|
||||
124 2019-04-29 SELL_GRADUAL AMD 1446 $ 27.69 $ 40,040 74 $109,889 $607,606 QQQ_TRANSITION
|
||||
125 2019-04-29 SELL_GRADUAL MDB 307 $ 137.50 $ 42,212 74 $152,101 $607,606 QQQ_TRANSITION
|
||||
126 2019-04-29 BUY_GRADUAL QQQ 820 $ 183.60 $ 150,549 74 $1,552 $607,606 QQQ_TRANSITION
|
||||
127 2020-02-28 SELL_GRADUAL QQQ 822 $ 199.07 $ 163,635 20 $165,188 $658,590 FEAR_TRANSITION
|
||||
128 2020-03-02 SELL_GRADUAL QQQ 822 $ 209.34 $ 172,080 37 $337,267 $684,012 FEAR_TRANSITION
|
||||
129 2020-03-03 SELL_GRADUAL QQQ 822 $ 202.63 $ 166,561 29 $503,829 $672,909 FEAR_TRANSITION
|
||||
130 2020-03-04 SELL_GRADUAL QQQ 822 $ 211.08 $ 173,511 38 $677,340 $679,956 FEAR_TRANSITION
|
||||
131 2020-03-06 BUY_GRADUAL MRNA 5736 $ 29.61 $ 169,843 25 $507,497 $679,826 GREED_TRANSITION
|
||||
132 2020-03-09 STOP_LOSS MRNA 5736 $ 24.29 $ 139,327 17 $646,824 $649,100 GREED_TRANSITION
|
||||
133 2020-03-09 BUY_QQQ_STOPLOSS QQQ 744 $ 187.24 $ 139,306 17 $507,518 $649,100 GREED_TRANSITION
|
||||
134 2020-03-09 BUY_GRADUAL TSLA 4190 $ 40.53 $ 169,835 17 $337,683 $649,100 GREED_TRANSITION
|
||||
135 2020-03-10 BUY_GRADUAL MRVL 7509 $ 22.62 $ 169,858 25 $167,825 $667,230 GREED_TRANSITION
|
||||
136 2020-03-12 STOP_LOSS MRVL 7509 $ 19.06 $ 143,146 17 $310,971 $597,219 VOLATILE_STOCKS
|
||||
137 2020-03-12 BUY_QQQ_STOPLOSS QQQ 834 $ 171.52 $ 143,049 17 $167,922 $597,219 VOLATILE_STOCKS
|
||||
138 2020-03-16 STOP_LOSS TSLA 4190 $ 29.67 $ 124,323 19 $292,245 $552,585 VOLATILE_STOCKS
|
||||
139 2020-03-16 BUY_QQQ_STOPLOSS QQQ 759 $ 163.76 $ 124,296 19 $167,949 $552,585 VOLATILE_STOCKS
|
||||
140 2020-06-03 BUY_GRADUAL QQQ 185 $ 229.44 $ 42,446 79 $125,503 $707,213 QQQ_TRANSITION
|
||||
141 2020-06-04 BUY_GRADUAL QQQ 187 $ 227.83 $ 42,604 79 $82,899 $703,082 QQQ_TRANSITION
|
||||
142 2020-06-05 BUY_GRADUAL QQQ 183 $ 232.35 $ 42,519 84 $40,380 $715,284 QQQ_TRANSITION
|
||||
143 2022-01-26 SELL_GRADUAL QQQ 723 $ 336.81 $ 243,517 24 $283,896 $1,018,473 FEAR_TRANSITION
|
||||
144 2022-01-27 SELL_GRADUAL QQQ 723 $ 333.42 $ 241,064 23 $524,961 $1,011,148 FEAR_TRANSITION
|
||||
145 2022-01-28 SELL_GRADUAL QQQ 723 $ 343.88 $ 248,626 32 $773,587 $1,026,391 FEAR_TRANSITION
|
||||
146 2022-01-31 SELL_GRADUAL QQQ 723 $ 354.88 $ 256,577 41 $1,030,164 $1,034,684 FEAR_TRANSITION
|
||||
147 2022-02-02 BUY_GRADUAL NFLX 601 $ 429.48 $ 258,117 47 $772,047 $1,034,708 GREED_TRANSITION
|
||||
148 2022-02-03 BUY_GRADUAL PDD 4689 $ 55.13 $ 258,505 43 $513,542 $1,020,143 GREED_TRANSITION
|
||||
149 2022-02-04 BUY_GRADUAL WBD 8945 $ 28.90 $ 258,510 46 $255,031 $1,026,385 GREED_TRANSITION
|
||||
150 2022-03-03 STOP_LOSS PDD 4689 $ 45.22 $ 212,037 39 $467,068 $948,795 VOLATILE_STOCKS
|
||||
151 2022-03-03 BUY_QQQ_STOPLOSS QQQ 633 $ 334.56 $ 211,774 39 $255,294 $948,795 VOLATILE_STOCKS
|
||||
152 2022-03-11 STOP_LOSS WBD 8945 $ 23.99 $ 214,591 31 $469,885 $878,854 VOLATILE_STOCKS
|
||||
153 2022-03-11 BUY_QQQ_STOPLOSS QQQ 676 $ 317.10 $ 214,358 31 $255,526 $878,854 VOLATILE_STOCKS
|
||||
154 2022-08-16 SELL_GRADUAL NFLX 151 $ 245.69 $ 37,099 76 $292,625 $833,290 QQQ_TRANSITION
|
||||
155 2022-08-16 BUY_GRADUAL QQQ 313 $ 325.83 $ 101,984 76 $190,641 $833,290 QQQ_TRANSITION
|
||||
156 2022-08-17 SELL_GRADUAL NFLX 151 $ 241.15 $ 36,414 72 $227,055 $825,132 QQQ_TRANSITION
|
||||
157 2022-08-17 BUY_GRADUAL QQQ 316 $ 322.11 $ 101,787 72 $125,268 $825,132 QQQ_TRANSITION
|
||||
158 2022-08-18 SELL_GRADUAL NFLX 151 $ 245.17 $ 37,021 73 $162,289 $827,836 QQQ_TRANSITION
|
||||
159 2022-08-18 BUY_GRADUAL QQQ 316 $ 322.89 $ 102,032 73 $60,257 $827,836 QQQ_TRANSITION
|
||||
160 2022-08-19 SELL_GRADUAL NFLX 151 $ 241.16 $ 36,415 68 $96,672 $812,946 QQQ_TRANSITION
|
||||
161 2022-09-26 SELL_GRADUAL QQQ 564 $ 269.53 $ 152,012 25 $248,684 $706,189 FEAR_TRANSITION
|
||||
162 2022-09-27 SELL_GRADUAL QQQ 564 $ 269.63 $ 152,073 26 $400,758 $706,398 FEAR_TRANSITION
|
||||
163 2022-09-28 SELL_GRADUAL QQQ 564 $ 275.00 $ 155,098 33 $555,856 $712,492 FEAR_TRANSITION
|
||||
164 2022-09-29 SELL_GRADUAL QQQ 564 $ 267.07 $ 150,627 29 $706,483 $707,973 FEAR_TRANSITION
|
||||
165 2022-10-03 BUY_GRADUAL BIIB 669 $ 264.30 $ 176,817 32 $529,667 $707,986 GREED_TRANSITION
|
||||
166 2022-10-04 BUY_GRADUAL REGN 239 $ 737.50 $ 176,263 42 $353,404 $710,159 GREED_TRANSITION
|
||||
167 2022-10-05 BUY_GRADUAL NFLX 747 $ 236.73 $ 176,837 42 $176,567 $707,777 GREED_TRANSITION
|
||||
168 2023-02-03 SELL_GRADUAL BIIB 167 $ 283.63 $ 47,366 72 $223,933 $827,955 QQQ_TRANSITION
|
||||
169 2023-02-03 SELL_GRADUAL REGN 59 $ 780.97 $ 46,077 72 $270,010 $827,955 QQQ_TRANSITION
|
||||
170 2023-02-03 SELL_GRADUAL NFLX 186 $ 365.90 $ 68,057 72 $338,067 $827,955 QQQ_TRANSITION
|
||||
171 2023-02-03 BUY_GRADUAL QQQ 683 $ 301.49 $ 205,920 72 $132,147 $827,955 QQQ_TRANSITION
|
||||
172 2023-02-06 SELL_GRADUAL BIIB 167 $ 288.28 $ 48,143 65 $180,290 $825,631 QQQ_TRANSITION
|
||||
173 2023-02-06 SELL_GRADUAL REGN 59 $ 778.71 $ 45,944 65 $226,234 $825,631 QQQ_TRANSITION
|
||||
174 2023-02-06 SELL_GRADUAL NFLX 186 $ 361.48 $ 67,235 65 $293,469 $825,631 QQQ_TRANSITION
|
||||
175 2023-02-06 BUY_GRADUAL QQQ 688 $ 298.94 $ 205,673 65 $87,796 $825,631 QQQ_TRANSITION
|
||||
176 2023-02-07 SELL_GRADUAL BIIB 167 $ 291.43 $ 48,669 70 $136,464 $834,461 QQQ_TRANSITION
|
||||
177 2023-02-07 SELL_GRADUAL REGN 59 $ 767.82 $ 45,301 70 $181,766 $834,461 QQQ_TRANSITION
|
||||
178 2023-02-07 SELL_GRADUAL NFLX 186 $ 362.95 $ 67,509 70 $249,274 $834,461 QQQ_TRANSITION
|
||||
179 2023-02-07 BUY_GRADUAL QQQ 674 $ 305.14 $ 205,663 70 $43,612 $834,461 QQQ_TRANSITION
|
||||
180 2023-02-08 SELL_GRADUAL BIIB 167 $ 285.45 $ 47,670 64 $91,282 $821,817 QQQ_TRANSITION
|
||||
181 2023-02-08 SELL_GRADUAL REGN 59 $ 747.59 $ 44,108 64 $135,390 $821,817 QQQ_TRANSITION
|
||||
182 2023-02-08 SELL_GRADUAL NFLX 186 $ 366.83 $ 68,230 64 $203,620 $821,817 QQQ_TRANSITION
|
||||
183 2023-11-09 STOP_LOSS BIIB 1 $ 224.65 $ 225 54 $203,845 $958,229 QQQ_HOLD
|
||||
184 2025-04-07 SELL_GRADUAL QQQ 511 $ 423.21 $ 216,263 24 $420,108 $1,075,227 FEAR_TRANSITION
|
||||
185 2025-04-08 SELL_GRADUAL QQQ 511 $ 415.59 $ 212,368 23 $632,476 $1,063,447 FEAR_TRANSITION
|
||||
186 2025-04-09 SELL_GRADUAL QQQ 511 $ 465.48 $ 237,859 39 $870,335 $1,115,043 FEAR_TRANSITION
|
||||
187 2025-04-10 SELL_GRADUAL QQQ 511 $ 445.68 $ 227,742 34 $1,098,077 $1,104,615 FEAR_TRANSITION
|
||||
188 2025-04-14 BUY_GRADUAL MCHP 7155 $ 38.58 $ 276,050 37 $822,027 $1,104,757 GREED_TRANSITION
|
||||
189 2025-04-15 BUY_GRADUAL WBD 33461 $ 8.25 $ 276,053 38 $545,974 $1,103,807 GREED_TRANSITION
|
||||
190 2025-04-16 STOP_LOSS WBD 33461 $ 7.92 $ 265,011 32 $810,985 $1,087,112 GREED_TRANSITION
|
||||
191 2025-04-16 BUY_QQQ_STOPLOSS QQQ 597 $ 443.68 $ 264,878 32 $546,107 $1,087,112 GREED_TRANSITION
|
||||
192 2025-04-16 BUY_GRADUAL AMD 3126 $ 88.29 $ 275,995 32 $270,112 $1,087,112 GREED_TRANSITION
|
||||
193 2025-05-20 SELL_GRADUAL AMD 781 $ 113.51 $ 88,651 76 $358,764 $1,374,923 QQQ_TRANSITION
|
||||
194 2025-05-20 SELL_GRADUAL MCHP 1788 $ 60.33 $ 107,876 76 $466,639 $1,374,923 QQQ_TRANSITION
|
||||
195 2025-05-20 BUY_GRADUAL QQQ 512 $ 519.69 $ 266,079 76 $200,560 $1,374,923 QQQ_TRANSITION
|
||||
196 2025-05-21 SELL_GRADUAL AMD 781 $ 112.06 $ 87,519 69 $288,079 $1,355,190 QQQ_TRANSITION
|
||||
197 2025-05-21 SELL_GRADUAL MCHP 1788 $ 58.79 $ 105,125 69 $393,204 $1,355,190 QQQ_TRANSITION
|
||||
198 2025-05-21 BUY_GRADUAL QQQ 520 $ 512.46 $ 266,481 69 $126,722 $1,355,190 QQQ_TRANSITION
|
||||
199 2025-05-22 SELL_GRADUAL AMD 781 $ 110.71 $ 86,465 67 $213,187 $1,351,925 QQQ_TRANSITION
|
||||
200 2025-05-22 SELL_GRADUAL MCHP 1788 $ 58.05 $ 103,793 67 $316,980 $1,351,925 QQQ_TRANSITION
|
||||
201 2025-05-22 BUY_GRADUAL QQQ 519 $ 513.42 $ 266,467 67 $50,514 $1,351,925 QQQ_TRANSITION
|
||||
202 2025-05-23 SELL_GRADUAL AMD 781 $ 110.31 $ 86,152 62 $136,666 $1,338,007 QQQ_TRANSITION
|
||||
203 2025-05-23 SELL_GRADUAL MCHP 1788 $ 56.19 $ 100,468 62 $237,133 $1,338,007 QQQ_TRANSITION
|
||||
220
backtest/reports/detailed_trades_20250718_190932.txt
Normal file
220
backtest/reports/detailed_trades_20250718_190932.txt
Normal file
@@ -0,0 +1,220 @@
|
||||
Enhanced Emotional Damage Strategy - Detailed Trades Report
|
||||
========================================================================================================================
|
||||
|
||||
📊 交易摘要:
|
||||
总交易数: 203
|
||||
交易时间: 2008-01-09 到 2025-05-23
|
||||
|
||||
交易类型统计:
|
||||
SELL_GRADUAL: 96
|
||||
BUY_GRADUAL: 67
|
||||
STOP_LOSS: 21
|
||||
BUY_QQQ_STOPLOSS: 19
|
||||
|
||||
📋 详细交易记录:
|
||||
======================================================================================================================================================
|
||||
No Date Action Ticker Shares Price Value F&G Cash Assets State
|
||||
======================================================================================================================================================
|
||||
1 2008-01-09 SELL_GRADUAL QQQ 609 $ 41.37 $ 25,193 26 $25,208 $100,829 FEAR_TRANSITION
|
||||
2 2008-01-10 SELL_GRADUAL QQQ 609 $ 41.43 $ 25,230 33 $50,438 $100,940 FEAR_TRANSITION
|
||||
3 2008-01-11 SELL_GRADUAL QQQ 609 $ 40.62 $ 24,736 28 $75,174 $99,951 FEAR_TRANSITION
|
||||
4 2008-01-14 SELL_GRADUAL QQQ 609 $ 41.33 $ 25,167 31 $100,341 $100,383 FEAR_TRANSITION
|
||||
5 2008-01-16 BUY_GRADUAL ILMN 745 $ 33.63 $ 25,057 27 $75,284 $100,381 GREED_TRANSITION
|
||||
6 2008-01-17 BUY_GRADUAL TMUS 852 $ 29.42 $ 25,063 20 $50,221 $99,964 GREED_TRANSITION
|
||||
7 2008-01-18 BUY_GRADUAL DXCM 11274 $ 2.22 $ 25,085 20 $25,137 $98,656 GREED_TRANSITION
|
||||
8 2008-01-22 BUY_GRADUAL SBUX 3549 $ 7.07 $ 25,085 19 $52 $97,152 GREED_TRANSITION
|
||||
9 2008-02-20 STOP_LOSS TMUS 852 $ 24.77 $ 21,101 54 $21,153 $94,385 VOLATILE_STOCKS
|
||||
10 2008-02-20 BUY_QQQ_STOPLOSS QQQ 556 $ 37.93 $ 21,090 54 $63 $94,385 VOLATILE_STOCKS
|
||||
11 2008-02-28 STOP_LOSS DXCM 11274 $ 1.88 $ 21,251 50 $21,314 $94,276 VOLATILE_STOCKS
|
||||
12 2008-02-28 BUY_QQQ_STOPLOSS QQQ 557 $ 38.09 $ 21,215 50 $99 $94,276 VOLATILE_STOCKS
|
||||
13 2008-04-25 STOP_LOSS SBUX 3549 $ 6.00 $ 21,310 69 $21,409 $95,418 VOLATILE_STOCKS
|
||||
14 2008-04-25 BUY_QQQ_STOPLOSS QQQ 523 $ 40.74 $ 21,305 69 $104 $95,418 VOLATILE_STOCKS
|
||||
15 2008-10-09 STOP_LOSS ILMN 745 $ 28.21 $ 21,017 9 $21,121 $65,760 VOLATILE_STOCKS
|
||||
16 2008-10-09 BUY_QQQ_STOPLOSS QQQ 770 $ 27.27 $ 20,997 9 $124 $65,760 VOLATILE_STOCKS
|
||||
17 2009-05-05 BUY_GRADUAL QQQ 1 $ 30.39 $ 30 76 $93 $73,275 QQQ_TRANSITION
|
||||
18 2009-05-06 BUY_GRADUAL QQQ 1 $ 30.40 $ 30 82 $63 $73,296 QQQ_TRANSITION
|
||||
19 2009-05-07 BUY_GRADUAL QQQ 1 $ 29.69 $ 30 78 $33 $71,582 QQQ_TRANSITION
|
||||
20 2009-05-08 BUY_GRADUAL QQQ 1 $ 29.71 $ 30 75 $3 $71,624 QQQ_TRANSITION
|
||||
21 2010-05-27 SELL_GRADUAL QQQ 602 $ 40.00 $ 24,082 34 $24,086 $96,453 FEAR_TRANSITION
|
||||
22 2010-05-28 SELL_GRADUAL QQQ 602 $ 39.77 $ 23,941 33 $48,026 $96,027 FEAR_TRANSITION
|
||||
23 2010-06-01 SELL_GRADUAL QQQ 602 $ 39.40 $ 23,720 27 $71,746 $95,585 FEAR_TRANSITION
|
||||
24 2010-06-02 SELL_GRADUAL QQQ 602 $ 40.34 $ 24,282 38 $96,028 $96,149 FEAR_TRANSITION
|
||||
25 2010-06-04 BUY_GRADUAL SIRI 2705 $ 8.87 $ 24,002 37 $72,026 $96,146 GREED_TRANSITION
|
||||
26 2010-06-07 BUY_GRADUAL NFLX 1539 $ 15.59 $ 24,000 35 $48,026 $95,899 GREED_TRANSITION
|
||||
27 2010-06-08 BUY_GRADUAL TMUS 1793 $ 13.38 $ 23,998 34 $24,028 $95,666 GREED_TRANSITION
|
||||
28 2010-06-09 STOP_LOSS TMUS 1793 $ 13.38 $ 23,998 33 $48,026 $97,032 GREED_TRANSITION
|
||||
29 2010-06-09 BUY_QQQ_STOPLOSS QQQ 627 $ 38.22 $ 23,961 33 $24,065 $97,032 GREED_TRANSITION
|
||||
30 2010-06-09 BUY_GRADUAL LULU 1227 $ 19.55 $ 23,988 33 $77 $97,032 GREED_TRANSITION
|
||||
31 2010-08-30 STOP_LOSS LULU 1227 $ 15.95 $ 19,571 31 $19,648 $94,278 VOLATILE_STOCKS
|
||||
32 2010-08-30 BUY_QQQ_STOPLOSS QQQ 512 $ 38.18 $ 19,548 31 $100 $94,278 VOLATILE_STOCKS
|
||||
33 2010-11-04 SELL_GRADUAL SIRI 676 $ 13.31 $ 8,998 80 $9,097 $126,785 QQQ_TRANSITION
|
||||
34 2010-11-04 SELL_GRADUAL NFLX 384 $ 23.97 $ 9,206 80 $18,303 $126,785 QQQ_TRANSITION
|
||||
35 2010-11-05 SELL_GRADUAL SIRI 676 $ 13.85 $ 9,365 80 $27,668 $127,933 QQQ_TRANSITION
|
||||
36 2010-11-05 SELL_GRADUAL NFLX 384 $ 24.01 $ 9,221 80 $36,890 $127,933 QQQ_TRANSITION
|
||||
37 2010-11-05 BUY_GRADUAL QQQ 404 $ 47.10 $ 19,027 80 $17,862 $127,933 QQQ_TRANSITION
|
||||
38 2010-11-08 SELL_GRADUAL SIRI 676 $ 14.03 $ 9,487 78 $27,349 $128,387 QQQ_TRANSITION
|
||||
39 2010-11-08 SELL_GRADUAL NFLX 384 $ 24.16 $ 9,278 78 $36,627 $128,387 QQQ_TRANSITION
|
||||
40 2010-11-08 BUY_GRADUAL QQQ 404 $ 47.16 $ 19,052 78 $17,575 $128,387 QQQ_TRANSITION
|
||||
41 2010-11-09 SELL_GRADUAL SIRI 676 $ 13.49 $ 9,120 74 $26,695 $127,596 QQQ_TRANSITION
|
||||
42 2010-11-09 SELL_GRADUAL NFLX 384 $ 24.35 $ 9,351 74 $36,046 $127,596 QQQ_TRANSITION
|
||||
43 2010-11-09 BUY_GRADUAL QQQ 406 $ 46.90 $ 19,043 74 $17,003 $127,596 QQQ_TRANSITION
|
||||
44 2011-08-05 SELL_GRADUAL QQQ 589 $ 47.50 $ 27,980 16 $44,983 $129,044 FEAR_TRANSITION
|
||||
45 2011-08-08 SELL_GRADUAL QQQ 589 $ 44.65 $ 26,296 12 $71,279 $123,983 FEAR_TRANSITION
|
||||
46 2011-08-09 SELL_GRADUAL QQQ 589 $ 46.80 $ 27,564 21 $98,843 $126,526 FEAR_TRANSITION
|
||||
47 2011-08-10 SELL_GRADUAL QQQ 589 $ 44.88 $ 26,436 16 $125,280 $125,395 FEAR_TRANSITION
|
||||
48 2011-08-16 BUY_GRADUAL AMD 4944 $ 6.34 $ 31,345 28 $93,935 $125,400 GREED_TRANSITION
|
||||
49 2011-08-17 BUY_GRADUAL DXCM 11087 $ 2.83 $ 31,348 27 $62,586 $124,408 GREED_TRANSITION
|
||||
50 2011-08-18 BUY_GRADUAL ILMN 684 $ 45.82 $ 31,339 21 $31,247 $121,090 GREED_TRANSITION
|
||||
51 2011-09-29 STOP_LOSS AMD 4944 $ 5.31 $ 26,253 36 $57,500 $119,987 VOLATILE_STOCKS
|
||||
52 2011-09-29 BUY_QQQ_STOPLOSS QQQ 551 $ 47.64 $ 26,248 36 $31,252 $119,987 VOLATILE_STOCKS
|
||||
53 2011-10-07 STOP_LOSS ILMN 684 $ 26.44 $ 18,085 46 $49,337 $106,508 VOLATILE_STOCKS
|
||||
54 2011-10-07 BUY_QQQ_STOPLOSS QQQ 378 $ 47.80 $ 18,070 46 $31,267 $106,508 VOLATILE_STOCKS
|
||||
55 2011-10-25 STOP_LOSS NFLX 3 $ 11.05 $ 33 58 $31,300 $107,461 VOLATILE_STOCKS
|
||||
56 2011-11-03 STOP_LOSS DXCM 11087 $ 1.97 $ 21,814 63 $53,114 $100,849 VOLATILE_STOCKS
|
||||
57 2011-11-03 BUY_QQQ_STOPLOSS QQQ 424 $ 51.37 $ 21,780 63 $31,334 $100,849 VOLATILE_STOCKS
|
||||
58 2012-01-20 BUY_GRADUAL QQQ 147 $ 53.05 $ 7,798 76 $23,536 $103,125 QQQ_TRANSITION
|
||||
59 2012-01-23 BUY_GRADUAL QQQ 147 $ 53.06 $ 7,800 75 $15,735 $103,151 QQQ_TRANSITION
|
||||
60 2012-01-24 BUY_GRADUAL QQQ 147 $ 52.97 $ 7,786 74 $7,949 $102,990 QQQ_TRANSITION
|
||||
61 2012-01-25 BUY_GRADUAL QQQ 146 $ 53.63 $ 7,830 75 $119 $104,184 QQQ_TRANSITION
|
||||
62 2012-05-21 SELL_GRADUAL QQQ 485 $ 55.57 $ 26,953 34 $27,072 $107,948 FEAR_TRANSITION
|
||||
63 2012-05-22 SELL_GRADUAL QQQ 485 $ 55.51 $ 26,922 34 $53,994 $107,857 FEAR_TRANSITION
|
||||
64 2012-05-23 SELL_GRADUAL QQQ 485 $ 55.62 $ 26,974 33 $80,968 $107,961 FEAR_TRANSITION
|
||||
65 2012-05-24 SELL_GRADUAL QQQ 485 $ 55.25 $ 26,797 32 $107,766 $107,784 FEAR_TRANSITION
|
||||
66 2012-05-29 BUY_GRADUAL VRTX 466 $ 57.80 $ 26,935 39 $80,831 $107,783 GREED_TRANSITION
|
||||
67 2012-05-30 BUY_GRADUAL NXPI 1395 $ 19.31 $ 26,933 33 $53,898 $108,892 GREED_TRANSITION
|
||||
68 2012-05-31 BUY_GRADUAL REGN 199 $ 135.28 $ 26,920 34 $26,978 $108,301 GREED_TRANSITION
|
||||
69 2012-06-01 BUY_GRADUAL MNST 2291 $ 11.76 $ 26,935 27 $44 $103,625 GREED_TRANSITION
|
||||
70 2012-06-13 STOP_LOSS REGN 199 $ 111.57 $ 22,203 44 $22,246 $101,613 VOLATILE_STOCKS
|
||||
71 2012-06-13 BUY_QQQ_STOPLOSS QQQ 401 $ 55.23 $ 22,149 44 $97 $101,613 VOLATILE_STOCKS
|
||||
72 2012-07-24 STOP_LOSS VRTX 466 $ 48.37 $ 22,540 51 $22,638 $98,436 VOLATILE_STOCKS
|
||||
73 2012-07-24 BUY_QQQ_STOPLOSS QQQ 401 $ 56.10 $ 22,497 51 $141 $98,436 VOLATILE_STOCKS
|
||||
74 2012-08-10 STOP_LOSS MNST 2291 $ 9.05 $ 20,722 62 $20,863 $99,014 VOLATILE_STOCKS
|
||||
75 2012-08-10 BUY_QQQ_STOPLOSS QQQ 347 $ 59.58 $ 20,673 62 $190 $99,014 VOLATILE_STOCKS
|
||||
76 2013-01-24 SELL_GRADUAL NXPI 348 $ 26.46 $ 9,209 75 $9,399 $105,958 QQQ_TRANSITION
|
||||
77 2013-01-24 BUY_GRADUAL QQQ 154 $ 59.90 $ 9,224 75 $175 $105,958 QQQ_TRANSITION
|
||||
78 2013-01-25 SELL_GRADUAL NXPI 348 $ 26.98 $ 9,390 77 $9,565 $106,902 QQQ_TRANSITION
|
||||
79 2013-01-25 BUY_GRADUAL QQQ 154 $ 60.20 $ 9,272 77 $293 $106,902 QQQ_TRANSITION
|
||||
80 2013-01-28 SELL_GRADUAL NXPI 348 $ 27.35 $ 9,518 76 $9,811 $107,355 QQQ_TRANSITION
|
||||
81 2013-01-28 BUY_GRADUAL QQQ 153 $ 60.34 $ 9,232 76 $579 $107,355 QQQ_TRANSITION
|
||||
82 2013-01-29 SELL_GRADUAL NXPI 348 $ 26.46 $ 9,209 77 $9,788 $107,058 QQQ_TRANSITION
|
||||
83 2013-01-29 BUY_GRADUAL QQQ 153 $ 60.35 $ 9,233 77 $555 $107,058 QQQ_TRANSITION
|
||||
84 2015-08-25 SELL_GRADUAL QQQ 440 $ 90.96 $ 40,021 19 $40,576 $161,163 FEAR_TRANSITION
|
||||
85 2015-08-26 SELL_GRADUAL QQQ 440 $ 95.54 $ 42,037 30 $82,612 $167,235 FEAR_TRANSITION
|
||||
86 2015-08-27 SELL_GRADUAL QQQ 440 $ 97.96 $ 43,101 37 $125,714 $169,377 FEAR_TRANSITION
|
||||
87 2015-08-28 SELL_GRADUAL QQQ 440 $ 97.94 $ 43,093 37 $168,807 $169,370 FEAR_TRANSITION
|
||||
88 2015-09-01 BUY_GRADUAL NFLX 399 $ 105.79 $ 42,210 29 $126,597 $169,343 GREED_TRANSITION
|
||||
89 2015-09-02 BUY_GRADUAL NVDA 78306 $ 0.54 $ 42,267 34 $84,330 $169,220 GREED_TRANSITION
|
||||
90 2015-09-03 BUY_GRADUAL MU 2608 $ 16.20 $ 42,259 36 $42,071 $167,587 GREED_TRANSITION
|
||||
91 2015-09-28 STOP_LOSS MU 2608 $ 13.73 $ 35,814 29 $77,885 $162,450 VOLATILE_STOCKS
|
||||
92 2015-09-28 BUY_QQQ_STOPLOSS QQQ 385 $ 92.94 $ 35,784 29 $42,102 $162,450 VOLATILE_STOCKS
|
||||
93 2017-02-16 SELL_GRADUAL NFLX 99 $ 142.01 $ 14,059 74 $56,161 $353,212 QQQ_TRANSITION
|
||||
94 2017-02-16 SELL_GRADUAL NVDA 19576 $ 2.64 $ 51,711 74 $107,872 $353,212 QQQ_TRANSITION
|
||||
95 2017-02-16 BUY_GRADUAL QQQ 634 $ 121.85 $ 77,254 74 $30,618 $353,212 QQQ_TRANSITION
|
||||
96 2017-02-17 SELL_GRADUAL NFLX 99 $ 142.22 $ 14,080 74 $44,697 $353,786 QQQ_TRANSITION
|
||||
97 2017-02-17 SELL_GRADUAL NVDA 19576 $ 2.64 $ 51,701 74 $96,399 $353,786 QQQ_TRANSITION
|
||||
98 2017-02-17 BUY_GRADUAL QQQ 632 $ 122.38 $ 77,344 74 $19,055 $353,786 QQQ_TRANSITION
|
||||
99 2017-02-21 SELL_GRADUAL NFLX 99 $ 142.60 $ 14,117 76 $33,172 $358,565 QQQ_TRANSITION
|
||||
100 2017-02-21 SELL_GRADUAL NVDA 19576 $ 2.74 $ 53,553 76 $86,725 $358,565 QQQ_TRANSITION
|
||||
101 2017-02-21 BUY_GRADUAL QQQ 628 $ 122.98 $ 77,233 76 $9,492 $358,565 QQQ_TRANSITION
|
||||
102 2017-02-22 SELL_GRADUAL NFLX 99 $ 143.86 $ 14,242 75 $23,734 $358,720 QQQ_TRANSITION
|
||||
103 2017-02-22 SELL_GRADUAL NVDA 19576 $ 2.73 $ 53,471 75 $77,204 $358,720 QQQ_TRANSITION
|
||||
104 2018-12-18 SELL_GRADUAL QQQ 570 $ 151.55 $ 86,385 24 $163,590 $424,134 FEAR_TRANSITION
|
||||
105 2018-12-19 SELL_GRADUAL QQQ 570 $ 147.83 $ 84,264 23 $247,854 $417,734 FEAR_TRANSITION
|
||||
106 2018-12-20 SELL_GRADUAL QQQ 570 $ 145.69 $ 83,043 22 $330,897 $415,268 FEAR_TRANSITION
|
||||
107 2018-12-21 SELL_GRADUAL QQQ 570 $ 141.17 $ 80,469 20 $411,366 $412,636 FEAR_TRANSITION
|
||||
108 2018-12-27 BUY_GRADUAL ZS 2566 $ 40.17 $ 103,076 28 $308,289 $412,683 GREED_TRANSITION
|
||||
109 2018-12-28 BUY_GRADUAL AMD 5785 $ 17.82 $ 103,089 26 $205,201 $411,733 GREED_TRANSITION
|
||||
110 2018-12-31 BUY_GRADUAL MDB 1231 $ 83.74 $ 103,084 30 $102,117 $413,961 GREED_TRANSITION
|
||||
111 2019-04-24 SELL_GRADUAL ZS 641 $ 64.99 $ 41,659 75 $143,775 $601,726 QQQ_TRANSITION
|
||||
112 2019-04-24 SELL_GRADUAL AMD 1446 $ 28.46 $ 41,153 75 $184,928 $601,726 QQQ_TRANSITION
|
||||
113 2019-04-24 SELL_GRADUAL MDB 307 $ 135.16 $ 41,494 75 $226,423 $601,726 QQQ_TRANSITION
|
||||
114 2019-04-24 BUY_GRADUAL QQQ 825 $ 182.34 $ 150,428 75 $75,994 $601,726 QQQ_TRANSITION
|
||||
115 2019-04-25 SELL_GRADUAL ZS 641 $ 66.96 $ 42,921 74 $118,916 $604,944 QQQ_TRANSITION
|
||||
116 2019-04-25 SELL_GRADUAL AMD 1446 $ 27.66 $ 39,996 74 $158,912 $604,944 QQQ_TRANSITION
|
||||
117 2019-04-25 SELL_GRADUAL MDB 307 $ 137.66 $ 42,262 74 $201,174 $604,944 QQQ_TRANSITION
|
||||
118 2019-04-25 BUY_GRADUAL QQQ 822 $ 183.08 $ 150,490 74 $50,684 $604,944 QQQ_TRANSITION
|
||||
119 2019-04-26 SELL_GRADUAL ZS 641 $ 66.94 $ 42,909 74 $93,592 $606,662 QQQ_TRANSITION
|
||||
120 2019-04-26 SELL_GRADUAL AMD 1446 $ 27.88 $ 40,314 74 $133,907 $606,662 QQQ_TRANSITION
|
||||
121 2019-04-26 SELL_GRADUAL MDB 307 $ 138.98 $ 42,667 74 $176,574 $606,662 QQQ_TRANSITION
|
||||
122 2019-04-26 BUY_GRADUAL QQQ 821 $ 183.24 $ 150,441 74 $26,133 $606,662 QQQ_TRANSITION
|
||||
123 2019-04-29 SELL_GRADUAL ZS 641 $ 68.20 $ 43,716 74 $69,849 $607,606 QQQ_TRANSITION
|
||||
124 2019-04-29 SELL_GRADUAL AMD 1446 $ 27.69 $ 40,040 74 $109,889 $607,606 QQQ_TRANSITION
|
||||
125 2019-04-29 SELL_GRADUAL MDB 307 $ 137.50 $ 42,212 74 $152,101 $607,606 QQQ_TRANSITION
|
||||
126 2019-04-29 BUY_GRADUAL QQQ 820 $ 183.60 $ 150,549 74 $1,552 $607,606 QQQ_TRANSITION
|
||||
127 2020-02-28 SELL_GRADUAL QQQ 822 $ 199.07 $ 163,635 20 $165,188 $658,590 FEAR_TRANSITION
|
||||
128 2020-03-02 SELL_GRADUAL QQQ 822 $ 209.34 $ 172,080 37 $337,267 $684,012 FEAR_TRANSITION
|
||||
129 2020-03-03 SELL_GRADUAL QQQ 822 $ 202.63 $ 166,561 29 $503,829 $672,909 FEAR_TRANSITION
|
||||
130 2020-03-04 SELL_GRADUAL QQQ 822 $ 211.08 $ 173,511 38 $677,340 $679,956 FEAR_TRANSITION
|
||||
131 2020-03-06 BUY_GRADUAL MRNA 5736 $ 29.61 $ 169,843 25 $507,497 $679,826 GREED_TRANSITION
|
||||
132 2020-03-09 STOP_LOSS MRNA 5736 $ 24.29 $ 139,327 17 $646,824 $649,100 GREED_TRANSITION
|
||||
133 2020-03-09 BUY_QQQ_STOPLOSS QQQ 744 $ 187.24 $ 139,306 17 $507,518 $649,100 GREED_TRANSITION
|
||||
134 2020-03-09 BUY_GRADUAL TSLA 4190 $ 40.53 $ 169,835 17 $337,683 $649,100 GREED_TRANSITION
|
||||
135 2020-03-10 BUY_GRADUAL MRVL 7509 $ 22.62 $ 169,858 25 $167,825 $667,230 GREED_TRANSITION
|
||||
136 2020-03-12 STOP_LOSS MRVL 7509 $ 19.06 $ 143,146 17 $310,971 $597,219 VOLATILE_STOCKS
|
||||
137 2020-03-12 BUY_QQQ_STOPLOSS QQQ 834 $ 171.52 $ 143,049 17 $167,922 $597,219 VOLATILE_STOCKS
|
||||
138 2020-03-16 STOP_LOSS TSLA 4190 $ 29.67 $ 124,323 19 $292,245 $552,585 VOLATILE_STOCKS
|
||||
139 2020-03-16 BUY_QQQ_STOPLOSS QQQ 759 $ 163.76 $ 124,296 19 $167,949 $552,585 VOLATILE_STOCKS
|
||||
140 2020-06-03 BUY_GRADUAL QQQ 185 $ 229.44 $ 42,446 79 $125,503 $707,213 QQQ_TRANSITION
|
||||
141 2020-06-04 BUY_GRADUAL QQQ 187 $ 227.83 $ 42,604 79 $82,899 $703,082 QQQ_TRANSITION
|
||||
142 2020-06-05 BUY_GRADUAL QQQ 183 $ 232.35 $ 42,519 84 $40,380 $715,284 QQQ_TRANSITION
|
||||
143 2022-01-26 SELL_GRADUAL QQQ 723 $ 336.81 $ 243,517 24 $283,896 $1,018,473 FEAR_TRANSITION
|
||||
144 2022-01-27 SELL_GRADUAL QQQ 723 $ 333.42 $ 241,064 23 $524,961 $1,011,148 FEAR_TRANSITION
|
||||
145 2022-01-28 SELL_GRADUAL QQQ 723 $ 343.88 $ 248,626 32 $773,587 $1,026,391 FEAR_TRANSITION
|
||||
146 2022-01-31 SELL_GRADUAL QQQ 723 $ 354.88 $ 256,577 41 $1,030,164 $1,034,684 FEAR_TRANSITION
|
||||
147 2022-02-02 BUY_GRADUAL NFLX 601 $ 429.48 $ 258,117 47 $772,047 $1,034,708 GREED_TRANSITION
|
||||
148 2022-02-03 BUY_GRADUAL PDD 4689 $ 55.13 $ 258,505 43 $513,542 $1,020,143 GREED_TRANSITION
|
||||
149 2022-02-04 BUY_GRADUAL WBD 8945 $ 28.90 $ 258,510 46 $255,031 $1,026,385 GREED_TRANSITION
|
||||
150 2022-03-03 STOP_LOSS PDD 4689 $ 45.22 $ 212,037 39 $467,068 $948,795 VOLATILE_STOCKS
|
||||
151 2022-03-03 BUY_QQQ_STOPLOSS QQQ 633 $ 334.56 $ 211,774 39 $255,294 $948,795 VOLATILE_STOCKS
|
||||
152 2022-03-11 STOP_LOSS WBD 8945 $ 23.99 $ 214,591 31 $469,885 $878,854 VOLATILE_STOCKS
|
||||
153 2022-03-11 BUY_QQQ_STOPLOSS QQQ 676 $ 317.10 $ 214,358 31 $255,526 $878,854 VOLATILE_STOCKS
|
||||
154 2022-08-16 SELL_GRADUAL NFLX 151 $ 245.69 $ 37,099 76 $292,625 $833,290 QQQ_TRANSITION
|
||||
155 2022-08-16 BUY_GRADUAL QQQ 313 $ 325.83 $ 101,984 76 $190,641 $833,290 QQQ_TRANSITION
|
||||
156 2022-08-17 SELL_GRADUAL NFLX 151 $ 241.15 $ 36,414 72 $227,055 $825,132 QQQ_TRANSITION
|
||||
157 2022-08-17 BUY_GRADUAL QQQ 316 $ 322.11 $ 101,787 72 $125,268 $825,132 QQQ_TRANSITION
|
||||
158 2022-08-18 SELL_GRADUAL NFLX 151 $ 245.17 $ 37,021 73 $162,289 $827,836 QQQ_TRANSITION
|
||||
159 2022-08-18 BUY_GRADUAL QQQ 316 $ 322.89 $ 102,032 73 $60,257 $827,836 QQQ_TRANSITION
|
||||
160 2022-08-19 SELL_GRADUAL NFLX 151 $ 241.16 $ 36,415 68 $96,672 $812,946 QQQ_TRANSITION
|
||||
161 2022-09-26 SELL_GRADUAL QQQ 564 $ 269.53 $ 152,012 25 $248,684 $706,189 FEAR_TRANSITION
|
||||
162 2022-09-27 SELL_GRADUAL QQQ 564 $ 269.63 $ 152,073 26 $400,758 $706,398 FEAR_TRANSITION
|
||||
163 2022-09-28 SELL_GRADUAL QQQ 564 $ 275.00 $ 155,098 33 $555,856 $712,492 FEAR_TRANSITION
|
||||
164 2022-09-29 SELL_GRADUAL QQQ 564 $ 267.07 $ 150,627 29 $706,483 $707,973 FEAR_TRANSITION
|
||||
165 2022-10-03 BUY_GRADUAL BIIB 669 $ 264.30 $ 176,817 32 $529,667 $707,986 GREED_TRANSITION
|
||||
166 2022-10-04 BUY_GRADUAL REGN 239 $ 737.50 $ 176,263 42 $353,404 $710,159 GREED_TRANSITION
|
||||
167 2022-10-05 BUY_GRADUAL NFLX 747 $ 236.73 $ 176,837 42 $176,567 $707,777 GREED_TRANSITION
|
||||
168 2023-02-03 SELL_GRADUAL BIIB 167 $ 283.63 $ 47,366 72 $223,933 $827,955 QQQ_TRANSITION
|
||||
169 2023-02-03 SELL_GRADUAL REGN 59 $ 780.97 $ 46,077 72 $270,010 $827,955 QQQ_TRANSITION
|
||||
170 2023-02-03 SELL_GRADUAL NFLX 186 $ 365.90 $ 68,057 72 $338,067 $827,955 QQQ_TRANSITION
|
||||
171 2023-02-03 BUY_GRADUAL QQQ 683 $ 301.49 $ 205,920 72 $132,147 $827,955 QQQ_TRANSITION
|
||||
172 2023-02-06 SELL_GRADUAL BIIB 167 $ 288.28 $ 48,143 65 $180,290 $825,631 QQQ_TRANSITION
|
||||
173 2023-02-06 SELL_GRADUAL REGN 59 $ 778.71 $ 45,944 65 $226,234 $825,631 QQQ_TRANSITION
|
||||
174 2023-02-06 SELL_GRADUAL NFLX 186 $ 361.48 $ 67,235 65 $293,469 $825,631 QQQ_TRANSITION
|
||||
175 2023-02-06 BUY_GRADUAL QQQ 688 $ 298.94 $ 205,673 65 $87,796 $825,631 QQQ_TRANSITION
|
||||
176 2023-02-07 SELL_GRADUAL BIIB 167 $ 291.43 $ 48,669 70 $136,464 $834,461 QQQ_TRANSITION
|
||||
177 2023-02-07 SELL_GRADUAL REGN 59 $ 767.82 $ 45,301 70 $181,766 $834,461 QQQ_TRANSITION
|
||||
178 2023-02-07 SELL_GRADUAL NFLX 186 $ 362.95 $ 67,509 70 $249,274 $834,461 QQQ_TRANSITION
|
||||
179 2023-02-07 BUY_GRADUAL QQQ 674 $ 305.14 $ 205,663 70 $43,612 $834,461 QQQ_TRANSITION
|
||||
180 2023-02-08 SELL_GRADUAL BIIB 167 $ 285.45 $ 47,670 64 $91,282 $821,817 QQQ_TRANSITION
|
||||
181 2023-02-08 SELL_GRADUAL REGN 59 $ 747.59 $ 44,108 64 $135,390 $821,817 QQQ_TRANSITION
|
||||
182 2023-02-08 SELL_GRADUAL NFLX 186 $ 366.83 $ 68,230 64 $203,620 $821,817 QQQ_TRANSITION
|
||||
183 2023-11-09 STOP_LOSS BIIB 1 $ 224.65 $ 225 54 $203,845 $958,229 QQQ_HOLD
|
||||
184 2025-04-07 SELL_GRADUAL QQQ 511 $ 423.21 $ 216,263 24 $420,108 $1,075,227 FEAR_TRANSITION
|
||||
185 2025-04-08 SELL_GRADUAL QQQ 511 $ 415.59 $ 212,368 23 $632,476 $1,063,447 FEAR_TRANSITION
|
||||
186 2025-04-09 SELL_GRADUAL QQQ 511 $ 465.48 $ 237,859 39 $870,335 $1,115,043 FEAR_TRANSITION
|
||||
187 2025-04-10 SELL_GRADUAL QQQ 511 $ 445.68 $ 227,742 34 $1,098,077 $1,104,615 FEAR_TRANSITION
|
||||
188 2025-04-14 BUY_GRADUAL MCHP 7155 $ 38.58 $ 276,050 37 $822,027 $1,104,757 GREED_TRANSITION
|
||||
189 2025-04-15 BUY_GRADUAL WBD 33461 $ 8.25 $ 276,053 38 $545,974 $1,103,807 GREED_TRANSITION
|
||||
190 2025-04-16 STOP_LOSS WBD 33461 $ 7.92 $ 265,011 32 $810,985 $1,087,112 GREED_TRANSITION
|
||||
191 2025-04-16 BUY_QQQ_STOPLOSS QQQ 597 $ 443.68 $ 264,878 32 $546,107 $1,087,112 GREED_TRANSITION
|
||||
192 2025-04-16 BUY_GRADUAL AMD 3126 $ 88.29 $ 275,995 32 $270,112 $1,087,112 GREED_TRANSITION
|
||||
193 2025-05-20 SELL_GRADUAL AMD 781 $ 113.51 $ 88,651 76 $358,764 $1,374,923 QQQ_TRANSITION
|
||||
194 2025-05-20 SELL_GRADUAL MCHP 1788 $ 60.33 $ 107,876 76 $466,639 $1,374,923 QQQ_TRANSITION
|
||||
195 2025-05-20 BUY_GRADUAL QQQ 512 $ 519.69 $ 266,079 76 $200,560 $1,374,923 QQQ_TRANSITION
|
||||
196 2025-05-21 SELL_GRADUAL AMD 781 $ 112.06 $ 87,519 69 $288,079 $1,355,190 QQQ_TRANSITION
|
||||
197 2025-05-21 SELL_GRADUAL MCHP 1788 $ 58.79 $ 105,125 69 $393,204 $1,355,190 QQQ_TRANSITION
|
||||
198 2025-05-21 BUY_GRADUAL QQQ 520 $ 512.46 $ 266,481 69 $126,722 $1,355,190 QQQ_TRANSITION
|
||||
199 2025-05-22 SELL_GRADUAL AMD 781 $ 110.71 $ 86,465 67 $213,187 $1,351,925 QQQ_TRANSITION
|
||||
200 2025-05-22 SELL_GRADUAL MCHP 1788 $ 58.05 $ 103,793 67 $316,980 $1,351,925 QQQ_TRANSITION
|
||||
201 2025-05-22 BUY_GRADUAL QQQ 519 $ 513.42 $ 266,467 67 $50,514 $1,351,925 QQQ_TRANSITION
|
||||
202 2025-05-23 SELL_GRADUAL AMD 781 $ 110.31 $ 86,152 62 $136,666 $1,338,007 QQQ_TRANSITION
|
||||
203 2025-05-23 SELL_GRADUAL MCHP 1788 $ 56.19 $ 100,468 62 $237,133 $1,338,007 QQQ_TRANSITION
|
||||
220
backtest/reports/detailed_trades_20250718_191059.txt
Normal file
220
backtest/reports/detailed_trades_20250718_191059.txt
Normal file
@@ -0,0 +1,220 @@
|
||||
Enhanced Emotional Damage Strategy - Detailed Trades Report
|
||||
========================================================================================================================
|
||||
|
||||
📊 交易摘要:
|
||||
总交易数: 203
|
||||
交易时间: 2008-01-09 到 2025-05-23
|
||||
|
||||
交易类型统计:
|
||||
SELL_GRADUAL: 96
|
||||
BUY_GRADUAL: 67
|
||||
STOP_LOSS: 21
|
||||
BUY_QQQ_STOPLOSS: 19
|
||||
|
||||
📋 详细交易记录:
|
||||
======================================================================================================================================================
|
||||
No Date Action Ticker Shares Price Value F&G Cash Assets State
|
||||
======================================================================================================================================================
|
||||
1 2008-01-09 SELL_GRADUAL QQQ 609 $ 41.37 $ 25,193 26 $25,208 $100,829 FEAR_TRANSITION
|
||||
2 2008-01-10 SELL_GRADUAL QQQ 609 $ 41.43 $ 25,230 33 $50,438 $100,940 FEAR_TRANSITION
|
||||
3 2008-01-11 SELL_GRADUAL QQQ 609 $ 40.62 $ 24,736 28 $75,174 $99,951 FEAR_TRANSITION
|
||||
4 2008-01-14 SELL_GRADUAL QQQ 609 $ 41.33 $ 25,167 31 $100,341 $100,383 FEAR_TRANSITION
|
||||
5 2008-01-16 BUY_GRADUAL ILMN 745 $ 33.63 $ 25,057 27 $75,284 $100,381 GREED_TRANSITION
|
||||
6 2008-01-17 BUY_GRADUAL TMUS 852 $ 29.42 $ 25,063 20 $50,221 $99,964 GREED_TRANSITION
|
||||
7 2008-01-18 BUY_GRADUAL DXCM 11274 $ 2.22 $ 25,085 20 $25,137 $98,656 GREED_TRANSITION
|
||||
8 2008-01-22 BUY_GRADUAL SBUX 3549 $ 7.07 $ 25,085 19 $52 $97,152 GREED_TRANSITION
|
||||
9 2008-02-20 STOP_LOSS TMUS 852 $ 24.77 $ 21,101 54 $21,153 $94,385 VOLATILE_STOCKS
|
||||
10 2008-02-20 BUY_QQQ_STOPLOSS QQQ 556 $ 37.93 $ 21,090 54 $63 $94,385 VOLATILE_STOCKS
|
||||
11 2008-02-28 STOP_LOSS DXCM 11274 $ 1.88 $ 21,251 50 $21,314 $94,276 VOLATILE_STOCKS
|
||||
12 2008-02-28 BUY_QQQ_STOPLOSS QQQ 557 $ 38.09 $ 21,215 50 $99 $94,276 VOLATILE_STOCKS
|
||||
13 2008-04-25 STOP_LOSS SBUX 3549 $ 6.00 $ 21,310 69 $21,409 $95,418 VOLATILE_STOCKS
|
||||
14 2008-04-25 BUY_QQQ_STOPLOSS QQQ 523 $ 40.74 $ 21,305 69 $104 $95,418 VOLATILE_STOCKS
|
||||
15 2008-10-09 STOP_LOSS ILMN 745 $ 28.21 $ 21,017 9 $21,121 $65,760 VOLATILE_STOCKS
|
||||
16 2008-10-09 BUY_QQQ_STOPLOSS QQQ 770 $ 27.27 $ 20,997 9 $124 $65,760 VOLATILE_STOCKS
|
||||
17 2009-05-05 BUY_GRADUAL QQQ 1 $ 30.39 $ 30 76 $93 $73,275 QQQ_TRANSITION
|
||||
18 2009-05-06 BUY_GRADUAL QQQ 1 $ 30.40 $ 30 82 $63 $73,296 QQQ_TRANSITION
|
||||
19 2009-05-07 BUY_GRADUAL QQQ 1 $ 29.69 $ 30 78 $33 $71,582 QQQ_TRANSITION
|
||||
20 2009-05-08 BUY_GRADUAL QQQ 1 $ 29.71 $ 30 75 $3 $71,624 QQQ_TRANSITION
|
||||
21 2010-05-27 SELL_GRADUAL QQQ 602 $ 40.00 $ 24,082 34 $24,086 $96,453 FEAR_TRANSITION
|
||||
22 2010-05-28 SELL_GRADUAL QQQ 602 $ 39.77 $ 23,941 33 $48,026 $96,027 FEAR_TRANSITION
|
||||
23 2010-06-01 SELL_GRADUAL QQQ 602 $ 39.40 $ 23,720 27 $71,746 $95,585 FEAR_TRANSITION
|
||||
24 2010-06-02 SELL_GRADUAL QQQ 602 $ 40.34 $ 24,282 38 $96,028 $96,149 FEAR_TRANSITION
|
||||
25 2010-06-04 BUY_GRADUAL SIRI 2705 $ 8.87 $ 24,002 37 $72,026 $96,146 GREED_TRANSITION
|
||||
26 2010-06-07 BUY_GRADUAL NFLX 1539 $ 15.59 $ 24,000 35 $48,026 $95,899 GREED_TRANSITION
|
||||
27 2010-06-08 BUY_GRADUAL TMUS 1793 $ 13.38 $ 23,998 34 $24,028 $95,666 GREED_TRANSITION
|
||||
28 2010-06-09 STOP_LOSS TMUS 1793 $ 13.38 $ 23,998 33 $48,026 $97,032 GREED_TRANSITION
|
||||
29 2010-06-09 BUY_QQQ_STOPLOSS QQQ 627 $ 38.22 $ 23,961 33 $24,065 $97,032 GREED_TRANSITION
|
||||
30 2010-06-09 BUY_GRADUAL LULU 1227 $ 19.55 $ 23,988 33 $77 $97,032 GREED_TRANSITION
|
||||
31 2010-08-30 STOP_LOSS LULU 1227 $ 15.95 $ 19,571 31 $19,648 $94,278 VOLATILE_STOCKS
|
||||
32 2010-08-30 BUY_QQQ_STOPLOSS QQQ 512 $ 38.18 $ 19,548 31 $100 $94,278 VOLATILE_STOCKS
|
||||
33 2010-11-04 SELL_GRADUAL SIRI 676 $ 13.31 $ 8,998 80 $9,097 $126,785 QQQ_TRANSITION
|
||||
34 2010-11-04 SELL_GRADUAL NFLX 384 $ 23.97 $ 9,206 80 $18,303 $126,785 QQQ_TRANSITION
|
||||
35 2010-11-05 SELL_GRADUAL SIRI 676 $ 13.85 $ 9,365 80 $27,668 $127,933 QQQ_TRANSITION
|
||||
36 2010-11-05 SELL_GRADUAL NFLX 384 $ 24.01 $ 9,221 80 $36,890 $127,933 QQQ_TRANSITION
|
||||
37 2010-11-05 BUY_GRADUAL QQQ 404 $ 47.10 $ 19,027 80 $17,862 $127,933 QQQ_TRANSITION
|
||||
38 2010-11-08 SELL_GRADUAL SIRI 676 $ 14.03 $ 9,487 78 $27,349 $128,387 QQQ_TRANSITION
|
||||
39 2010-11-08 SELL_GRADUAL NFLX 384 $ 24.16 $ 9,278 78 $36,627 $128,387 QQQ_TRANSITION
|
||||
40 2010-11-08 BUY_GRADUAL QQQ 404 $ 47.16 $ 19,052 78 $17,575 $128,387 QQQ_TRANSITION
|
||||
41 2010-11-09 SELL_GRADUAL SIRI 676 $ 13.49 $ 9,120 74 $26,695 $127,596 QQQ_TRANSITION
|
||||
42 2010-11-09 SELL_GRADUAL NFLX 384 $ 24.35 $ 9,351 74 $36,046 $127,596 QQQ_TRANSITION
|
||||
43 2010-11-09 BUY_GRADUAL QQQ 406 $ 46.90 $ 19,043 74 $17,003 $127,596 QQQ_TRANSITION
|
||||
44 2011-08-05 SELL_GRADUAL QQQ 589 $ 47.50 $ 27,980 16 $44,983 $129,044 FEAR_TRANSITION
|
||||
45 2011-08-08 SELL_GRADUAL QQQ 589 $ 44.65 $ 26,296 12 $71,279 $123,983 FEAR_TRANSITION
|
||||
46 2011-08-09 SELL_GRADUAL QQQ 589 $ 46.80 $ 27,564 21 $98,843 $126,526 FEAR_TRANSITION
|
||||
47 2011-08-10 SELL_GRADUAL QQQ 589 $ 44.88 $ 26,436 16 $125,280 $125,395 FEAR_TRANSITION
|
||||
48 2011-08-16 BUY_GRADUAL AMD 4944 $ 6.34 $ 31,345 28 $93,935 $125,400 GREED_TRANSITION
|
||||
49 2011-08-17 BUY_GRADUAL DXCM 11087 $ 2.83 $ 31,348 27 $62,586 $124,408 GREED_TRANSITION
|
||||
50 2011-08-18 BUY_GRADUAL ILMN 684 $ 45.82 $ 31,339 21 $31,247 $121,090 GREED_TRANSITION
|
||||
51 2011-09-29 STOP_LOSS AMD 4944 $ 5.31 $ 26,253 36 $57,500 $119,987 VOLATILE_STOCKS
|
||||
52 2011-09-29 BUY_QQQ_STOPLOSS QQQ 551 $ 47.64 $ 26,248 36 $31,252 $119,987 VOLATILE_STOCKS
|
||||
53 2011-10-07 STOP_LOSS ILMN 684 $ 26.44 $ 18,085 46 $49,337 $106,508 VOLATILE_STOCKS
|
||||
54 2011-10-07 BUY_QQQ_STOPLOSS QQQ 378 $ 47.80 $ 18,070 46 $31,267 $106,508 VOLATILE_STOCKS
|
||||
55 2011-10-25 STOP_LOSS NFLX 3 $ 11.05 $ 33 58 $31,300 $107,461 VOLATILE_STOCKS
|
||||
56 2011-11-03 STOP_LOSS DXCM 11087 $ 1.97 $ 21,814 63 $53,114 $100,849 VOLATILE_STOCKS
|
||||
57 2011-11-03 BUY_QQQ_STOPLOSS QQQ 424 $ 51.37 $ 21,780 63 $31,334 $100,849 VOLATILE_STOCKS
|
||||
58 2012-01-20 BUY_GRADUAL QQQ 147 $ 53.05 $ 7,798 76 $23,536 $103,125 QQQ_TRANSITION
|
||||
59 2012-01-23 BUY_GRADUAL QQQ 147 $ 53.06 $ 7,800 75 $15,735 $103,151 QQQ_TRANSITION
|
||||
60 2012-01-24 BUY_GRADUAL QQQ 147 $ 52.97 $ 7,786 74 $7,949 $102,990 QQQ_TRANSITION
|
||||
61 2012-01-25 BUY_GRADUAL QQQ 146 $ 53.63 $ 7,830 75 $119 $104,184 QQQ_TRANSITION
|
||||
62 2012-05-21 SELL_GRADUAL QQQ 485 $ 55.57 $ 26,953 34 $27,072 $107,948 FEAR_TRANSITION
|
||||
63 2012-05-22 SELL_GRADUAL QQQ 485 $ 55.51 $ 26,922 34 $53,994 $107,857 FEAR_TRANSITION
|
||||
64 2012-05-23 SELL_GRADUAL QQQ 485 $ 55.62 $ 26,974 33 $80,968 $107,961 FEAR_TRANSITION
|
||||
65 2012-05-24 SELL_GRADUAL QQQ 485 $ 55.25 $ 26,797 32 $107,766 $107,784 FEAR_TRANSITION
|
||||
66 2012-05-29 BUY_GRADUAL VRTX 466 $ 57.80 $ 26,935 39 $80,831 $107,783 GREED_TRANSITION
|
||||
67 2012-05-30 BUY_GRADUAL NXPI 1395 $ 19.31 $ 26,933 33 $53,898 $108,892 GREED_TRANSITION
|
||||
68 2012-05-31 BUY_GRADUAL REGN 199 $ 135.28 $ 26,920 34 $26,978 $108,301 GREED_TRANSITION
|
||||
69 2012-06-01 BUY_GRADUAL MNST 2291 $ 11.76 $ 26,935 27 $44 $103,625 GREED_TRANSITION
|
||||
70 2012-06-13 STOP_LOSS REGN 199 $ 111.57 $ 22,203 44 $22,246 $101,613 VOLATILE_STOCKS
|
||||
71 2012-06-13 BUY_QQQ_STOPLOSS QQQ 401 $ 55.23 $ 22,149 44 $97 $101,613 VOLATILE_STOCKS
|
||||
72 2012-07-24 STOP_LOSS VRTX 466 $ 48.37 $ 22,540 51 $22,638 $98,436 VOLATILE_STOCKS
|
||||
73 2012-07-24 BUY_QQQ_STOPLOSS QQQ 401 $ 56.10 $ 22,497 51 $141 $98,436 VOLATILE_STOCKS
|
||||
74 2012-08-10 STOP_LOSS MNST 2291 $ 9.05 $ 20,722 62 $20,863 $99,014 VOLATILE_STOCKS
|
||||
75 2012-08-10 BUY_QQQ_STOPLOSS QQQ 347 $ 59.58 $ 20,673 62 $190 $99,014 VOLATILE_STOCKS
|
||||
76 2013-01-24 SELL_GRADUAL NXPI 348 $ 26.46 $ 9,209 75 $9,399 $105,958 QQQ_TRANSITION
|
||||
77 2013-01-24 BUY_GRADUAL QQQ 154 $ 59.90 $ 9,224 75 $175 $105,958 QQQ_TRANSITION
|
||||
78 2013-01-25 SELL_GRADUAL NXPI 348 $ 26.98 $ 9,390 77 $9,565 $106,902 QQQ_TRANSITION
|
||||
79 2013-01-25 BUY_GRADUAL QQQ 154 $ 60.20 $ 9,272 77 $293 $106,902 QQQ_TRANSITION
|
||||
80 2013-01-28 SELL_GRADUAL NXPI 348 $ 27.35 $ 9,518 76 $9,811 $107,355 QQQ_TRANSITION
|
||||
81 2013-01-28 BUY_GRADUAL QQQ 153 $ 60.34 $ 9,232 76 $579 $107,355 QQQ_TRANSITION
|
||||
82 2013-01-29 SELL_GRADUAL NXPI 348 $ 26.46 $ 9,209 77 $9,788 $107,058 QQQ_TRANSITION
|
||||
83 2013-01-29 BUY_GRADUAL QQQ 153 $ 60.35 $ 9,233 77 $555 $107,058 QQQ_TRANSITION
|
||||
84 2015-08-25 SELL_GRADUAL QQQ 440 $ 90.96 $ 40,021 19 $40,576 $161,163 FEAR_TRANSITION
|
||||
85 2015-08-26 SELL_GRADUAL QQQ 440 $ 95.54 $ 42,037 30 $82,612 $167,235 FEAR_TRANSITION
|
||||
86 2015-08-27 SELL_GRADUAL QQQ 440 $ 97.96 $ 43,101 37 $125,714 $169,377 FEAR_TRANSITION
|
||||
87 2015-08-28 SELL_GRADUAL QQQ 440 $ 97.94 $ 43,093 37 $168,807 $169,370 FEAR_TRANSITION
|
||||
88 2015-09-01 BUY_GRADUAL NFLX 399 $ 105.79 $ 42,210 29 $126,597 $169,343 GREED_TRANSITION
|
||||
89 2015-09-02 BUY_GRADUAL NVDA 78306 $ 0.54 $ 42,267 34 $84,330 $169,220 GREED_TRANSITION
|
||||
90 2015-09-03 BUY_GRADUAL MU 2608 $ 16.20 $ 42,259 36 $42,071 $167,587 GREED_TRANSITION
|
||||
91 2015-09-28 STOP_LOSS MU 2608 $ 13.73 $ 35,814 29 $77,885 $162,450 VOLATILE_STOCKS
|
||||
92 2015-09-28 BUY_QQQ_STOPLOSS QQQ 385 $ 92.94 $ 35,784 29 $42,102 $162,450 VOLATILE_STOCKS
|
||||
93 2017-02-16 SELL_GRADUAL NFLX 99 $ 142.01 $ 14,059 74 $56,161 $353,212 QQQ_TRANSITION
|
||||
94 2017-02-16 SELL_GRADUAL NVDA 19576 $ 2.64 $ 51,711 74 $107,872 $353,212 QQQ_TRANSITION
|
||||
95 2017-02-16 BUY_GRADUAL QQQ 634 $ 121.85 $ 77,254 74 $30,618 $353,212 QQQ_TRANSITION
|
||||
96 2017-02-17 SELL_GRADUAL NFLX 99 $ 142.22 $ 14,080 74 $44,697 $353,786 QQQ_TRANSITION
|
||||
97 2017-02-17 SELL_GRADUAL NVDA 19576 $ 2.64 $ 51,701 74 $96,399 $353,786 QQQ_TRANSITION
|
||||
98 2017-02-17 BUY_GRADUAL QQQ 632 $ 122.38 $ 77,344 74 $19,055 $353,786 QQQ_TRANSITION
|
||||
99 2017-02-21 SELL_GRADUAL NFLX 99 $ 142.60 $ 14,117 76 $33,172 $358,565 QQQ_TRANSITION
|
||||
100 2017-02-21 SELL_GRADUAL NVDA 19576 $ 2.74 $ 53,553 76 $86,725 $358,565 QQQ_TRANSITION
|
||||
101 2017-02-21 BUY_GRADUAL QQQ 628 $ 122.98 $ 77,233 76 $9,492 $358,565 QQQ_TRANSITION
|
||||
102 2017-02-22 SELL_GRADUAL NFLX 99 $ 143.86 $ 14,242 75 $23,734 $358,720 QQQ_TRANSITION
|
||||
103 2017-02-22 SELL_GRADUAL NVDA 19576 $ 2.73 $ 53,471 75 $77,204 $358,720 QQQ_TRANSITION
|
||||
104 2018-12-18 SELL_GRADUAL QQQ 570 $ 151.55 $ 86,385 24 $163,590 $424,134 FEAR_TRANSITION
|
||||
105 2018-12-19 SELL_GRADUAL QQQ 570 $ 147.83 $ 84,264 23 $247,854 $417,734 FEAR_TRANSITION
|
||||
106 2018-12-20 SELL_GRADUAL QQQ 570 $ 145.69 $ 83,043 22 $330,897 $415,268 FEAR_TRANSITION
|
||||
107 2018-12-21 SELL_GRADUAL QQQ 570 $ 141.17 $ 80,469 20 $411,366 $412,636 FEAR_TRANSITION
|
||||
108 2018-12-27 BUY_GRADUAL ZS 2566 $ 40.17 $ 103,076 28 $308,289 $412,683 GREED_TRANSITION
|
||||
109 2018-12-28 BUY_GRADUAL AMD 5785 $ 17.82 $ 103,089 26 $205,201 $411,733 GREED_TRANSITION
|
||||
110 2018-12-31 BUY_GRADUAL MDB 1231 $ 83.74 $ 103,084 30 $102,117 $413,961 GREED_TRANSITION
|
||||
111 2019-04-24 SELL_GRADUAL ZS 641 $ 64.99 $ 41,659 75 $143,775 $601,726 QQQ_TRANSITION
|
||||
112 2019-04-24 SELL_GRADUAL AMD 1446 $ 28.46 $ 41,153 75 $184,928 $601,726 QQQ_TRANSITION
|
||||
113 2019-04-24 SELL_GRADUAL MDB 307 $ 135.16 $ 41,494 75 $226,423 $601,726 QQQ_TRANSITION
|
||||
114 2019-04-24 BUY_GRADUAL QQQ 825 $ 182.34 $ 150,428 75 $75,994 $601,726 QQQ_TRANSITION
|
||||
115 2019-04-25 SELL_GRADUAL ZS 641 $ 66.96 $ 42,921 74 $118,916 $604,944 QQQ_TRANSITION
|
||||
116 2019-04-25 SELL_GRADUAL AMD 1446 $ 27.66 $ 39,996 74 $158,912 $604,944 QQQ_TRANSITION
|
||||
117 2019-04-25 SELL_GRADUAL MDB 307 $ 137.66 $ 42,262 74 $201,174 $604,944 QQQ_TRANSITION
|
||||
118 2019-04-25 BUY_GRADUAL QQQ 822 $ 183.08 $ 150,490 74 $50,684 $604,944 QQQ_TRANSITION
|
||||
119 2019-04-26 SELL_GRADUAL ZS 641 $ 66.94 $ 42,909 74 $93,592 $606,662 QQQ_TRANSITION
|
||||
120 2019-04-26 SELL_GRADUAL AMD 1446 $ 27.88 $ 40,314 74 $133,907 $606,662 QQQ_TRANSITION
|
||||
121 2019-04-26 SELL_GRADUAL MDB 307 $ 138.98 $ 42,667 74 $176,574 $606,662 QQQ_TRANSITION
|
||||
122 2019-04-26 BUY_GRADUAL QQQ 821 $ 183.24 $ 150,441 74 $26,133 $606,662 QQQ_TRANSITION
|
||||
123 2019-04-29 SELL_GRADUAL ZS 641 $ 68.20 $ 43,716 74 $69,849 $607,606 QQQ_TRANSITION
|
||||
124 2019-04-29 SELL_GRADUAL AMD 1446 $ 27.69 $ 40,040 74 $109,889 $607,606 QQQ_TRANSITION
|
||||
125 2019-04-29 SELL_GRADUAL MDB 307 $ 137.50 $ 42,212 74 $152,101 $607,606 QQQ_TRANSITION
|
||||
126 2019-04-29 BUY_GRADUAL QQQ 820 $ 183.60 $ 150,549 74 $1,552 $607,606 QQQ_TRANSITION
|
||||
127 2020-02-28 SELL_GRADUAL QQQ 822 $ 199.07 $ 163,635 20 $165,188 $658,590 FEAR_TRANSITION
|
||||
128 2020-03-02 SELL_GRADUAL QQQ 822 $ 209.34 $ 172,080 37 $337,267 $684,012 FEAR_TRANSITION
|
||||
129 2020-03-03 SELL_GRADUAL QQQ 822 $ 202.63 $ 166,561 29 $503,829 $672,909 FEAR_TRANSITION
|
||||
130 2020-03-04 SELL_GRADUAL QQQ 822 $ 211.08 $ 173,511 38 $677,340 $679,956 FEAR_TRANSITION
|
||||
131 2020-03-06 BUY_GRADUAL MRNA 5736 $ 29.61 $ 169,843 25 $507,497 $679,826 GREED_TRANSITION
|
||||
132 2020-03-09 STOP_LOSS MRNA 5736 $ 24.29 $ 139,327 17 $646,824 $649,100 GREED_TRANSITION
|
||||
133 2020-03-09 BUY_QQQ_STOPLOSS QQQ 744 $ 187.24 $ 139,306 17 $507,518 $649,100 GREED_TRANSITION
|
||||
134 2020-03-09 BUY_GRADUAL TSLA 4190 $ 40.53 $ 169,835 17 $337,683 $649,100 GREED_TRANSITION
|
||||
135 2020-03-10 BUY_GRADUAL MRVL 7509 $ 22.62 $ 169,858 25 $167,825 $667,230 GREED_TRANSITION
|
||||
136 2020-03-12 STOP_LOSS MRVL 7509 $ 19.06 $ 143,146 17 $310,971 $597,219 VOLATILE_STOCKS
|
||||
137 2020-03-12 BUY_QQQ_STOPLOSS QQQ 834 $ 171.52 $ 143,049 17 $167,922 $597,219 VOLATILE_STOCKS
|
||||
138 2020-03-16 STOP_LOSS TSLA 4190 $ 29.67 $ 124,323 19 $292,245 $552,585 VOLATILE_STOCKS
|
||||
139 2020-03-16 BUY_QQQ_STOPLOSS QQQ 759 $ 163.76 $ 124,296 19 $167,949 $552,585 VOLATILE_STOCKS
|
||||
140 2020-06-03 BUY_GRADUAL QQQ 185 $ 229.44 $ 42,446 79 $125,503 $707,213 QQQ_TRANSITION
|
||||
141 2020-06-04 BUY_GRADUAL QQQ 187 $ 227.83 $ 42,604 79 $82,899 $703,082 QQQ_TRANSITION
|
||||
142 2020-06-05 BUY_GRADUAL QQQ 183 $ 232.35 $ 42,519 84 $40,380 $715,284 QQQ_TRANSITION
|
||||
143 2022-01-26 SELL_GRADUAL QQQ 723 $ 336.81 $ 243,517 24 $283,896 $1,018,473 FEAR_TRANSITION
|
||||
144 2022-01-27 SELL_GRADUAL QQQ 723 $ 333.42 $ 241,064 23 $524,961 $1,011,148 FEAR_TRANSITION
|
||||
145 2022-01-28 SELL_GRADUAL QQQ 723 $ 343.88 $ 248,626 32 $773,587 $1,026,391 FEAR_TRANSITION
|
||||
146 2022-01-31 SELL_GRADUAL QQQ 723 $ 354.88 $ 256,577 41 $1,030,164 $1,034,684 FEAR_TRANSITION
|
||||
147 2022-02-02 BUY_GRADUAL NFLX 601 $ 429.48 $ 258,117 47 $772,047 $1,034,708 GREED_TRANSITION
|
||||
148 2022-02-03 BUY_GRADUAL PDD 4689 $ 55.13 $ 258,505 43 $513,542 $1,020,143 GREED_TRANSITION
|
||||
149 2022-02-04 BUY_GRADUAL WBD 8945 $ 28.90 $ 258,510 46 $255,031 $1,026,385 GREED_TRANSITION
|
||||
150 2022-03-03 STOP_LOSS PDD 4689 $ 45.22 $ 212,037 39 $467,068 $948,795 VOLATILE_STOCKS
|
||||
151 2022-03-03 BUY_QQQ_STOPLOSS QQQ 633 $ 334.56 $ 211,774 39 $255,294 $948,795 VOLATILE_STOCKS
|
||||
152 2022-03-11 STOP_LOSS WBD 8945 $ 23.99 $ 214,591 31 $469,885 $878,854 VOLATILE_STOCKS
|
||||
153 2022-03-11 BUY_QQQ_STOPLOSS QQQ 676 $ 317.10 $ 214,358 31 $255,526 $878,854 VOLATILE_STOCKS
|
||||
154 2022-08-16 SELL_GRADUAL NFLX 151 $ 245.69 $ 37,099 76 $292,625 $833,290 QQQ_TRANSITION
|
||||
155 2022-08-16 BUY_GRADUAL QQQ 313 $ 325.83 $ 101,984 76 $190,641 $833,290 QQQ_TRANSITION
|
||||
156 2022-08-17 SELL_GRADUAL NFLX 151 $ 241.15 $ 36,414 72 $227,055 $825,132 QQQ_TRANSITION
|
||||
157 2022-08-17 BUY_GRADUAL QQQ 316 $ 322.11 $ 101,787 72 $125,268 $825,132 QQQ_TRANSITION
|
||||
158 2022-08-18 SELL_GRADUAL NFLX 151 $ 245.17 $ 37,021 73 $162,289 $827,836 QQQ_TRANSITION
|
||||
159 2022-08-18 BUY_GRADUAL QQQ 316 $ 322.89 $ 102,032 73 $60,257 $827,836 QQQ_TRANSITION
|
||||
160 2022-08-19 SELL_GRADUAL NFLX 151 $ 241.16 $ 36,415 68 $96,672 $812,946 QQQ_TRANSITION
|
||||
161 2022-09-26 SELL_GRADUAL QQQ 564 $ 269.53 $ 152,012 25 $248,684 $706,189 FEAR_TRANSITION
|
||||
162 2022-09-27 SELL_GRADUAL QQQ 564 $ 269.63 $ 152,073 26 $400,758 $706,398 FEAR_TRANSITION
|
||||
163 2022-09-28 SELL_GRADUAL QQQ 564 $ 275.00 $ 155,098 33 $555,856 $712,492 FEAR_TRANSITION
|
||||
164 2022-09-29 SELL_GRADUAL QQQ 564 $ 267.07 $ 150,627 29 $706,483 $707,973 FEAR_TRANSITION
|
||||
165 2022-10-03 BUY_GRADUAL BIIB 669 $ 264.30 $ 176,817 32 $529,667 $707,986 GREED_TRANSITION
|
||||
166 2022-10-04 BUY_GRADUAL REGN 239 $ 737.50 $ 176,263 42 $353,404 $710,159 GREED_TRANSITION
|
||||
167 2022-10-05 BUY_GRADUAL NFLX 747 $ 236.73 $ 176,837 42 $176,567 $707,777 GREED_TRANSITION
|
||||
168 2023-02-03 SELL_GRADUAL BIIB 167 $ 283.63 $ 47,366 72 $223,933 $827,955 QQQ_TRANSITION
|
||||
169 2023-02-03 SELL_GRADUAL REGN 59 $ 780.97 $ 46,077 72 $270,010 $827,955 QQQ_TRANSITION
|
||||
170 2023-02-03 SELL_GRADUAL NFLX 186 $ 365.90 $ 68,057 72 $338,067 $827,955 QQQ_TRANSITION
|
||||
171 2023-02-03 BUY_GRADUAL QQQ 683 $ 301.49 $ 205,920 72 $132,147 $827,955 QQQ_TRANSITION
|
||||
172 2023-02-06 SELL_GRADUAL BIIB 167 $ 288.28 $ 48,143 65 $180,290 $825,631 QQQ_TRANSITION
|
||||
173 2023-02-06 SELL_GRADUAL REGN 59 $ 778.71 $ 45,944 65 $226,234 $825,631 QQQ_TRANSITION
|
||||
174 2023-02-06 SELL_GRADUAL NFLX 186 $ 361.48 $ 67,235 65 $293,469 $825,631 QQQ_TRANSITION
|
||||
175 2023-02-06 BUY_GRADUAL QQQ 688 $ 298.94 $ 205,673 65 $87,796 $825,631 QQQ_TRANSITION
|
||||
176 2023-02-07 SELL_GRADUAL BIIB 167 $ 291.43 $ 48,669 70 $136,464 $834,461 QQQ_TRANSITION
|
||||
177 2023-02-07 SELL_GRADUAL REGN 59 $ 767.82 $ 45,301 70 $181,766 $834,461 QQQ_TRANSITION
|
||||
178 2023-02-07 SELL_GRADUAL NFLX 186 $ 362.95 $ 67,509 70 $249,274 $834,461 QQQ_TRANSITION
|
||||
179 2023-02-07 BUY_GRADUAL QQQ 674 $ 305.14 $ 205,663 70 $43,612 $834,461 QQQ_TRANSITION
|
||||
180 2023-02-08 SELL_GRADUAL BIIB 167 $ 285.45 $ 47,670 64 $91,282 $821,817 QQQ_TRANSITION
|
||||
181 2023-02-08 SELL_GRADUAL REGN 59 $ 747.59 $ 44,108 64 $135,390 $821,817 QQQ_TRANSITION
|
||||
182 2023-02-08 SELL_GRADUAL NFLX 186 $ 366.83 $ 68,230 64 $203,620 $821,817 QQQ_TRANSITION
|
||||
183 2023-11-09 STOP_LOSS BIIB 1 $ 224.65 $ 225 54 $203,845 $958,229 QQQ_HOLD
|
||||
184 2025-04-07 SELL_GRADUAL QQQ 511 $ 423.21 $ 216,263 24 $420,108 $1,075,227 FEAR_TRANSITION
|
||||
185 2025-04-08 SELL_GRADUAL QQQ 511 $ 415.59 $ 212,368 23 $632,476 $1,063,447 FEAR_TRANSITION
|
||||
186 2025-04-09 SELL_GRADUAL QQQ 511 $ 465.48 $ 237,859 39 $870,335 $1,115,043 FEAR_TRANSITION
|
||||
187 2025-04-10 SELL_GRADUAL QQQ 511 $ 445.68 $ 227,742 34 $1,098,077 $1,104,615 FEAR_TRANSITION
|
||||
188 2025-04-14 BUY_GRADUAL MCHP 7155 $ 38.58 $ 276,050 37 $822,027 $1,104,757 GREED_TRANSITION
|
||||
189 2025-04-15 BUY_GRADUAL WBD 33461 $ 8.25 $ 276,053 38 $545,974 $1,103,807 GREED_TRANSITION
|
||||
190 2025-04-16 STOP_LOSS WBD 33461 $ 7.92 $ 265,011 32 $810,985 $1,087,112 GREED_TRANSITION
|
||||
191 2025-04-16 BUY_QQQ_STOPLOSS QQQ 597 $ 443.68 $ 264,878 32 $546,107 $1,087,112 GREED_TRANSITION
|
||||
192 2025-04-16 BUY_GRADUAL AMD 3126 $ 88.29 $ 275,995 32 $270,112 $1,087,112 GREED_TRANSITION
|
||||
193 2025-05-20 SELL_GRADUAL AMD 781 $ 113.51 $ 88,651 76 $358,764 $1,374,923 QQQ_TRANSITION
|
||||
194 2025-05-20 SELL_GRADUAL MCHP 1788 $ 60.33 $ 107,876 76 $466,639 $1,374,923 QQQ_TRANSITION
|
||||
195 2025-05-20 BUY_GRADUAL QQQ 512 $ 519.69 $ 266,079 76 $200,560 $1,374,923 QQQ_TRANSITION
|
||||
196 2025-05-21 SELL_GRADUAL AMD 781 $ 112.06 $ 87,519 69 $288,079 $1,355,190 QQQ_TRANSITION
|
||||
197 2025-05-21 SELL_GRADUAL MCHP 1788 $ 58.79 $ 105,125 69 $393,204 $1,355,190 QQQ_TRANSITION
|
||||
198 2025-05-21 BUY_GRADUAL QQQ 520 $ 512.46 $ 266,481 69 $126,722 $1,355,190 QQQ_TRANSITION
|
||||
199 2025-05-22 SELL_GRADUAL AMD 781 $ 110.71 $ 86,465 67 $213,187 $1,351,925 QQQ_TRANSITION
|
||||
200 2025-05-22 SELL_GRADUAL MCHP 1788 $ 58.05 $ 103,793 67 $316,980 $1,351,925 QQQ_TRANSITION
|
||||
201 2025-05-22 BUY_GRADUAL QQQ 519 $ 513.42 $ 266,467 67 $50,514 $1,351,925 QQQ_TRANSITION
|
||||
202 2025-05-23 SELL_GRADUAL AMD 781 $ 110.31 $ 86,152 62 $136,666 $1,338,007 QQQ_TRANSITION
|
||||
203 2025-05-23 SELL_GRADUAL MCHP 1788 $ 56.19 $ 100,468 62 $237,133 $1,338,007 QQQ_TRANSITION
|
||||
220
backtest/reports/detailed_trades_20250718_192206.txt
Normal file
220
backtest/reports/detailed_trades_20250718_192206.txt
Normal file
@@ -0,0 +1,220 @@
|
||||
Enhanced Emotional Damage Strategy - Detailed Trades Report
|
||||
========================================================================================================================
|
||||
|
||||
📊 交易摘要:
|
||||
总交易数: 203
|
||||
交易时间: 2008-01-09 到 2025-05-23
|
||||
|
||||
交易类型统计:
|
||||
SELL_GRADUAL: 96
|
||||
BUY_GRADUAL: 67
|
||||
STOP_LOSS: 21
|
||||
BUY_QQQ_STOPLOSS: 19
|
||||
|
||||
📋 详细交易记录:
|
||||
======================================================================================================================================================
|
||||
No Date Action Ticker Shares Price Value F&G Cash Assets State
|
||||
======================================================================================================================================================
|
||||
1 2008-01-09 SELL_GRADUAL QQQ 609 $ 41.37 $ 25,193 26 $25,208 $100,829 FEAR_TRANSITION
|
||||
2 2008-01-10 SELL_GRADUAL QQQ 609 $ 41.43 $ 25,230 33 $50,438 $100,940 FEAR_TRANSITION
|
||||
3 2008-01-11 SELL_GRADUAL QQQ 609 $ 40.62 $ 24,736 28 $75,174 $99,951 FEAR_TRANSITION
|
||||
4 2008-01-14 SELL_GRADUAL QQQ 609 $ 41.33 $ 25,167 31 $100,341 $100,383 FEAR_TRANSITION
|
||||
5 2008-01-16 BUY_GRADUAL ILMN 745 $ 33.63 $ 25,057 27 $75,284 $100,381 GREED_TRANSITION
|
||||
6 2008-01-17 BUY_GRADUAL TMUS 852 $ 29.42 $ 25,063 20 $50,221 $99,964 GREED_TRANSITION
|
||||
7 2008-01-18 BUY_GRADUAL DXCM 11274 $ 2.22 $ 25,085 20 $25,137 $98,656 GREED_TRANSITION
|
||||
8 2008-01-22 BUY_GRADUAL SBUX 3549 $ 7.07 $ 25,085 19 $52 $97,152 GREED_TRANSITION
|
||||
9 2008-02-20 STOP_LOSS TMUS 852 $ 24.77 $ 21,101 54 $21,153 $94,385 VOLATILE_STOCKS
|
||||
10 2008-02-20 BUY_QQQ_STOPLOSS QQQ 556 $ 37.93 $ 21,090 54 $63 $94,385 VOLATILE_STOCKS
|
||||
11 2008-02-28 STOP_LOSS DXCM 11274 $ 1.88 $ 21,251 50 $21,314 $94,276 VOLATILE_STOCKS
|
||||
12 2008-02-28 BUY_QQQ_STOPLOSS QQQ 557 $ 38.09 $ 21,215 50 $99 $94,276 VOLATILE_STOCKS
|
||||
13 2008-04-25 STOP_LOSS SBUX 3549 $ 6.00 $ 21,310 69 $21,409 $95,418 VOLATILE_STOCKS
|
||||
14 2008-04-25 BUY_QQQ_STOPLOSS QQQ 523 $ 40.74 $ 21,305 69 $104 $95,418 VOLATILE_STOCKS
|
||||
15 2008-10-09 STOP_LOSS ILMN 745 $ 28.21 $ 21,017 9 $21,121 $65,760 VOLATILE_STOCKS
|
||||
16 2008-10-09 BUY_QQQ_STOPLOSS QQQ 770 $ 27.27 $ 20,997 9 $124 $65,760 VOLATILE_STOCKS
|
||||
17 2009-05-05 BUY_GRADUAL QQQ 1 $ 30.39 $ 30 76 $93 $73,275 QQQ_TRANSITION
|
||||
18 2009-05-06 BUY_GRADUAL QQQ 1 $ 30.40 $ 30 82 $63 $73,296 QQQ_TRANSITION
|
||||
19 2009-05-07 BUY_GRADUAL QQQ 1 $ 29.69 $ 30 78 $33 $71,582 QQQ_TRANSITION
|
||||
20 2009-05-08 BUY_GRADUAL QQQ 1 $ 29.71 $ 30 75 $3 $71,624 QQQ_TRANSITION
|
||||
21 2010-05-27 SELL_GRADUAL QQQ 602 $ 40.00 $ 24,082 34 $24,086 $96,453 FEAR_TRANSITION
|
||||
22 2010-05-28 SELL_GRADUAL QQQ 602 $ 39.77 $ 23,941 33 $48,026 $96,027 FEAR_TRANSITION
|
||||
23 2010-06-01 SELL_GRADUAL QQQ 602 $ 39.40 $ 23,720 27 $71,746 $95,585 FEAR_TRANSITION
|
||||
24 2010-06-02 SELL_GRADUAL QQQ 602 $ 40.34 $ 24,282 38 $96,028 $96,149 FEAR_TRANSITION
|
||||
25 2010-06-04 BUY_GRADUAL SIRI 2705 $ 8.87 $ 24,002 37 $72,026 $96,146 GREED_TRANSITION
|
||||
26 2010-06-07 BUY_GRADUAL NFLX 1539 $ 15.59 $ 24,000 35 $48,026 $95,899 GREED_TRANSITION
|
||||
27 2010-06-08 BUY_GRADUAL TMUS 1793 $ 13.38 $ 23,998 34 $24,028 $95,666 GREED_TRANSITION
|
||||
28 2010-06-09 STOP_LOSS TMUS 1793 $ 13.38 $ 23,998 33 $48,026 $97,032 GREED_TRANSITION
|
||||
29 2010-06-09 BUY_QQQ_STOPLOSS QQQ 627 $ 38.22 $ 23,961 33 $24,065 $97,032 GREED_TRANSITION
|
||||
30 2010-06-09 BUY_GRADUAL LULU 1227 $ 19.55 $ 23,988 33 $77 $97,032 GREED_TRANSITION
|
||||
31 2010-08-30 STOP_LOSS LULU 1227 $ 15.95 $ 19,571 31 $19,648 $94,278 VOLATILE_STOCKS
|
||||
32 2010-08-30 BUY_QQQ_STOPLOSS QQQ 512 $ 38.18 $ 19,548 31 $100 $94,278 VOLATILE_STOCKS
|
||||
33 2010-11-04 SELL_GRADUAL SIRI 676 $ 13.31 $ 8,998 80 $9,097 $126,785 QQQ_TRANSITION
|
||||
34 2010-11-04 SELL_GRADUAL NFLX 384 $ 23.97 $ 9,206 80 $18,303 $126,785 QQQ_TRANSITION
|
||||
35 2010-11-05 SELL_GRADUAL SIRI 676 $ 13.85 $ 9,365 80 $27,668 $127,933 QQQ_TRANSITION
|
||||
36 2010-11-05 SELL_GRADUAL NFLX 384 $ 24.01 $ 9,221 80 $36,890 $127,933 QQQ_TRANSITION
|
||||
37 2010-11-05 BUY_GRADUAL QQQ 404 $ 47.10 $ 19,027 80 $17,862 $127,933 QQQ_TRANSITION
|
||||
38 2010-11-08 SELL_GRADUAL SIRI 676 $ 14.03 $ 9,487 78 $27,349 $128,387 QQQ_TRANSITION
|
||||
39 2010-11-08 SELL_GRADUAL NFLX 384 $ 24.16 $ 9,278 78 $36,627 $128,387 QQQ_TRANSITION
|
||||
40 2010-11-08 BUY_GRADUAL QQQ 404 $ 47.16 $ 19,052 78 $17,575 $128,387 QQQ_TRANSITION
|
||||
41 2010-11-09 SELL_GRADUAL SIRI 676 $ 13.49 $ 9,120 74 $26,695 $127,596 QQQ_TRANSITION
|
||||
42 2010-11-09 SELL_GRADUAL NFLX 384 $ 24.35 $ 9,351 74 $36,046 $127,596 QQQ_TRANSITION
|
||||
43 2010-11-09 BUY_GRADUAL QQQ 406 $ 46.90 $ 19,043 74 $17,003 $127,596 QQQ_TRANSITION
|
||||
44 2011-08-05 SELL_GRADUAL QQQ 589 $ 47.50 $ 27,980 16 $44,983 $129,044 FEAR_TRANSITION
|
||||
45 2011-08-08 SELL_GRADUAL QQQ 589 $ 44.65 $ 26,296 12 $71,279 $123,983 FEAR_TRANSITION
|
||||
46 2011-08-09 SELL_GRADUAL QQQ 589 $ 46.80 $ 27,564 21 $98,843 $126,526 FEAR_TRANSITION
|
||||
47 2011-08-10 SELL_GRADUAL QQQ 589 $ 44.88 $ 26,436 16 $125,280 $125,395 FEAR_TRANSITION
|
||||
48 2011-08-16 BUY_GRADUAL AMD 4944 $ 6.34 $ 31,345 28 $93,935 $125,400 GREED_TRANSITION
|
||||
49 2011-08-17 BUY_GRADUAL DXCM 11087 $ 2.83 $ 31,348 27 $62,586 $124,408 GREED_TRANSITION
|
||||
50 2011-08-18 BUY_GRADUAL ILMN 684 $ 45.82 $ 31,339 21 $31,247 $121,090 GREED_TRANSITION
|
||||
51 2011-09-29 STOP_LOSS AMD 4944 $ 5.31 $ 26,253 36 $57,500 $119,987 VOLATILE_STOCKS
|
||||
52 2011-09-29 BUY_QQQ_STOPLOSS QQQ 551 $ 47.64 $ 26,248 36 $31,252 $119,987 VOLATILE_STOCKS
|
||||
53 2011-10-07 STOP_LOSS ILMN 684 $ 26.44 $ 18,085 46 $49,337 $106,508 VOLATILE_STOCKS
|
||||
54 2011-10-07 BUY_QQQ_STOPLOSS QQQ 378 $ 47.80 $ 18,070 46 $31,267 $106,508 VOLATILE_STOCKS
|
||||
55 2011-10-25 STOP_LOSS NFLX 3 $ 11.05 $ 33 58 $31,300 $107,461 VOLATILE_STOCKS
|
||||
56 2011-11-03 STOP_LOSS DXCM 11087 $ 1.97 $ 21,814 63 $53,114 $100,849 VOLATILE_STOCKS
|
||||
57 2011-11-03 BUY_QQQ_STOPLOSS QQQ 424 $ 51.37 $ 21,780 63 $31,334 $100,849 VOLATILE_STOCKS
|
||||
58 2012-01-20 BUY_GRADUAL QQQ 147 $ 53.05 $ 7,798 76 $23,536 $103,125 QQQ_TRANSITION
|
||||
59 2012-01-23 BUY_GRADUAL QQQ 147 $ 53.06 $ 7,800 75 $15,735 $103,151 QQQ_TRANSITION
|
||||
60 2012-01-24 BUY_GRADUAL QQQ 147 $ 52.97 $ 7,786 74 $7,949 $102,990 QQQ_TRANSITION
|
||||
61 2012-01-25 BUY_GRADUAL QQQ 146 $ 53.63 $ 7,830 75 $119 $104,184 QQQ_TRANSITION
|
||||
62 2012-05-21 SELL_GRADUAL QQQ 485 $ 55.57 $ 26,953 34 $27,072 $107,948 FEAR_TRANSITION
|
||||
63 2012-05-22 SELL_GRADUAL QQQ 485 $ 55.51 $ 26,922 34 $53,994 $107,857 FEAR_TRANSITION
|
||||
64 2012-05-23 SELL_GRADUAL QQQ 485 $ 55.62 $ 26,974 33 $80,968 $107,961 FEAR_TRANSITION
|
||||
65 2012-05-24 SELL_GRADUAL QQQ 485 $ 55.25 $ 26,797 32 $107,766 $107,784 FEAR_TRANSITION
|
||||
66 2012-05-29 BUY_GRADUAL VRTX 466 $ 57.80 $ 26,935 39 $80,831 $107,783 GREED_TRANSITION
|
||||
67 2012-05-30 BUY_GRADUAL NXPI 1395 $ 19.31 $ 26,933 33 $53,898 $108,892 GREED_TRANSITION
|
||||
68 2012-05-31 BUY_GRADUAL REGN 199 $ 135.28 $ 26,920 34 $26,978 $108,301 GREED_TRANSITION
|
||||
69 2012-06-01 BUY_GRADUAL MNST 2291 $ 11.76 $ 26,935 27 $44 $103,625 GREED_TRANSITION
|
||||
70 2012-06-13 STOP_LOSS REGN 199 $ 111.57 $ 22,203 44 $22,246 $101,613 VOLATILE_STOCKS
|
||||
71 2012-06-13 BUY_QQQ_STOPLOSS QQQ 401 $ 55.23 $ 22,149 44 $97 $101,613 VOLATILE_STOCKS
|
||||
72 2012-07-24 STOP_LOSS VRTX 466 $ 48.37 $ 22,540 51 $22,638 $98,436 VOLATILE_STOCKS
|
||||
73 2012-07-24 BUY_QQQ_STOPLOSS QQQ 401 $ 56.10 $ 22,497 51 $141 $98,436 VOLATILE_STOCKS
|
||||
74 2012-08-10 STOP_LOSS MNST 2291 $ 9.05 $ 20,722 62 $20,863 $99,014 VOLATILE_STOCKS
|
||||
75 2012-08-10 BUY_QQQ_STOPLOSS QQQ 347 $ 59.58 $ 20,673 62 $190 $99,014 VOLATILE_STOCKS
|
||||
76 2013-01-24 SELL_GRADUAL NXPI 348 $ 26.46 $ 9,209 75 $9,399 $105,958 QQQ_TRANSITION
|
||||
77 2013-01-24 BUY_GRADUAL QQQ 154 $ 59.90 $ 9,224 75 $175 $105,958 QQQ_TRANSITION
|
||||
78 2013-01-25 SELL_GRADUAL NXPI 348 $ 26.98 $ 9,390 77 $9,565 $106,902 QQQ_TRANSITION
|
||||
79 2013-01-25 BUY_GRADUAL QQQ 154 $ 60.20 $ 9,272 77 $293 $106,902 QQQ_TRANSITION
|
||||
80 2013-01-28 SELL_GRADUAL NXPI 348 $ 27.35 $ 9,518 76 $9,811 $107,355 QQQ_TRANSITION
|
||||
81 2013-01-28 BUY_GRADUAL QQQ 153 $ 60.34 $ 9,232 76 $579 $107,355 QQQ_TRANSITION
|
||||
82 2013-01-29 SELL_GRADUAL NXPI 348 $ 26.46 $ 9,209 77 $9,788 $107,058 QQQ_TRANSITION
|
||||
83 2013-01-29 BUY_GRADUAL QQQ 153 $ 60.35 $ 9,233 77 $555 $107,058 QQQ_TRANSITION
|
||||
84 2015-08-25 SELL_GRADUAL QQQ 440 $ 90.96 $ 40,021 19 $40,576 $161,163 FEAR_TRANSITION
|
||||
85 2015-08-26 SELL_GRADUAL QQQ 440 $ 95.54 $ 42,037 30 $82,612 $167,235 FEAR_TRANSITION
|
||||
86 2015-08-27 SELL_GRADUAL QQQ 440 $ 97.96 $ 43,101 37 $125,714 $169,377 FEAR_TRANSITION
|
||||
87 2015-08-28 SELL_GRADUAL QQQ 440 $ 97.94 $ 43,093 37 $168,807 $169,370 FEAR_TRANSITION
|
||||
88 2015-09-01 BUY_GRADUAL NFLX 399 $ 105.79 $ 42,210 29 $126,597 $169,343 GREED_TRANSITION
|
||||
89 2015-09-02 BUY_GRADUAL NVDA 78306 $ 0.54 $ 42,267 34 $84,330 $169,220 GREED_TRANSITION
|
||||
90 2015-09-03 BUY_GRADUAL MU 2608 $ 16.20 $ 42,259 36 $42,071 $167,587 GREED_TRANSITION
|
||||
91 2015-09-28 STOP_LOSS MU 2608 $ 13.73 $ 35,814 29 $77,885 $162,450 VOLATILE_STOCKS
|
||||
92 2015-09-28 BUY_QQQ_STOPLOSS QQQ 385 $ 92.94 $ 35,784 29 $42,102 $162,450 VOLATILE_STOCKS
|
||||
93 2017-02-16 SELL_GRADUAL NFLX 99 $ 142.01 $ 14,059 74 $56,161 $353,212 QQQ_TRANSITION
|
||||
94 2017-02-16 SELL_GRADUAL NVDA 19576 $ 2.64 $ 51,711 74 $107,872 $353,212 QQQ_TRANSITION
|
||||
95 2017-02-16 BUY_GRADUAL QQQ 634 $ 121.85 $ 77,254 74 $30,618 $353,212 QQQ_TRANSITION
|
||||
96 2017-02-17 SELL_GRADUAL NFLX 99 $ 142.22 $ 14,080 74 $44,697 $353,786 QQQ_TRANSITION
|
||||
97 2017-02-17 SELL_GRADUAL NVDA 19576 $ 2.64 $ 51,701 74 $96,399 $353,786 QQQ_TRANSITION
|
||||
98 2017-02-17 BUY_GRADUAL QQQ 632 $ 122.38 $ 77,344 74 $19,055 $353,786 QQQ_TRANSITION
|
||||
99 2017-02-21 SELL_GRADUAL NFLX 99 $ 142.60 $ 14,117 76 $33,172 $358,565 QQQ_TRANSITION
|
||||
100 2017-02-21 SELL_GRADUAL NVDA 19576 $ 2.74 $ 53,553 76 $86,725 $358,565 QQQ_TRANSITION
|
||||
101 2017-02-21 BUY_GRADUAL QQQ 628 $ 122.98 $ 77,233 76 $9,492 $358,565 QQQ_TRANSITION
|
||||
102 2017-02-22 SELL_GRADUAL NFLX 99 $ 143.86 $ 14,242 75 $23,734 $358,720 QQQ_TRANSITION
|
||||
103 2017-02-22 SELL_GRADUAL NVDA 19576 $ 2.73 $ 53,471 75 $77,204 $358,720 QQQ_TRANSITION
|
||||
104 2018-12-18 SELL_GRADUAL QQQ 570 $ 151.55 $ 86,385 24 $163,590 $424,134 FEAR_TRANSITION
|
||||
105 2018-12-19 SELL_GRADUAL QQQ 570 $ 147.83 $ 84,264 23 $247,854 $417,734 FEAR_TRANSITION
|
||||
106 2018-12-20 SELL_GRADUAL QQQ 570 $ 145.69 $ 83,043 22 $330,897 $415,268 FEAR_TRANSITION
|
||||
107 2018-12-21 SELL_GRADUAL QQQ 570 $ 141.17 $ 80,469 20 $411,366 $412,636 FEAR_TRANSITION
|
||||
108 2018-12-27 BUY_GRADUAL ZS 2566 $ 40.17 $ 103,076 28 $308,289 $412,683 GREED_TRANSITION
|
||||
109 2018-12-28 BUY_GRADUAL AMD 5785 $ 17.82 $ 103,089 26 $205,201 $411,733 GREED_TRANSITION
|
||||
110 2018-12-31 BUY_GRADUAL MDB 1231 $ 83.74 $ 103,084 30 $102,117 $413,961 GREED_TRANSITION
|
||||
111 2019-04-24 SELL_GRADUAL ZS 641 $ 64.99 $ 41,659 75 $143,775 $601,726 QQQ_TRANSITION
|
||||
112 2019-04-24 SELL_GRADUAL AMD 1446 $ 28.46 $ 41,153 75 $184,928 $601,726 QQQ_TRANSITION
|
||||
113 2019-04-24 SELL_GRADUAL MDB 307 $ 135.16 $ 41,494 75 $226,423 $601,726 QQQ_TRANSITION
|
||||
114 2019-04-24 BUY_GRADUAL QQQ 825 $ 182.34 $ 150,428 75 $75,994 $601,726 QQQ_TRANSITION
|
||||
115 2019-04-25 SELL_GRADUAL ZS 641 $ 66.96 $ 42,921 74 $118,916 $604,944 QQQ_TRANSITION
|
||||
116 2019-04-25 SELL_GRADUAL AMD 1446 $ 27.66 $ 39,996 74 $158,912 $604,944 QQQ_TRANSITION
|
||||
117 2019-04-25 SELL_GRADUAL MDB 307 $ 137.66 $ 42,262 74 $201,174 $604,944 QQQ_TRANSITION
|
||||
118 2019-04-25 BUY_GRADUAL QQQ 822 $ 183.08 $ 150,490 74 $50,684 $604,944 QQQ_TRANSITION
|
||||
119 2019-04-26 SELL_GRADUAL ZS 641 $ 66.94 $ 42,909 74 $93,592 $606,662 QQQ_TRANSITION
|
||||
120 2019-04-26 SELL_GRADUAL AMD 1446 $ 27.88 $ 40,314 74 $133,907 $606,662 QQQ_TRANSITION
|
||||
121 2019-04-26 SELL_GRADUAL MDB 307 $ 138.98 $ 42,667 74 $176,574 $606,662 QQQ_TRANSITION
|
||||
122 2019-04-26 BUY_GRADUAL QQQ 821 $ 183.24 $ 150,441 74 $26,133 $606,662 QQQ_TRANSITION
|
||||
123 2019-04-29 SELL_GRADUAL ZS 641 $ 68.20 $ 43,716 74 $69,849 $607,606 QQQ_TRANSITION
|
||||
124 2019-04-29 SELL_GRADUAL AMD 1446 $ 27.69 $ 40,040 74 $109,889 $607,606 QQQ_TRANSITION
|
||||
125 2019-04-29 SELL_GRADUAL MDB 307 $ 137.50 $ 42,212 74 $152,101 $607,606 QQQ_TRANSITION
|
||||
126 2019-04-29 BUY_GRADUAL QQQ 820 $ 183.60 $ 150,549 74 $1,552 $607,606 QQQ_TRANSITION
|
||||
127 2020-02-28 SELL_GRADUAL QQQ 822 $ 199.07 $ 163,635 20 $165,188 $658,590 FEAR_TRANSITION
|
||||
128 2020-03-02 SELL_GRADUAL QQQ 822 $ 209.34 $ 172,080 37 $337,267 $684,012 FEAR_TRANSITION
|
||||
129 2020-03-03 SELL_GRADUAL QQQ 822 $ 202.63 $ 166,561 29 $503,829 $672,909 FEAR_TRANSITION
|
||||
130 2020-03-04 SELL_GRADUAL QQQ 822 $ 211.08 $ 173,511 38 $677,340 $679,956 FEAR_TRANSITION
|
||||
131 2020-03-06 BUY_GRADUAL MRNA 5736 $ 29.61 $ 169,843 25 $507,497 $679,826 GREED_TRANSITION
|
||||
132 2020-03-09 STOP_LOSS MRNA 5736 $ 24.29 $ 139,327 17 $646,824 $649,100 GREED_TRANSITION
|
||||
133 2020-03-09 BUY_QQQ_STOPLOSS QQQ 744 $ 187.24 $ 139,306 17 $507,518 $649,100 GREED_TRANSITION
|
||||
134 2020-03-09 BUY_GRADUAL TSLA 4190 $ 40.53 $ 169,835 17 $337,683 $649,100 GREED_TRANSITION
|
||||
135 2020-03-10 BUY_GRADUAL MRVL 7509 $ 22.62 $ 169,858 25 $167,825 $667,230 GREED_TRANSITION
|
||||
136 2020-03-12 STOP_LOSS MRVL 7509 $ 19.06 $ 143,146 17 $310,971 $597,219 VOLATILE_STOCKS
|
||||
137 2020-03-12 BUY_QQQ_STOPLOSS QQQ 834 $ 171.52 $ 143,049 17 $167,922 $597,219 VOLATILE_STOCKS
|
||||
138 2020-03-16 STOP_LOSS TSLA 4190 $ 29.67 $ 124,323 19 $292,245 $552,585 VOLATILE_STOCKS
|
||||
139 2020-03-16 BUY_QQQ_STOPLOSS QQQ 759 $ 163.76 $ 124,296 19 $167,949 $552,585 VOLATILE_STOCKS
|
||||
140 2020-06-03 BUY_GRADUAL QQQ 185 $ 229.44 $ 42,446 79 $125,503 $707,213 QQQ_TRANSITION
|
||||
141 2020-06-04 BUY_GRADUAL QQQ 187 $ 227.83 $ 42,604 79 $82,899 $703,082 QQQ_TRANSITION
|
||||
142 2020-06-05 BUY_GRADUAL QQQ 183 $ 232.35 $ 42,519 84 $40,380 $715,284 QQQ_TRANSITION
|
||||
143 2022-01-26 SELL_GRADUAL QQQ 723 $ 336.81 $ 243,517 24 $283,896 $1,018,473 FEAR_TRANSITION
|
||||
144 2022-01-27 SELL_GRADUAL QQQ 723 $ 333.42 $ 241,064 23 $524,961 $1,011,148 FEAR_TRANSITION
|
||||
145 2022-01-28 SELL_GRADUAL QQQ 723 $ 343.88 $ 248,626 32 $773,587 $1,026,391 FEAR_TRANSITION
|
||||
146 2022-01-31 SELL_GRADUAL QQQ 723 $ 354.88 $ 256,577 41 $1,030,164 $1,034,684 FEAR_TRANSITION
|
||||
147 2022-02-02 BUY_GRADUAL NFLX 601 $ 429.48 $ 258,117 47 $772,047 $1,034,708 GREED_TRANSITION
|
||||
148 2022-02-03 BUY_GRADUAL PDD 4689 $ 55.13 $ 258,505 43 $513,542 $1,020,143 GREED_TRANSITION
|
||||
149 2022-02-04 BUY_GRADUAL WBD 8945 $ 28.90 $ 258,510 46 $255,031 $1,026,385 GREED_TRANSITION
|
||||
150 2022-03-03 STOP_LOSS PDD 4689 $ 45.22 $ 212,037 39 $467,068 $948,795 VOLATILE_STOCKS
|
||||
151 2022-03-03 BUY_QQQ_STOPLOSS QQQ 633 $ 334.56 $ 211,774 39 $255,294 $948,795 VOLATILE_STOCKS
|
||||
152 2022-03-11 STOP_LOSS WBD 8945 $ 23.99 $ 214,591 31 $469,885 $878,854 VOLATILE_STOCKS
|
||||
153 2022-03-11 BUY_QQQ_STOPLOSS QQQ 676 $ 317.10 $ 214,358 31 $255,526 $878,854 VOLATILE_STOCKS
|
||||
154 2022-08-16 SELL_GRADUAL NFLX 151 $ 245.69 $ 37,099 76 $292,625 $833,290 QQQ_TRANSITION
|
||||
155 2022-08-16 BUY_GRADUAL QQQ 313 $ 325.83 $ 101,984 76 $190,641 $833,290 QQQ_TRANSITION
|
||||
156 2022-08-17 SELL_GRADUAL NFLX 151 $ 241.15 $ 36,414 72 $227,055 $825,132 QQQ_TRANSITION
|
||||
157 2022-08-17 BUY_GRADUAL QQQ 316 $ 322.11 $ 101,787 72 $125,268 $825,132 QQQ_TRANSITION
|
||||
158 2022-08-18 SELL_GRADUAL NFLX 151 $ 245.17 $ 37,021 73 $162,289 $827,836 QQQ_TRANSITION
|
||||
159 2022-08-18 BUY_GRADUAL QQQ 316 $ 322.89 $ 102,032 73 $60,257 $827,836 QQQ_TRANSITION
|
||||
160 2022-08-19 SELL_GRADUAL NFLX 151 $ 241.16 $ 36,415 68 $96,672 $812,946 QQQ_TRANSITION
|
||||
161 2022-09-26 SELL_GRADUAL QQQ 564 $ 269.53 $ 152,012 25 $248,684 $706,189 FEAR_TRANSITION
|
||||
162 2022-09-27 SELL_GRADUAL QQQ 564 $ 269.63 $ 152,073 26 $400,758 $706,398 FEAR_TRANSITION
|
||||
163 2022-09-28 SELL_GRADUAL QQQ 564 $ 275.00 $ 155,098 33 $555,856 $712,492 FEAR_TRANSITION
|
||||
164 2022-09-29 SELL_GRADUAL QQQ 564 $ 267.07 $ 150,627 29 $706,483 $707,973 FEAR_TRANSITION
|
||||
165 2022-10-03 BUY_GRADUAL BIIB 669 $ 264.30 $ 176,817 32 $529,667 $707,986 GREED_TRANSITION
|
||||
166 2022-10-04 BUY_GRADUAL REGN 239 $ 737.50 $ 176,263 42 $353,404 $710,159 GREED_TRANSITION
|
||||
167 2022-10-05 BUY_GRADUAL NFLX 747 $ 236.73 $ 176,837 42 $176,567 $707,777 GREED_TRANSITION
|
||||
168 2023-02-03 SELL_GRADUAL BIIB 167 $ 283.63 $ 47,366 72 $223,933 $827,955 QQQ_TRANSITION
|
||||
169 2023-02-03 SELL_GRADUAL REGN 59 $ 780.97 $ 46,077 72 $270,010 $827,955 QQQ_TRANSITION
|
||||
170 2023-02-03 SELL_GRADUAL NFLX 186 $ 365.90 $ 68,057 72 $338,067 $827,955 QQQ_TRANSITION
|
||||
171 2023-02-03 BUY_GRADUAL QQQ 683 $ 301.49 $ 205,920 72 $132,147 $827,955 QQQ_TRANSITION
|
||||
172 2023-02-06 SELL_GRADUAL BIIB 167 $ 288.28 $ 48,143 65 $180,290 $825,631 QQQ_TRANSITION
|
||||
173 2023-02-06 SELL_GRADUAL REGN 59 $ 778.71 $ 45,944 65 $226,234 $825,631 QQQ_TRANSITION
|
||||
174 2023-02-06 SELL_GRADUAL NFLX 186 $ 361.48 $ 67,235 65 $293,469 $825,631 QQQ_TRANSITION
|
||||
175 2023-02-06 BUY_GRADUAL QQQ 688 $ 298.94 $ 205,673 65 $87,796 $825,631 QQQ_TRANSITION
|
||||
176 2023-02-07 SELL_GRADUAL BIIB 167 $ 291.43 $ 48,669 70 $136,464 $834,461 QQQ_TRANSITION
|
||||
177 2023-02-07 SELL_GRADUAL REGN 59 $ 767.82 $ 45,301 70 $181,766 $834,461 QQQ_TRANSITION
|
||||
178 2023-02-07 SELL_GRADUAL NFLX 186 $ 362.95 $ 67,509 70 $249,274 $834,461 QQQ_TRANSITION
|
||||
179 2023-02-07 BUY_GRADUAL QQQ 674 $ 305.14 $ 205,663 70 $43,612 $834,461 QQQ_TRANSITION
|
||||
180 2023-02-08 SELL_GRADUAL BIIB 167 $ 285.45 $ 47,670 64 $91,282 $821,817 QQQ_TRANSITION
|
||||
181 2023-02-08 SELL_GRADUAL REGN 59 $ 747.59 $ 44,108 64 $135,390 $821,817 QQQ_TRANSITION
|
||||
182 2023-02-08 SELL_GRADUAL NFLX 186 $ 366.83 $ 68,230 64 $203,620 $821,817 QQQ_TRANSITION
|
||||
183 2023-11-09 STOP_LOSS BIIB 1 $ 224.65 $ 225 54 $203,845 $958,229 QQQ_HOLD
|
||||
184 2025-04-07 SELL_GRADUAL QQQ 511 $ 423.21 $ 216,263 24 $420,108 $1,075,227 FEAR_TRANSITION
|
||||
185 2025-04-08 SELL_GRADUAL QQQ 511 $ 415.59 $ 212,368 23 $632,476 $1,063,447 FEAR_TRANSITION
|
||||
186 2025-04-09 SELL_GRADUAL QQQ 511 $ 465.48 $ 237,859 39 $870,335 $1,115,043 FEAR_TRANSITION
|
||||
187 2025-04-10 SELL_GRADUAL QQQ 511 $ 445.68 $ 227,742 34 $1,098,077 $1,104,615 FEAR_TRANSITION
|
||||
188 2025-04-14 BUY_GRADUAL MCHP 7155 $ 38.58 $ 276,050 37 $822,027 $1,104,757 GREED_TRANSITION
|
||||
189 2025-04-15 BUY_GRADUAL WBD 33461 $ 8.25 $ 276,053 38 $545,974 $1,103,807 GREED_TRANSITION
|
||||
190 2025-04-16 STOP_LOSS WBD 33461 $ 7.92 $ 265,011 32 $810,985 $1,087,112 GREED_TRANSITION
|
||||
191 2025-04-16 BUY_QQQ_STOPLOSS QQQ 597 $ 443.68 $ 264,878 32 $546,107 $1,087,112 GREED_TRANSITION
|
||||
192 2025-04-16 BUY_GRADUAL AMD 3126 $ 88.29 $ 275,995 32 $270,112 $1,087,112 GREED_TRANSITION
|
||||
193 2025-05-20 SELL_GRADUAL AMD 781 $ 113.51 $ 88,651 76 $358,764 $1,374,923 QQQ_TRANSITION
|
||||
194 2025-05-20 SELL_GRADUAL MCHP 1788 $ 60.33 $ 107,876 76 $466,639 $1,374,923 QQQ_TRANSITION
|
||||
195 2025-05-20 BUY_GRADUAL QQQ 512 $ 519.69 $ 266,079 76 $200,560 $1,374,923 QQQ_TRANSITION
|
||||
196 2025-05-21 SELL_GRADUAL AMD 781 $ 112.06 $ 87,519 69 $288,079 $1,355,190 QQQ_TRANSITION
|
||||
197 2025-05-21 SELL_GRADUAL MCHP 1788 $ 58.79 $ 105,125 69 $393,204 $1,355,190 QQQ_TRANSITION
|
||||
198 2025-05-21 BUY_GRADUAL QQQ 520 $ 512.46 $ 266,481 69 $126,722 $1,355,190 QQQ_TRANSITION
|
||||
199 2025-05-22 SELL_GRADUAL AMD 781 $ 110.71 $ 86,465 67 $213,187 $1,351,925 QQQ_TRANSITION
|
||||
200 2025-05-22 SELL_GRADUAL MCHP 1788 $ 58.05 $ 103,793 67 $316,980 $1,351,925 QQQ_TRANSITION
|
||||
201 2025-05-22 BUY_GRADUAL QQQ 519 $ 513.42 $ 266,467 67 $50,514 $1,351,925 QQQ_TRANSITION
|
||||
202 2025-05-23 SELL_GRADUAL AMD 781 $ 110.31 $ 86,152 62 $136,666 $1,338,007 QQQ_TRANSITION
|
||||
203 2025-05-23 SELL_GRADUAL MCHP 1788 $ 56.19 $ 100,468 62 $237,133 $1,338,007 QQQ_TRANSITION
|
||||
220
backtest/reports/detailed_trades_20250718_204803.txt
Normal file
220
backtest/reports/detailed_trades_20250718_204803.txt
Normal file
@@ -0,0 +1,220 @@
|
||||
Enhanced Emotional Damage Strategy - Detailed Trades Report
|
||||
========================================================================================================================
|
||||
|
||||
📊 交易摘要:
|
||||
总交易数: 203
|
||||
交易时间: 2008-01-09 到 2025-05-23
|
||||
|
||||
交易类型统计:
|
||||
SELL_GRADUAL: 96
|
||||
BUY_GRADUAL: 67
|
||||
STOP_LOSS: 21
|
||||
BUY_QQQ_STOPLOSS: 19
|
||||
|
||||
📋 详细交易记录:
|
||||
======================================================================================================================================================
|
||||
No Date Action Ticker Shares Price Value F&G Cash Assets State
|
||||
======================================================================================================================================================
|
||||
1 2008-01-09 SELL_GRADUAL QQQ 609 $ 41.37 $ 25,193 26 $25,208 $100,829 FEAR_TRANSITION
|
||||
2 2008-01-10 SELL_GRADUAL QQQ 609 $ 41.43 $ 25,230 33 $50,438 $100,940 FEAR_TRANSITION
|
||||
3 2008-01-11 SELL_GRADUAL QQQ 609 $ 40.62 $ 24,736 28 $75,174 $99,951 FEAR_TRANSITION
|
||||
4 2008-01-14 SELL_GRADUAL QQQ 609 $ 41.33 $ 25,167 31 $100,341 $100,383 FEAR_TRANSITION
|
||||
5 2008-01-16 BUY_GRADUAL ILMN 745 $ 33.63 $ 25,057 27 $75,284 $100,381 GREED_TRANSITION
|
||||
6 2008-01-17 BUY_GRADUAL TMUS 852 $ 29.42 $ 25,063 20 $50,221 $99,964 GREED_TRANSITION
|
||||
7 2008-01-18 BUY_GRADUAL DXCM 11274 $ 2.22 $ 25,085 20 $25,137 $98,656 GREED_TRANSITION
|
||||
8 2008-01-22 BUY_GRADUAL SBUX 3549 $ 7.07 $ 25,085 19 $52 $97,152 GREED_TRANSITION
|
||||
9 2008-02-20 STOP_LOSS TMUS 852 $ 24.77 $ 21,101 54 $21,153 $94,385 VOLATILE_STOCKS
|
||||
10 2008-02-20 BUY_QQQ_STOPLOSS QQQ 556 $ 37.93 $ 21,090 54 $63 $94,385 VOLATILE_STOCKS
|
||||
11 2008-02-28 STOP_LOSS DXCM 11274 $ 1.88 $ 21,251 50 $21,314 $94,276 VOLATILE_STOCKS
|
||||
12 2008-02-28 BUY_QQQ_STOPLOSS QQQ 557 $ 38.09 $ 21,215 50 $99 $94,276 VOLATILE_STOCKS
|
||||
13 2008-04-25 STOP_LOSS SBUX 3549 $ 6.00 $ 21,310 69 $21,409 $95,418 VOLATILE_STOCKS
|
||||
14 2008-04-25 BUY_QQQ_STOPLOSS QQQ 523 $ 40.74 $ 21,305 69 $104 $95,418 VOLATILE_STOCKS
|
||||
15 2008-10-09 STOP_LOSS ILMN 745 $ 28.21 $ 21,017 9 $21,121 $65,760 VOLATILE_STOCKS
|
||||
16 2008-10-09 BUY_QQQ_STOPLOSS QQQ 770 $ 27.27 $ 20,997 9 $124 $65,760 VOLATILE_STOCKS
|
||||
17 2009-05-05 BUY_GRADUAL QQQ 1 $ 30.39 $ 30 76 $93 $73,275 QQQ_TRANSITION
|
||||
18 2009-05-06 BUY_GRADUAL QQQ 1 $ 30.40 $ 30 82 $63 $73,296 QQQ_TRANSITION
|
||||
19 2009-05-07 BUY_GRADUAL QQQ 1 $ 29.69 $ 30 78 $33 $71,582 QQQ_TRANSITION
|
||||
20 2009-05-08 BUY_GRADUAL QQQ 1 $ 29.71 $ 30 75 $3 $71,624 QQQ_TRANSITION
|
||||
21 2010-05-27 SELL_GRADUAL QQQ 602 $ 40.00 $ 24,082 34 $24,086 $96,453 FEAR_TRANSITION
|
||||
22 2010-05-28 SELL_GRADUAL QQQ 602 $ 39.77 $ 23,941 33 $48,026 $96,027 FEAR_TRANSITION
|
||||
23 2010-06-01 SELL_GRADUAL QQQ 602 $ 39.40 $ 23,720 27 $71,746 $95,585 FEAR_TRANSITION
|
||||
24 2010-06-02 SELL_GRADUAL QQQ 602 $ 40.34 $ 24,282 38 $96,028 $96,149 FEAR_TRANSITION
|
||||
25 2010-06-04 BUY_GRADUAL SIRI 2705 $ 8.87 $ 24,002 37 $72,026 $96,146 GREED_TRANSITION
|
||||
26 2010-06-07 BUY_GRADUAL NFLX 1539 $ 15.59 $ 24,000 35 $48,026 $95,899 GREED_TRANSITION
|
||||
27 2010-06-08 BUY_GRADUAL TMUS 1793 $ 13.38 $ 23,998 34 $24,028 $95,666 GREED_TRANSITION
|
||||
28 2010-06-09 STOP_LOSS TMUS 1793 $ 13.38 $ 23,998 33 $48,026 $97,032 GREED_TRANSITION
|
||||
29 2010-06-09 BUY_QQQ_STOPLOSS QQQ 627 $ 38.22 $ 23,961 33 $24,065 $97,032 GREED_TRANSITION
|
||||
30 2010-06-09 BUY_GRADUAL LULU 1227 $ 19.55 $ 23,988 33 $77 $97,032 GREED_TRANSITION
|
||||
31 2010-08-30 STOP_LOSS LULU 1227 $ 15.95 $ 19,571 31 $19,648 $94,278 VOLATILE_STOCKS
|
||||
32 2010-08-30 BUY_QQQ_STOPLOSS QQQ 512 $ 38.18 $ 19,548 31 $100 $94,278 VOLATILE_STOCKS
|
||||
33 2010-11-04 SELL_GRADUAL SIRI 676 $ 13.31 $ 8,998 80 $9,097 $126,785 QQQ_TRANSITION
|
||||
34 2010-11-04 SELL_GRADUAL NFLX 384 $ 23.97 $ 9,206 80 $18,303 $126,785 QQQ_TRANSITION
|
||||
35 2010-11-05 SELL_GRADUAL SIRI 676 $ 13.85 $ 9,365 80 $27,668 $127,933 QQQ_TRANSITION
|
||||
36 2010-11-05 SELL_GRADUAL NFLX 384 $ 24.01 $ 9,221 80 $36,890 $127,933 QQQ_TRANSITION
|
||||
37 2010-11-05 BUY_GRADUAL QQQ 404 $ 47.10 $ 19,027 80 $17,862 $127,933 QQQ_TRANSITION
|
||||
38 2010-11-08 SELL_GRADUAL SIRI 676 $ 14.03 $ 9,487 78 $27,349 $128,387 QQQ_TRANSITION
|
||||
39 2010-11-08 SELL_GRADUAL NFLX 384 $ 24.16 $ 9,278 78 $36,627 $128,387 QQQ_TRANSITION
|
||||
40 2010-11-08 BUY_GRADUAL QQQ 404 $ 47.16 $ 19,052 78 $17,575 $128,387 QQQ_TRANSITION
|
||||
41 2010-11-09 SELL_GRADUAL SIRI 676 $ 13.49 $ 9,120 74 $26,695 $127,596 QQQ_TRANSITION
|
||||
42 2010-11-09 SELL_GRADUAL NFLX 384 $ 24.35 $ 9,351 74 $36,046 $127,596 QQQ_TRANSITION
|
||||
43 2010-11-09 BUY_GRADUAL QQQ 406 $ 46.90 $ 19,043 74 $17,003 $127,596 QQQ_TRANSITION
|
||||
44 2011-08-05 SELL_GRADUAL QQQ 589 $ 47.50 $ 27,980 16 $44,983 $129,044 FEAR_TRANSITION
|
||||
45 2011-08-08 SELL_GRADUAL QQQ 589 $ 44.65 $ 26,296 12 $71,279 $123,983 FEAR_TRANSITION
|
||||
46 2011-08-09 SELL_GRADUAL QQQ 589 $ 46.80 $ 27,564 21 $98,843 $126,526 FEAR_TRANSITION
|
||||
47 2011-08-10 SELL_GRADUAL QQQ 589 $ 44.88 $ 26,436 16 $125,280 $125,395 FEAR_TRANSITION
|
||||
48 2011-08-16 BUY_GRADUAL AMD 4944 $ 6.34 $ 31,345 28 $93,935 $125,400 GREED_TRANSITION
|
||||
49 2011-08-17 BUY_GRADUAL DXCM 11087 $ 2.83 $ 31,348 27 $62,586 $124,408 GREED_TRANSITION
|
||||
50 2011-08-18 BUY_GRADUAL ILMN 684 $ 45.82 $ 31,339 21 $31,247 $121,090 GREED_TRANSITION
|
||||
51 2011-09-29 STOP_LOSS AMD 4944 $ 5.31 $ 26,253 36 $57,500 $119,987 VOLATILE_STOCKS
|
||||
52 2011-09-29 BUY_QQQ_STOPLOSS QQQ 551 $ 47.64 $ 26,248 36 $31,252 $119,987 VOLATILE_STOCKS
|
||||
53 2011-10-07 STOP_LOSS ILMN 684 $ 26.44 $ 18,085 46 $49,337 $106,508 VOLATILE_STOCKS
|
||||
54 2011-10-07 BUY_QQQ_STOPLOSS QQQ 378 $ 47.80 $ 18,070 46 $31,267 $106,508 VOLATILE_STOCKS
|
||||
55 2011-10-25 STOP_LOSS NFLX 3 $ 11.05 $ 33 58 $31,300 $107,461 VOLATILE_STOCKS
|
||||
56 2011-11-03 STOP_LOSS DXCM 11087 $ 1.97 $ 21,814 63 $53,114 $100,849 VOLATILE_STOCKS
|
||||
57 2011-11-03 BUY_QQQ_STOPLOSS QQQ 424 $ 51.37 $ 21,780 63 $31,334 $100,849 VOLATILE_STOCKS
|
||||
58 2012-01-20 BUY_GRADUAL QQQ 147 $ 53.05 $ 7,798 76 $23,536 $103,125 QQQ_TRANSITION
|
||||
59 2012-01-23 BUY_GRADUAL QQQ 147 $ 53.06 $ 7,800 75 $15,735 $103,151 QQQ_TRANSITION
|
||||
60 2012-01-24 BUY_GRADUAL QQQ 147 $ 52.97 $ 7,786 74 $7,949 $102,990 QQQ_TRANSITION
|
||||
61 2012-01-25 BUY_GRADUAL QQQ 146 $ 53.63 $ 7,830 75 $119 $104,184 QQQ_TRANSITION
|
||||
62 2012-05-21 SELL_GRADUAL QQQ 485 $ 55.57 $ 26,953 34 $27,072 $107,948 FEAR_TRANSITION
|
||||
63 2012-05-22 SELL_GRADUAL QQQ 485 $ 55.51 $ 26,922 34 $53,994 $107,857 FEAR_TRANSITION
|
||||
64 2012-05-23 SELL_GRADUAL QQQ 485 $ 55.62 $ 26,974 33 $80,968 $107,961 FEAR_TRANSITION
|
||||
65 2012-05-24 SELL_GRADUAL QQQ 485 $ 55.25 $ 26,797 32 $107,766 $107,784 FEAR_TRANSITION
|
||||
66 2012-05-29 BUY_GRADUAL VRTX 466 $ 57.80 $ 26,935 39 $80,831 $107,783 GREED_TRANSITION
|
||||
67 2012-05-30 BUY_GRADUAL NXPI 1395 $ 19.31 $ 26,933 33 $53,898 $108,892 GREED_TRANSITION
|
||||
68 2012-05-31 BUY_GRADUAL REGN 199 $ 135.28 $ 26,920 34 $26,978 $108,301 GREED_TRANSITION
|
||||
69 2012-06-01 BUY_GRADUAL MNST 2291 $ 11.76 $ 26,935 27 $44 $103,625 GREED_TRANSITION
|
||||
70 2012-06-13 STOP_LOSS REGN 199 $ 111.57 $ 22,203 44 $22,246 $101,613 VOLATILE_STOCKS
|
||||
71 2012-06-13 BUY_QQQ_STOPLOSS QQQ 401 $ 55.23 $ 22,149 44 $97 $101,613 VOLATILE_STOCKS
|
||||
72 2012-07-24 STOP_LOSS VRTX 466 $ 48.37 $ 22,540 51 $22,638 $98,436 VOLATILE_STOCKS
|
||||
73 2012-07-24 BUY_QQQ_STOPLOSS QQQ 401 $ 56.10 $ 22,497 51 $141 $98,436 VOLATILE_STOCKS
|
||||
74 2012-08-10 STOP_LOSS MNST 2291 $ 9.05 $ 20,722 62 $20,863 $99,014 VOLATILE_STOCKS
|
||||
75 2012-08-10 BUY_QQQ_STOPLOSS QQQ 347 $ 59.58 $ 20,673 62 $190 $99,014 VOLATILE_STOCKS
|
||||
76 2013-01-24 SELL_GRADUAL NXPI 348 $ 26.46 $ 9,209 75 $9,399 $105,958 QQQ_TRANSITION
|
||||
77 2013-01-24 BUY_GRADUAL QQQ 154 $ 59.90 $ 9,224 75 $175 $105,958 QQQ_TRANSITION
|
||||
78 2013-01-25 SELL_GRADUAL NXPI 348 $ 26.98 $ 9,390 77 $9,565 $106,902 QQQ_TRANSITION
|
||||
79 2013-01-25 BUY_GRADUAL QQQ 154 $ 60.20 $ 9,272 77 $293 $106,902 QQQ_TRANSITION
|
||||
80 2013-01-28 SELL_GRADUAL NXPI 348 $ 27.35 $ 9,518 76 $9,811 $107,355 QQQ_TRANSITION
|
||||
81 2013-01-28 BUY_GRADUAL QQQ 153 $ 60.34 $ 9,232 76 $579 $107,355 QQQ_TRANSITION
|
||||
82 2013-01-29 SELL_GRADUAL NXPI 348 $ 26.46 $ 9,209 77 $9,788 $107,058 QQQ_TRANSITION
|
||||
83 2013-01-29 BUY_GRADUAL QQQ 153 $ 60.35 $ 9,233 77 $555 $107,058 QQQ_TRANSITION
|
||||
84 2015-08-25 SELL_GRADUAL QQQ 440 $ 90.96 $ 40,021 19 $40,576 $161,163 FEAR_TRANSITION
|
||||
85 2015-08-26 SELL_GRADUAL QQQ 440 $ 95.54 $ 42,037 30 $82,612 $167,235 FEAR_TRANSITION
|
||||
86 2015-08-27 SELL_GRADUAL QQQ 440 $ 97.96 $ 43,101 37 $125,714 $169,377 FEAR_TRANSITION
|
||||
87 2015-08-28 SELL_GRADUAL QQQ 440 $ 97.94 $ 43,093 37 $168,807 $169,370 FEAR_TRANSITION
|
||||
88 2015-09-01 BUY_GRADUAL NFLX 399 $ 105.79 $ 42,210 29 $126,597 $169,343 GREED_TRANSITION
|
||||
89 2015-09-02 BUY_GRADUAL NVDA 78306 $ 0.54 $ 42,267 34 $84,330 $169,220 GREED_TRANSITION
|
||||
90 2015-09-03 BUY_GRADUAL MU 2608 $ 16.20 $ 42,259 36 $42,071 $167,587 GREED_TRANSITION
|
||||
91 2015-09-28 STOP_LOSS MU 2608 $ 13.73 $ 35,814 29 $77,885 $162,450 VOLATILE_STOCKS
|
||||
92 2015-09-28 BUY_QQQ_STOPLOSS QQQ 385 $ 92.94 $ 35,784 29 $42,102 $162,450 VOLATILE_STOCKS
|
||||
93 2017-02-16 SELL_GRADUAL NFLX 99 $ 142.01 $ 14,059 74 $56,161 $353,212 QQQ_TRANSITION
|
||||
94 2017-02-16 SELL_GRADUAL NVDA 19576 $ 2.64 $ 51,711 74 $107,872 $353,212 QQQ_TRANSITION
|
||||
95 2017-02-16 BUY_GRADUAL QQQ 634 $ 121.85 $ 77,254 74 $30,618 $353,212 QQQ_TRANSITION
|
||||
96 2017-02-17 SELL_GRADUAL NFLX 99 $ 142.22 $ 14,080 74 $44,697 $353,786 QQQ_TRANSITION
|
||||
97 2017-02-17 SELL_GRADUAL NVDA 19576 $ 2.64 $ 51,701 74 $96,399 $353,786 QQQ_TRANSITION
|
||||
98 2017-02-17 BUY_GRADUAL QQQ 632 $ 122.38 $ 77,344 74 $19,055 $353,786 QQQ_TRANSITION
|
||||
99 2017-02-21 SELL_GRADUAL NFLX 99 $ 142.60 $ 14,117 76 $33,172 $358,565 QQQ_TRANSITION
|
||||
100 2017-02-21 SELL_GRADUAL NVDA 19576 $ 2.74 $ 53,553 76 $86,725 $358,565 QQQ_TRANSITION
|
||||
101 2017-02-21 BUY_GRADUAL QQQ 628 $ 122.98 $ 77,233 76 $9,492 $358,565 QQQ_TRANSITION
|
||||
102 2017-02-22 SELL_GRADUAL NFLX 99 $ 143.86 $ 14,242 75 $23,734 $358,720 QQQ_TRANSITION
|
||||
103 2017-02-22 SELL_GRADUAL NVDA 19576 $ 2.73 $ 53,471 75 $77,204 $358,720 QQQ_TRANSITION
|
||||
104 2018-12-18 SELL_GRADUAL QQQ 570 $ 151.55 $ 86,385 24 $163,590 $424,134 FEAR_TRANSITION
|
||||
105 2018-12-19 SELL_GRADUAL QQQ 570 $ 147.83 $ 84,264 23 $247,854 $417,734 FEAR_TRANSITION
|
||||
106 2018-12-20 SELL_GRADUAL QQQ 570 $ 145.69 $ 83,043 22 $330,897 $415,268 FEAR_TRANSITION
|
||||
107 2018-12-21 SELL_GRADUAL QQQ 570 $ 141.17 $ 80,469 20 $411,366 $412,636 FEAR_TRANSITION
|
||||
108 2018-12-27 BUY_GRADUAL ZS 2566 $ 40.17 $ 103,076 28 $308,289 $412,683 GREED_TRANSITION
|
||||
109 2018-12-28 BUY_GRADUAL AMD 5785 $ 17.82 $ 103,089 26 $205,201 $411,733 GREED_TRANSITION
|
||||
110 2018-12-31 BUY_GRADUAL MDB 1231 $ 83.74 $ 103,084 30 $102,117 $413,961 GREED_TRANSITION
|
||||
111 2019-04-24 SELL_GRADUAL ZS 641 $ 64.99 $ 41,659 75 $143,775 $601,726 QQQ_TRANSITION
|
||||
112 2019-04-24 SELL_GRADUAL AMD 1446 $ 28.46 $ 41,153 75 $184,928 $601,726 QQQ_TRANSITION
|
||||
113 2019-04-24 SELL_GRADUAL MDB 307 $ 135.16 $ 41,494 75 $226,423 $601,726 QQQ_TRANSITION
|
||||
114 2019-04-24 BUY_GRADUAL QQQ 825 $ 182.34 $ 150,428 75 $75,994 $601,726 QQQ_TRANSITION
|
||||
115 2019-04-25 SELL_GRADUAL ZS 641 $ 66.96 $ 42,921 74 $118,916 $604,944 QQQ_TRANSITION
|
||||
116 2019-04-25 SELL_GRADUAL AMD 1446 $ 27.66 $ 39,996 74 $158,912 $604,944 QQQ_TRANSITION
|
||||
117 2019-04-25 SELL_GRADUAL MDB 307 $ 137.66 $ 42,262 74 $201,174 $604,944 QQQ_TRANSITION
|
||||
118 2019-04-25 BUY_GRADUAL QQQ 822 $ 183.08 $ 150,490 74 $50,684 $604,944 QQQ_TRANSITION
|
||||
119 2019-04-26 SELL_GRADUAL ZS 641 $ 66.94 $ 42,909 74 $93,592 $606,662 QQQ_TRANSITION
|
||||
120 2019-04-26 SELL_GRADUAL AMD 1446 $ 27.88 $ 40,314 74 $133,907 $606,662 QQQ_TRANSITION
|
||||
121 2019-04-26 SELL_GRADUAL MDB 307 $ 138.98 $ 42,667 74 $176,574 $606,662 QQQ_TRANSITION
|
||||
122 2019-04-26 BUY_GRADUAL QQQ 821 $ 183.24 $ 150,441 74 $26,133 $606,662 QQQ_TRANSITION
|
||||
123 2019-04-29 SELL_GRADUAL ZS 641 $ 68.20 $ 43,716 74 $69,849 $607,606 QQQ_TRANSITION
|
||||
124 2019-04-29 SELL_GRADUAL AMD 1446 $ 27.69 $ 40,040 74 $109,889 $607,606 QQQ_TRANSITION
|
||||
125 2019-04-29 SELL_GRADUAL MDB 307 $ 137.50 $ 42,212 74 $152,101 $607,606 QQQ_TRANSITION
|
||||
126 2019-04-29 BUY_GRADUAL QQQ 820 $ 183.60 $ 150,549 74 $1,552 $607,606 QQQ_TRANSITION
|
||||
127 2020-02-28 SELL_GRADUAL QQQ 822 $ 199.07 $ 163,635 20 $165,188 $658,590 FEAR_TRANSITION
|
||||
128 2020-03-02 SELL_GRADUAL QQQ 822 $ 209.34 $ 172,080 37 $337,267 $684,012 FEAR_TRANSITION
|
||||
129 2020-03-03 SELL_GRADUAL QQQ 822 $ 202.63 $ 166,561 29 $503,829 $672,909 FEAR_TRANSITION
|
||||
130 2020-03-04 SELL_GRADUAL QQQ 822 $ 211.08 $ 173,511 38 $677,340 $679,956 FEAR_TRANSITION
|
||||
131 2020-03-06 BUY_GRADUAL MRNA 5736 $ 29.61 $ 169,843 25 $507,497 $679,826 GREED_TRANSITION
|
||||
132 2020-03-09 STOP_LOSS MRNA 5736 $ 24.29 $ 139,327 17 $646,824 $649,100 GREED_TRANSITION
|
||||
133 2020-03-09 BUY_QQQ_STOPLOSS QQQ 744 $ 187.24 $ 139,306 17 $507,518 $649,100 GREED_TRANSITION
|
||||
134 2020-03-09 BUY_GRADUAL TSLA 4190 $ 40.53 $ 169,835 17 $337,683 $649,100 GREED_TRANSITION
|
||||
135 2020-03-10 BUY_GRADUAL MRVL 7509 $ 22.62 $ 169,858 25 $167,825 $667,230 GREED_TRANSITION
|
||||
136 2020-03-12 STOP_LOSS MRVL 7509 $ 19.06 $ 143,146 17 $310,971 $597,219 VOLATILE_STOCKS
|
||||
137 2020-03-12 BUY_QQQ_STOPLOSS QQQ 834 $ 171.52 $ 143,049 17 $167,922 $597,219 VOLATILE_STOCKS
|
||||
138 2020-03-16 STOP_LOSS TSLA 4190 $ 29.67 $ 124,323 19 $292,245 $552,585 VOLATILE_STOCKS
|
||||
139 2020-03-16 BUY_QQQ_STOPLOSS QQQ 759 $ 163.76 $ 124,296 19 $167,949 $552,585 VOLATILE_STOCKS
|
||||
140 2020-06-03 BUY_GRADUAL QQQ 185 $ 229.44 $ 42,446 79 $125,503 $707,213 QQQ_TRANSITION
|
||||
141 2020-06-04 BUY_GRADUAL QQQ 187 $ 227.83 $ 42,604 79 $82,899 $703,082 QQQ_TRANSITION
|
||||
142 2020-06-05 BUY_GRADUAL QQQ 183 $ 232.35 $ 42,519 84 $40,380 $715,284 QQQ_TRANSITION
|
||||
143 2022-01-26 SELL_GRADUAL QQQ 723 $ 336.81 $ 243,517 24 $283,896 $1,018,473 FEAR_TRANSITION
|
||||
144 2022-01-27 SELL_GRADUAL QQQ 723 $ 333.42 $ 241,064 23 $524,961 $1,011,148 FEAR_TRANSITION
|
||||
145 2022-01-28 SELL_GRADUAL QQQ 723 $ 343.88 $ 248,626 32 $773,587 $1,026,391 FEAR_TRANSITION
|
||||
146 2022-01-31 SELL_GRADUAL QQQ 723 $ 354.88 $ 256,577 41 $1,030,164 $1,034,684 FEAR_TRANSITION
|
||||
147 2022-02-02 BUY_GRADUAL NFLX 601 $ 429.48 $ 258,117 47 $772,047 $1,034,708 GREED_TRANSITION
|
||||
148 2022-02-03 BUY_GRADUAL PDD 4689 $ 55.13 $ 258,505 43 $513,542 $1,020,143 GREED_TRANSITION
|
||||
149 2022-02-04 BUY_GRADUAL WBD 8945 $ 28.90 $ 258,510 46 $255,031 $1,026,385 GREED_TRANSITION
|
||||
150 2022-03-03 STOP_LOSS PDD 4689 $ 45.22 $ 212,037 39 $467,068 $948,795 VOLATILE_STOCKS
|
||||
151 2022-03-03 BUY_QQQ_STOPLOSS QQQ 633 $ 334.56 $ 211,774 39 $255,294 $948,795 VOLATILE_STOCKS
|
||||
152 2022-03-11 STOP_LOSS WBD 8945 $ 23.99 $ 214,591 31 $469,885 $878,854 VOLATILE_STOCKS
|
||||
153 2022-03-11 BUY_QQQ_STOPLOSS QQQ 676 $ 317.10 $ 214,358 31 $255,526 $878,854 VOLATILE_STOCKS
|
||||
154 2022-08-16 SELL_GRADUAL NFLX 151 $ 245.69 $ 37,099 76 $292,625 $833,290 QQQ_TRANSITION
|
||||
155 2022-08-16 BUY_GRADUAL QQQ 313 $ 325.83 $ 101,984 76 $190,641 $833,290 QQQ_TRANSITION
|
||||
156 2022-08-17 SELL_GRADUAL NFLX 151 $ 241.15 $ 36,414 72 $227,055 $825,132 QQQ_TRANSITION
|
||||
157 2022-08-17 BUY_GRADUAL QQQ 316 $ 322.11 $ 101,787 72 $125,268 $825,132 QQQ_TRANSITION
|
||||
158 2022-08-18 SELL_GRADUAL NFLX 151 $ 245.17 $ 37,021 73 $162,289 $827,836 QQQ_TRANSITION
|
||||
159 2022-08-18 BUY_GRADUAL QQQ 316 $ 322.89 $ 102,032 73 $60,257 $827,836 QQQ_TRANSITION
|
||||
160 2022-08-19 SELL_GRADUAL NFLX 151 $ 241.16 $ 36,415 68 $96,672 $812,946 QQQ_TRANSITION
|
||||
161 2022-09-26 SELL_GRADUAL QQQ 564 $ 269.53 $ 152,012 25 $248,684 $706,189 FEAR_TRANSITION
|
||||
162 2022-09-27 SELL_GRADUAL QQQ 564 $ 269.63 $ 152,073 26 $400,758 $706,398 FEAR_TRANSITION
|
||||
163 2022-09-28 SELL_GRADUAL QQQ 564 $ 275.00 $ 155,098 33 $555,856 $712,492 FEAR_TRANSITION
|
||||
164 2022-09-29 SELL_GRADUAL QQQ 564 $ 267.07 $ 150,627 29 $706,483 $707,973 FEAR_TRANSITION
|
||||
165 2022-10-03 BUY_GRADUAL BIIB 669 $ 264.30 $ 176,817 32 $529,667 $707,986 GREED_TRANSITION
|
||||
166 2022-10-04 BUY_GRADUAL REGN 239 $ 737.50 $ 176,263 42 $353,404 $710,159 GREED_TRANSITION
|
||||
167 2022-10-05 BUY_GRADUAL NFLX 747 $ 236.73 $ 176,837 42 $176,567 $707,777 GREED_TRANSITION
|
||||
168 2023-02-03 SELL_GRADUAL BIIB 167 $ 283.63 $ 47,366 72 $223,933 $827,955 QQQ_TRANSITION
|
||||
169 2023-02-03 SELL_GRADUAL REGN 59 $ 780.97 $ 46,077 72 $270,010 $827,955 QQQ_TRANSITION
|
||||
170 2023-02-03 SELL_GRADUAL NFLX 186 $ 365.90 $ 68,057 72 $338,067 $827,955 QQQ_TRANSITION
|
||||
171 2023-02-03 BUY_GRADUAL QQQ 683 $ 301.49 $ 205,920 72 $132,147 $827,955 QQQ_TRANSITION
|
||||
172 2023-02-06 SELL_GRADUAL BIIB 167 $ 288.28 $ 48,143 65 $180,290 $825,631 QQQ_TRANSITION
|
||||
173 2023-02-06 SELL_GRADUAL REGN 59 $ 778.71 $ 45,944 65 $226,234 $825,631 QQQ_TRANSITION
|
||||
174 2023-02-06 SELL_GRADUAL NFLX 186 $ 361.48 $ 67,235 65 $293,469 $825,631 QQQ_TRANSITION
|
||||
175 2023-02-06 BUY_GRADUAL QQQ 688 $ 298.94 $ 205,673 65 $87,796 $825,631 QQQ_TRANSITION
|
||||
176 2023-02-07 SELL_GRADUAL BIIB 167 $ 291.43 $ 48,669 70 $136,464 $834,461 QQQ_TRANSITION
|
||||
177 2023-02-07 SELL_GRADUAL REGN 59 $ 767.82 $ 45,301 70 $181,766 $834,461 QQQ_TRANSITION
|
||||
178 2023-02-07 SELL_GRADUAL NFLX 186 $ 362.95 $ 67,509 70 $249,274 $834,461 QQQ_TRANSITION
|
||||
179 2023-02-07 BUY_GRADUAL QQQ 674 $ 305.14 $ 205,663 70 $43,612 $834,461 QQQ_TRANSITION
|
||||
180 2023-02-08 SELL_GRADUAL BIIB 167 $ 285.45 $ 47,670 64 $91,282 $821,817 QQQ_TRANSITION
|
||||
181 2023-02-08 SELL_GRADUAL REGN 59 $ 747.59 $ 44,108 64 $135,390 $821,817 QQQ_TRANSITION
|
||||
182 2023-02-08 SELL_GRADUAL NFLX 186 $ 366.83 $ 68,230 64 $203,620 $821,817 QQQ_TRANSITION
|
||||
183 2023-11-09 STOP_LOSS BIIB 1 $ 224.65 $ 225 54 $203,845 $958,229 QQQ_HOLD
|
||||
184 2025-04-07 SELL_GRADUAL QQQ 511 $ 423.21 $ 216,263 24 $420,108 $1,075,227 FEAR_TRANSITION
|
||||
185 2025-04-08 SELL_GRADUAL QQQ 511 $ 415.59 $ 212,368 23 $632,476 $1,063,447 FEAR_TRANSITION
|
||||
186 2025-04-09 SELL_GRADUAL QQQ 511 $ 465.48 $ 237,859 39 $870,335 $1,115,043 FEAR_TRANSITION
|
||||
187 2025-04-10 SELL_GRADUAL QQQ 511 $ 445.68 $ 227,742 34 $1,098,077 $1,104,615 FEAR_TRANSITION
|
||||
188 2025-04-14 BUY_GRADUAL MCHP 7155 $ 38.58 $ 276,050 37 $822,027 $1,104,757 GREED_TRANSITION
|
||||
189 2025-04-15 BUY_GRADUAL WBD 33461 $ 8.25 $ 276,053 38 $545,974 $1,103,807 GREED_TRANSITION
|
||||
190 2025-04-16 STOP_LOSS WBD 33461 $ 7.92 $ 265,011 32 $810,985 $1,087,112 GREED_TRANSITION
|
||||
191 2025-04-16 BUY_QQQ_STOPLOSS QQQ 597 $ 443.68 $ 264,878 32 $546,107 $1,087,112 GREED_TRANSITION
|
||||
192 2025-04-16 BUY_GRADUAL AMD 3126 $ 88.29 $ 275,995 32 $270,112 $1,087,112 GREED_TRANSITION
|
||||
193 2025-05-20 SELL_GRADUAL AMD 781 $ 113.51 $ 88,651 76 $358,764 $1,374,923 QQQ_TRANSITION
|
||||
194 2025-05-20 SELL_GRADUAL MCHP 1788 $ 60.33 $ 107,876 76 $466,639 $1,374,923 QQQ_TRANSITION
|
||||
195 2025-05-20 BUY_GRADUAL QQQ 512 $ 519.69 $ 266,079 76 $200,560 $1,374,923 QQQ_TRANSITION
|
||||
196 2025-05-21 SELL_GRADUAL AMD 781 $ 112.06 $ 87,519 69 $288,079 $1,355,190 QQQ_TRANSITION
|
||||
197 2025-05-21 SELL_GRADUAL MCHP 1788 $ 58.79 $ 105,125 69 $393,204 $1,355,190 QQQ_TRANSITION
|
||||
198 2025-05-21 BUY_GRADUAL QQQ 520 $ 512.46 $ 266,481 69 $126,722 $1,355,190 QQQ_TRANSITION
|
||||
199 2025-05-22 SELL_GRADUAL AMD 781 $ 110.71 $ 86,465 67 $213,187 $1,351,925 QQQ_TRANSITION
|
||||
200 2025-05-22 SELL_GRADUAL MCHP 1788 $ 58.05 $ 103,793 67 $316,980 $1,351,925 QQQ_TRANSITION
|
||||
201 2025-05-22 BUY_GRADUAL QQQ 519 $ 513.42 $ 266,467 67 $50,514 $1,351,925 QQQ_TRANSITION
|
||||
202 2025-05-23 SELL_GRADUAL AMD 781 $ 110.31 $ 86,152 62 $136,666 $1,338,007 QQQ_TRANSITION
|
||||
203 2025-05-23 SELL_GRADUAL MCHP 1788 $ 56.19 $ 100,468 62 $237,133 $1,338,007 QQQ_TRANSITION
|
||||
BIN
backtest/reports/enhanced_strategy_report_20250718_182730.pdf
Normal file
BIN
backtest/reports/enhanced_strategy_report_20250718_182730.pdf
Normal file
Binary file not shown.
BIN
backtest/reports/enhanced_strategy_report_20250718_183737.pdf
Normal file
BIN
backtest/reports/enhanced_strategy_report_20250718_183737.pdf
Normal file
Binary file not shown.
BIN
backtest/reports/enhanced_strategy_report_20250718_185722.pdf
Normal file
BIN
backtest/reports/enhanced_strategy_report_20250718_185722.pdf
Normal file
Binary file not shown.
BIN
backtest/reports/enhanced_strategy_report_20250718_191059.pdf
Normal file
BIN
backtest/reports/enhanced_strategy_report_20250718_191059.pdf
Normal file
Binary file not shown.
BIN
backtest/reports/enhanced_strategy_report_20250718_192206.pdf
Normal file
BIN
backtest/reports/enhanced_strategy_report_20250718_192206.pdf
Normal file
Binary file not shown.
BIN
backtest/reports/enhanced_strategy_report_20250718_204803.pdf
Normal file
BIN
backtest/reports/enhanced_strategy_report_20250718_204803.pdf
Normal file
Binary file not shown.
217
backtest/reports/enhanced_trades_20250718_182730.csv
Normal file
217
backtest/reports/enhanced_trades_20250718_182730.csv
Normal file
@@ -0,0 +1,217 @@
|
||||
date,action,ticker,shares,price,value,fg_index,cash_after,portfolio_state
|
||||
2008-01-09,SELL_GRADUAL,QQQ,609,41.368202209472656,25193.235145568848,26.344740247547747,25208.408485412598,FEAR_TRANSITION
|
||||
2008-01-10,SELL_GRADUAL,QQQ,609,41.428653717041016,25230.05011367798,32.93074277910004,50438.458599090576,FEAR_TRANSITION
|
||||
2008-01-11,SELL_GRADUAL,QQQ,609,40.617149353027344,24735.843955993652,28.176976271462404,75174.30255508423,FEAR_TRANSITION
|
||||
2008-01-14,SELL_GRADUAL,QQQ,609,41.32505798339844,25166.96031188965,30.536227836089562,100341.26286697388,FEAR_TRANSITION
|
||||
2008-01-16,BUY_GRADUAL,ILMN,745,33.63326644897461,25056.783504486084,27.300196841810212,75284.4793624878,GREED_TRANSITION
|
||||
2008-01-17,BUY_GRADUAL,TMUS,852,29.416748046875,25063.0693359375,20.374689776577714,50221.41002655029,GREED_TRANSITION
|
||||
2008-01-18,BUY_GRADUAL,DXCM,11274,2.2249999046325684,25084.648924827576,20.18843039588665,25136.761101722717,GREED_TRANSITION
|
||||
2008-01-22,BUY_GRADUAL,SBUX,3549,7.068207740783691,25085.06927204132,19.14782163420834,51.691829681396484,GREED_TRANSITION
|
||||
2008-03-10,STOP_LOSS,DXCM,11274,1.5125000476837158,17051.925537586212,26.88111930216064,17103.61736726761,VOLATILE_STOCKS
|
||||
2008-03-10,BUY_QQQ_STOPLOSS,QQQ,478,35.61878204345703,17025.77781677246,26.88111930216064,77.8395504951477,VOLATILE_STOCKS
|
||||
2008-10-06,STOP_LOSS,SBUX,3549,4.91026496887207,17426.530374526978,20.69295843152461,17504.369925022125,VOLATILE_STOCKS
|
||||
2008-10-06,BUY_QQQ_STOPLOSS,QQQ,577,30.158662796020508,17401.548433303833,20.69295843152461,102.82149171829224,VOLATILE_STOCKS
|
||||
2008-10-23,STOP_LOSS,ILMN,745,22.69455337524414,16907.442264556885,28.639221783063807,17010.263756275177,VOLATILE_STOCKS
|
||||
2008-10-23,BUY_QQQ_STOPLOSS,QQQ,640,26.378019332885742,16881.932373046875,28.639221783063807,128.331383228302,VOLATILE_STOCKS
|
||||
2008-10-24,STOP_LOSS,TMUS,852,20.552974700927734,17511.13444519043,26.196726523160056,17639.46582841873,VOLATILE_STOCKS
|
||||
2008-10-24,BUY_QQQ_STOPLOSS,QQQ,685,25.53017234802246,17488.168058395386,26.196726523160056,151.29777002334595,VOLATILE_STOCKS
|
||||
2009-05-05,BUY_GRADUAL,QQQ,1,30.3912410736084,30.3912410736084,75.86377868118474,120.90652894973755,QQQ_TRANSITION
|
||||
2009-05-06,BUY_GRADUAL,QQQ,1,30.39992904663086,30.39992904663086,82.3309806574607,90.50659990310669,QQQ_TRANSITION
|
||||
2009-05-07,BUY_GRADUAL,QQQ,1,29.688297271728516,29.688297271728516,77.63068795156485,60.818302631378174,QQQ_TRANSITION
|
||||
2009-05-08,BUY_GRADUAL,QQQ,1,29.705650329589844,29.705650329589844,75.32780647633614,31.11265230178833,QQQ_TRANSITION
|
||||
2010-05-27,SELL_GRADUAL,QQQ,596,40.003875732421875,23842.309936523438,33.580788922696,23873.422588825226,FEAR_TRANSITION
|
||||
2010-05-28,SELL_GRADUAL,QQQ,596,39.7684211730957,23701.97901916504,33.34027831701036,47575.401607990265,FEAR_TRANSITION
|
||||
2010-06-01,SELL_GRADUAL,QQQ,596,39.40214920043945,23483.680923461914,27.283331291968164,71059.08253145218,FEAR_TRANSITION
|
||||
2010-06-02,SELL_GRADUAL,QQQ,596,40.335304260253906,24039.841339111328,37.67628312195878,95098.9238705635,FEAR_TRANSITION
|
||||
2010-06-04,BUY_GRADUAL,SIRI,2679,8.87330436706543,23771.582399368286,36.8189871507287,71327.34147119522,GREED_TRANSITION
|
||||
2010-06-07,BUY_GRADUAL,NFLX,1524,15.59428596496582,23765.69181060791,35.18107991239285,47561.64966058731,GREED_TRANSITION
|
||||
2010-06-08,BUY_GRADUAL,TMUS,1776,13.38446044921875,23770.8017578125,33.88560765938214,23790.84790277481,GREED_TRANSITION
|
||||
2010-06-09,BUY_GRADUAL,LULU,1216,19.549999237060547,23772.799072265625,33.40896140370173,18.04883050918579,GREED_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,SIRI,669,13.309956550598145,8904.360932350159,79.52490444098007,8922.409762859344,QQQ_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,NFLX,381,23.974285125732422,9134.202632904053,79.52490444098007,18056.612395763397,QQQ_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,TMUS,444,18.357215881347656,8150.603851318359,79.52490444098007,26207.216247081757,QQQ_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,LULU,304,22.5,6840.0,79.52490444098007,33047.21624708176,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,SIRI,669,13.85322093963623,9267.804808616638,80.12015594534758,42315.021055698395,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,NFLX,381,24.014286041259766,9149.44298171997,80.12015594534758,51464.464037418365,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,TMUS,444,18.922300338745117,8401.501350402832,80.12015594534758,59865.9653878212,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,LULU,304,24.045000076293945,7309.680023193359,80.12015594534758,67175.64541101456,QQQ_TRANSITION
|
||||
2010-11-05,BUY_GRADUAL,QQQ,709,47.09733963012695,33392.01379776001,80.12015594534758,33783.63161325455,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,SIRI,669,14.034306526184082,9388.95106601715,78.02954261077275,43172.5826792717,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,NFLX,381,24.161428451538086,9205.50424003601,78.02954261077275,52378.08691930771,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,TMUS,444,19.713420867919922,8752.758865356445,78.02954261077275,61130.845784664154,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,LULU,304,24.774999618530273,7531.599884033203,78.02954261077275,68662.44566869736,QQQ_TRANSITION
|
||||
2010-11-08,BUY_GRADUAL,QQQ,708,47.158782958984375,33388.41833496094,78.02954261077275,35274.02733373642,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,SIRI,669,13.491044044494629,9025.508465766907,74.24305370136257,44299.53579950333,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,NFLX,381,24.351428985595703,9277.894443511963,74.24305370136257,53577.43024301529,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,TMUS,444,19.342077255249023,8587.882301330566,74.24305370136257,62165.312544345856,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,LULU,304,24.09000015258789,7323.360046386719,74.24305370136257,69488.67259073257,QQQ_TRANSITION
|
||||
2010-11-09,BUY_GRADUAL,QQQ,712,46.904296875,33395.859375,74.24305370136257,36092.813215732574,QQQ_TRANSITION
|
||||
2011-08-05,SELL_GRADUAL,QQQ,532,47.504486083984375,25272.386596679688,16.014420438739027,61365.19981241226,FEAR_TRANSITION
|
||||
2011-08-08,SELL_GRADUAL,QQQ,532,44.64522171020508,23751.2579498291,12.102638620949758,85116.45776224136,FEAR_TRANSITION
|
||||
2011-08-09,SELL_GRADUAL,QQQ,532,46.798492431640625,24896.797973632812,21.243367458738685,110013.25573587418,FEAR_TRANSITION
|
||||
2011-08-10,SELL_GRADUAL,QQQ,532,44.88348388671875,23878.013427734375,16.34997696820296,133891.26916360855,FEAR_TRANSITION
|
||||
2011-08-16,BUY_GRADUAL,AMD,5281,6.340000152587891,33481.54080581665,27.713133229401997,100409.7283577919,GREED_TRANSITION
|
||||
2011-08-17,BUY_GRADUAL,DXCM,11842,2.827500104904175,33483.25624227524,27.444352198857068,66926.47211551666,GREED_TRANSITION
|
||||
2011-08-18,BUY_GRADUAL,ILMN,730,45.81711959838867,33446.49730682373,21.352782610275447,33479.97480869293,GREED_TRANSITION
|
||||
2011-10-07,STOP_LOSS,ILMN,730,26.43968963623047,19300.973434448242,45.948970380647914,52780.948243141174,VOLATILE_STOCKS
|
||||
2011-10-07,BUY_QQQ_STOPLOSS,QQQ,403,47.80477523803711,19265.324420928955,45.948970380647914,33515.62382221222,VOLATILE_STOCKS
|
||||
2011-11-10,STOP_LOSS,DXCM,11842,1.7699999809265137,20960.339774131775,51.55040467666299,54475.963596343994,VOLATILE_STOCKS
|
||||
2011-11-10,BUY_QQQ_STOPLOSS,QQQ,417,50.20075988769531,20933.716873168945,51.55040467666299,33542.24672317505,VOLATILE_STOCKS
|
||||
2012-01-20,SELL_GRADUAL,AMD,1320,6.420000076293945,8474.400100708008,76.11690483789968,42016.64682388306,QQQ_TRANSITION
|
||||
2012-01-20,BUY_GRADUAL,QQQ,313,53.046531677246094,16603.564414978027,76.11690483789968,25413.08240890503,QQQ_TRANSITION
|
||||
2012-01-23,SELL_GRADUAL,AMD,1320,6.519999980926514,8606.399974822998,75.47387743828742,34019.48238372803,QQQ_TRANSITION
|
||||
2012-01-23,BUY_GRADUAL,QQQ,313,53.06429672241211,16609.12487411499,75.47387743828742,17410.357509613037,QQQ_TRANSITION
|
||||
2012-01-24,SELL_GRADUAL,AMD,1320,6.53000020980835,8619.600276947021,73.6603345892624,26029.95778656006,QQQ_TRANSITION
|
||||
2012-01-24,BUY_GRADUAL,QQQ,313,52.966651916503906,16578.562049865723,73.6603345892624,9451.395736694336,QQQ_TRANSITION
|
||||
2012-01-25,SELL_GRADUAL,AMD,1320,6.730000019073486,8883.600025177002,74.7347021654166,18334.995761871338,QQQ_TRANSITION
|
||||
2012-01-25,BUY_GRADUAL,QQQ,309,53.63228988647461,16572.377574920654,74.7347021654166,1762.6181869506836,QQQ_TRANSITION
|
||||
2012-05-21,SELL_GRADUAL,QQQ,517,55.57248306274414,28730.97374343872,33.89789007404509,30493.591930389404,FEAR_TRANSITION
|
||||
2012-05-22,SELL_GRADUAL,QQQ,517,55.51026153564453,28698.805213928223,34.48360680185137,59192.39714431763,FEAR_TRANSITION
|
||||
2012-05-23,SELL_GRADUAL,QQQ,517,55.616939544677734,28753.95774459839,33.07033492791181,87946.35488891602,FEAR_TRANSITION
|
||||
2012-05-24,SELL_GRADUAL,QQQ,517,55.252464294433594,28565.524040222168,32.19709993260843,116511.87892913818,FEAR_TRANSITION
|
||||
2012-05-29,BUY_GRADUAL,VRTX,504,57.79999923706055,29131.199615478516,39.29817121538365,87380.67931365967,GREED_TRANSITION
|
||||
2012-05-30,BUY_GRADUAL,NXPI,1509,19.306720733642578,29133.84158706665,32.69376088195683,58246.83772659302,GREED_TRANSITION
|
||||
2012-05-31,BUY_GRADUAL,REGN,215,135.27606201171875,29084.35333251953,34.05046977820416,29162.484394073486,GREED_TRANSITION
|
||||
2012-06-01,BUY_GRADUAL,MNST,2478,11.756667137145996,29133.02116584778,27.26748930164401,29.463228225708008,GREED_TRANSITION
|
||||
2012-07-20,STOP_LOSS,AMD,1,4.21999979019165,4.21999979019165,55.39674097276638,33.68322801589966,VOLATILE_STOCKS
|
||||
2012-10-22,STOP_LOSS,MNST,2478,7.62166690826416,18886.49059867859,47.57872339379883,18920.17382669449,VOLATILE_STOCKS
|
||||
2012-10-22,BUY_QQQ_STOPLOSS,QQQ,320,58.99560546875,18878.59375,47.57872339379883,41.580076694488525,VOLATILE_STOCKS
|
||||
2012-11-27,STOP_LOSS,VRTX,504,39.97999954223633,20149.91976928711,49.092795869626194,20191.499845981598,VOLATILE_STOCKS
|
||||
2012-11-27,BUY_QQQ_STOPLOSS,QQQ,347,58.04839324951172,20142.792457580566,49.092795869626194,48.707388401031494,VOLATILE_STOCKS
|
||||
2013-01-24,SELL_GRADUAL,NXPI,377,26.462675094604492,9976.428510665894,75.13424844525217,10025.135899066925,QQQ_TRANSITION
|
||||
2013-01-24,SELL_GRADUAL,REGN,53,172.66270446777344,9151.123336791992,75.13424844525217,19176.259235858917,QQQ_TRANSITION
|
||||
2013-01-25,SELL_GRADUAL,NXPI,377,26.98277473449707,10172.506074905396,76.59616542938397,29348.765310764313,QQQ_TRANSITION
|
||||
2013-01-25,SELL_GRADUAL,REGN,53,173.9990234375,9221.9482421875,76.59616542938397,38570.71355295181,QQQ_TRANSITION
|
||||
2013-01-25,BUY_GRADUAL,QQQ,323,60.20482635498047,19446.15891265869,76.59616542938397,19124.55464029312,QQQ_TRANSITION
|
||||
2013-01-28,SELL_GRADUAL,NXPI,377,27.350439071655273,10311.115530014038,75.72095442961731,29435.67017030716,QQQ_TRANSITION
|
||||
2013-01-28,SELL_GRADUAL,REGN,53,170.4288787841797,9032.730575561523,75.72095442961731,38468.40074586868,QQQ_TRANSITION
|
||||
2013-01-28,BUY_GRADUAL,QQQ,322,60.33960723876953,19429.35353088379,75.72095442961731,19039.047214984894,QQQ_TRANSITION
|
||||
2013-01-29,SELL_GRADUAL,NXPI,377,26.462675094604492,9976.428510665894,76.8305936279351,29015.475725650787,QQQ_TRANSITION
|
||||
2013-01-29,SELL_GRADUAL,REGN,53,174.47769165039062,9247.317657470703,76.8305936279351,38262.79338312149,QQQ_TRANSITION
|
||||
2013-01-29,BUY_GRADUAL,QQQ,322,60.34858703613281,19432.245025634766,76.8305936279351,18830.548357486725,QQQ_TRANSITION
|
||||
2015-08-25,SELL_GRADUAL,QQQ,409,90.95682525634766,37201.34152984619,18.64332792812587,56031.889887332916,FEAR_TRANSITION
|
||||
2015-08-26,SELL_GRADUAL,QQQ,409,95.53759002685547,39074.87432098389,30.238674126890754,95106.7642083168,FEAR_TRANSITION
|
||||
2015-08-27,SELL_GRADUAL,QQQ,409,97.9577865600586,40064.734703063965,36.72325111888732,135171.49891138077,FEAR_TRANSITION
|
||||
2015-08-28,SELL_GRADUAL,QQQ,409,97.93927001953125,40057.16143798828,36.806462475332836,175228.66034936905,FEAR_TRANSITION
|
||||
2015-09-01,BUY_GRADUAL,NFLX,418,105.79000091552734,44220.22038269043,29.162017163513145,131008.43996667862,GREED_TRANSITION
|
||||
2015-09-02,BUY_GRADUAL,NVDA,81954,0.5397700667381287,44236.3160494566,33.786594185558485,86772.12391722202,GREED_TRANSITION
|
||||
2015-09-03,BUY_GRADUAL,MU,2730,16.203489303588867,44235.52579879761,35.8957291289263,42536.598118424416,GREED_TRANSITION
|
||||
2016-01-15,STOP_LOSS,MU,2730,10.821861267089844,29543.681259155273,23.244721645233323,72080.27937757969,VOLATILE_STOCKS
|
||||
2016-01-15,BUY_QQQ_STOPLOSS,QQQ,314,94.02062225341797,29522.475387573242,23.244721645233323,42557.80399000645,VOLATILE_STOCKS
|
||||
2017-02-16,SELL_GRADUAL,NFLX,104,142.00999450683594,14769.039428710938,74.18422120605587,57326.843418717384,QQQ_TRANSITION
|
||||
2017-02-16,SELL_GRADUAL,NVDA,20488,2.6415488719940186,54120.05328941345,74.18422120605587,111446.89670813084,QQQ_TRANSITION
|
||||
2017-02-16,BUY_GRADUAL,QQQ,663,121.85171508789062,80787.68710327148,74.18422120605587,30659.209604859352,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NFLX,104,142.22000122070312,14790.880126953125,73.85576423075787,45450.08973181248,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NVDA,20488,2.641056776046753,54109.971227645874,73.85576423075787,99560.06095945835,QQQ_TRANSITION
|
||||
2017-02-17,BUY_GRADUAL,QQQ,660,122.37963104248047,80770.55648803711,73.85576423075787,18789.50447142124,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NFLX,104,142.60000610351562,14830.400634765625,76.26775225821572,33619.90510618687,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NVDA,20488,2.73563551902771,56047.70051383972,76.26775225821572,89667.60562002659,QQQ_TRANSITION
|
||||
2017-02-21,BUY_GRADUAL,QQQ,657,122.98302459716797,80799.84716033936,76.26775225821572,8867.758459687233,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NFLX,104,143.86000061035156,14961.440063476562,74.96778290840957,23829.198523163795,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NVDA,20488,2.7314422130584717,55961.78806114197,74.96778290840957,79790.98658430576,QQQ_TRANSITION
|
||||
2018-12-18,SELL_GRADUAL,QQQ,573,151.55323791503906,86840.00532531738,24.442533177764215,166630.99190962315,FEAR_TRANSITION
|
||||
2018-12-19,SELL_GRADUAL,QQQ,573,147.8318328857422,84707.64024353027,22.796729661345402,251338.63215315342,FEAR_TRANSITION
|
||||
2018-12-20,SELL_GRADUAL,QQQ,573,145.68890380859375,83479.74188232422,22.299659882587015,334818.37403547764,FEAR_TRANSITION
|
||||
2018-12-21,SELL_GRADUAL,QQQ,573,141.17352294921875,80892.42864990234,19.58576040567819,415710.80268538,FEAR_TRANSITION
|
||||
2018-12-27,BUY_GRADUAL,ZS,2598,40.16999816894531,104361.65524291992,27.938844950891582,311349.14744246006,GREED_TRANSITION
|
||||
2018-12-28,BUY_GRADUAL,AMD,5857,17.81999969482422,104371.73821258545,26.23355835507341,206977.4092298746,GREED_TRANSITION
|
||||
2018-12-31,BUY_GRADUAL,MDB,1246,83.73999786376953,104340.03733825684,30.089955926210273,102637.37189161777,GREED_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,ZS,649,64.98999786376953,42178.508613586426,74.73809260902496,144815.8805052042,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,AMD,1464,28.459999084472656,41665.43865966797,74.73809260902496,186481.31916487217,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,MDB,311,135.16000366210938,42034.761138916016,74.73809260902496,228516.08030378819,QQQ_TRANSITION
|
||||
2019-04-24,BUY_GRADUAL,QQQ,835,182.33738708496094,152251.71821594238,74.73809260902496,76264.3620878458,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,ZS,649,66.95999908447266,43457.039405822754,74.47201415715975,119721.40149366856,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,AMD,1464,27.65999984741211,40494.23977661133,74.47201415715975,160215.64127027988,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,MDB,311,137.66000366210938,42812.261138916016,74.47201415715975,203027.9024091959,QQQ_TRANSITION
|
||||
2019-04-25,BUY_GRADUAL,QQQ,832,183.07749938964844,152320.4794921875,74.47201415715975,50707.4229170084,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,ZS,649,66.94000244140625,43444.061584472656,74.04664446450204,94151.48450148106,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,AMD,1464,27.8799991607666,40816.318771362305,74.04664446450204,134967.80327284336,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,MDB,311,138.97999572753906,43222.77867126465,74.04664446450204,178190.581944108,QQQ_TRANSITION
|
||||
2019-04-26,BUY_GRADUAL,QQQ,831,183.2408905029297,152273.18000793457,74.04664446450204,25917.40193617344,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,ZS,649,68.19999694824219,44261.79801940918,74.33985266042214,70179.19995558262,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,AMD,1464,27.690000534057617,40538.16078186035,74.33985266042214,110717.36073744297,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,MDB,311,137.5,42762.5,74.33985266042214,153479.86073744297,QQQ_TRANSITION
|
||||
2019-04-29,BUY_GRADUAL,QQQ,830,183.5964813232422,152385.07949829102,74.33985266042214,1094.7812391519547,QQQ_TRANSITION
|
||||
2020-02-28,SELL_GRADUAL,QQQ,832,199.0699005126953,165626.1572265625,20.377945426333802,166720.93846571445,FEAR_TRANSITION
|
||||
2020-03-02,SELL_GRADUAL,QQQ,832,209.34254455566406,174172.9970703125,36.64935574118489,340893.93553602695,FEAR_TRANSITION
|
||||
2020-03-03,SELL_GRADUAL,QQQ,832,202.62953186035156,168587.7705078125,29.173017969864834,509481.70604383945,FEAR_TRANSITION
|
||||
2020-03-04,SELL_GRADUAL,QQQ,832,211.08370971679688,175621.646484375,37.762293269698624,685103.3525282145,FEAR_TRANSITION
|
||||
2020-03-06,BUY_GRADUAL,MRNA,5809,29.610000610351562,172004.49354553223,24.79777800648001,513098.8589826822,GREED_TRANSITION
|
||||
2020-03-09,BUY_GRADUAL,TSLA,4243,40.53333282470703,171982.93117523193,16.994433907313056,341115.9278074503,GREED_TRANSITION
|
||||
2020-03-10,BUY_GRADUAL,MRVL,7604,22.620569229125977,172006.80841827393,24.7215849676679,169109.11938917637,GREED_TRANSITION
|
||||
2020-03-18,STOP_LOSS,TSLA,4243,24.08133316040039,102177.09659957886,21.996186861615104,271286.2159887552,VOLATILE_STOCKS
|
||||
2020-03-18,BUY_QQQ_STOPLOSS,QQQ,598,170.8247833251953,102153.2204284668,21.996186861615104,169132.99556028843,VOLATILE_STOCKS
|
||||
2020-06-03,SELL_GRADUAL,MRNA,1452,59.88999938964844,86960.27911376953,78.64383713986213,256093.27467405796,QQQ_TRANSITION
|
||||
2020-06-03,SELL_GRADUAL,MRVL,1901,35.14421463012695,66809.15201187134,78.64383713986213,322902.4266859293,QQQ_TRANSITION
|
||||
2020-06-03,BUY_GRADUAL,QQQ,847,229.43759155273438,194333.64004516602,78.64383713986213,128568.78664076328,QQQ_TRANSITION
|
||||
2020-06-04,SELL_GRADUAL,MRNA,1452,60.59000015258789,87976.68022155762,79.05391554632061,216545.4668623209,QQQ_TRANSITION
|
||||
2020-06-04,SELL_GRADUAL,MRVL,1901,35.0758056640625,66679.10656738281,79.05391554632061,283224.5734297037,QQQ_TRANSITION
|
||||
2020-06-04,BUY_GRADUAL,QQQ,853,227.82846069335938,194337.67697143555,79.05391554632061,88886.89645826817,QQQ_TRANSITION
|
||||
2020-06-05,SELL_GRADUAL,MRNA,1452,58.189998626708984,84491.87800598145,83.9440139783205,173378.7744642496,QQQ_TRANSITION
|
||||
2020-06-05,SELL_GRADUAL,MRVL,1901,35.0758056640625,66679.10656738281,83.9440139783205,240057.88103163242,QQQ_TRANSITION
|
||||
2020-06-05,BUY_GRADUAL,QQQ,836,232.3456268310547,194240.94403076172,83.9440139783205,45816.937000870705,QQQ_TRANSITION
|
||||
2020-06-08,SELL_GRADUAL,MRNA,1452,59.099998474121094,85813.19778442383,83.25340152682092,131630.13478529453,QQQ_TRANSITION
|
||||
2020-06-08,SELL_GRADUAL,MRVL,1901,34.15713882446289,64932.720905303955,83.25340152682092,196562.8556905985,QQQ_TRANSITION
|
||||
2020-06-08,BUY_GRADUAL,QQQ,830,234.14869689941406,194343.41842651367,83.25340152682092,2219.437264084816,QQQ_TRANSITION
|
||||
2022-01-26,SELL_GRADUAL,QQQ,991,336.8142395019531,333782.91134643555,24.061477932967016,336002.34861052036,FEAR_TRANSITION
|
||||
2022-01-27,SELL_GRADUAL,QQQ,991,333.4222717285156,330421.471282959,23.19312861351907,666423.8198934793,FEAR_TRANSITION
|
||||
2022-01-28,SELL_GRADUAL,QQQ,991,343.8814697265625,340786.53649902344,32.47130624150118,1007210.3563925028,FEAR_TRANSITION
|
||||
2022-01-31,SELL_GRADUAL,QQQ,991,354.8782653808594,351684.36099243164,40.745889513626054,1358894.7173849344,FEAR_TRANSITION
|
||||
2022-02-02,BUY_GRADUAL,NFLX,793,429.4800109863281,340577.6487121582,46.50000935058783,1018317.0686727762,GREED_TRANSITION
|
||||
2022-02-03,BUY_GRADUAL,PDD,6184,55.130001068115234,340923.9266052246,42.57397684804427,677393.1420675516,GREED_TRANSITION
|
||||
2022-02-04,BUY_GRADUAL,WBD,11796,28.899999618530273,340904.3955001831,45.75812386485002,336488.7465673685,GREED_TRANSITION
|
||||
2022-03-10,STOP_LOSS,PDD,6184,35.7599983215332,221139.82962036133,34.075838839921104,557628.5761877298,VOLATILE_STOCKS
|
||||
2022-03-10,BUY_QQQ_STOPLOSS,QQQ,682,323.8135986328125,220840.87426757812,34.075838839921104,336787.7019201517,VOLATILE_STOCKS
|
||||
2022-04-26,STOP_LOSS,WBD,11796,19.829999923706055,233914.67910003662,29.605935383730476,570702.3810201883,VOLATILE_STOCKS
|
||||
2022-04-26,BUY_QQQ_STOPLOSS,QQQ,753,310.3849182128906,233719.84341430664,29.605935383730476,336982.5376058817,VOLATILE_STOCKS
|
||||
2022-08-16,SELL_GRADUAL,NFLX,198,245.69000244140625,48646.62048339844,75.89323394690028,385629.1580892801,QQQ_TRANSITION
|
||||
2022-08-16,BUY_GRADUAL,QQQ,413,325.8274841308594,134566.75094604492,75.89323394690028,251062.4071432352,QQQ_TRANSITION
|
||||
2022-08-17,SELL_GRADUAL,NFLX,198,241.14999389648438,47747.698791503906,71.95888891502631,298810.1059347391,QQQ_TRANSITION
|
||||
2022-08-17,BUY_GRADUAL,QQQ,418,322.1111145019531,134642.4458618164,71.95888891502631,164167.6600729227,QQQ_TRANSITION
|
||||
2022-08-18,SELL_GRADUAL,NFLX,198,245.1699981689453,48543.65963745117,72.7643774387154,212711.31971037388,QQQ_TRANSITION
|
||||
2022-08-18,BUY_GRADUAL,QQQ,417,322.8857727050781,134643.36721801758,72.7643774387154,78067.9524923563,QQQ_TRANSITION
|
||||
2022-08-19,SELL_GRADUAL,NFLX,198,241.16000366210938,47749.680725097656,68.48379396098062,125817.63321745396,QQQ_TRANSITION
|
||||
2022-09-26,SELL_GRADUAL,QQQ,671,269.52557373046875,180851.65997314453,25.412070998468074,306669.2931905985,FEAR_TRANSITION
|
||||
2022-09-27,SELL_GRADUAL,QQQ,671,269.6336364746094,180924.1700744629,26.22711815731541,487593.4632650614,FEAR_TRANSITION
|
||||
2022-09-28,SELL_GRADUAL,QQQ,671,274.9972229003906,184523.1365661621,33.21082990012799,672116.5998312235,FEAR_TRANSITION
|
||||
2022-09-29,SELL_GRADUAL,QQQ,671,267.0697021484375,179203.77014160156,29.27070352396588,851320.369972825,FEAR_TRANSITION
|
||||
2022-10-03,BUY_GRADUAL,BIIB,809,264.29998779296875,213818.69012451172,32.38063116058547,637501.6798483133,GREED_TRANSITION
|
||||
2022-10-04,BUY_GRADUAL,REGN,289,737.5012817382812,213137.87042236328,42.2918131346582,424363.80942595005,GREED_TRANSITION
|
||||
2022-10-05,BUY_GRADUAL,NFLX,903,236.72999572753906,213767.18614196777,41.52977712655799,210596.62328398228,GREED_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,REGN,73,780.97119140625,57010.89697265625,72.23030348546578,267607.5202566385,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,NFLX,226,365.8999938964844,82693.39862060547,72.23030348546578,350300.918877244,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,BIIB,202,283.6300048828125,57293.260986328125,72.23030348546578,407594.1798635721,QQQ_TRANSITION
|
||||
2023-02-03,BUY_GRADUAL,QQQ,825,301.49395751953125,248732.51495361328,72.23030348546578,158861.66490995884,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,REGN,73,778.7074584960938,56845.644470214844,65.34324140803145,215707.30938017368,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,NFLX,226,361.4800109863281,81694.48248291016,65.34324140803145,297401.79186308384,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,BIIB,202,288.2799987792969,58232.55975341797,65.34324140803145,355634.3516165018,QQQ_TRANSITION
|
||||
2023-02-06,BUY_GRADUAL,QQQ,832,298.9436340332031,248721.103515625,65.34324140803145,106913.24810087681,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,REGN,73,767.8175048828125,56050.67785644531,70.27852780807376,162963.92595732212,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,NFLX,226,362.95001220703125,82026.70275878906,70.27852780807376,244990.62871611118,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,BIIB,202,291.42999267578125,58868.85852050781,70.27852780807376,303859.487236619,QQQ_TRANSITION
|
||||
2023-02-07,BUY_GRADUAL,QQQ,815,305.1373596191406,248686.9480895996,70.27852780807376,55172.539147019386,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,REGN,73,747.5934448242188,54574.32147216797,64.43188468733032,109746.86061918736,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,NFLX,226,366.8299865722656,82903.57696533203,64.43188468733032,192650.4375845194,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,BIIB,202,285.45001220703125,57660.90246582031,64.43188468733032,250311.3400503397,QQQ_TRANSITION
|
||||
2023-02-08,BUY_GRADUAL,QQQ,830,299.7116394042969,248760.6607055664,64.43188468733032,1550.6793447732925,QQQ_TRANSITION
|
||||
2024-10-03,STOP_LOSS,BIIB,1,184.77999877929688,184.77999877929688,61.80497845428075,1735.4593435525894,QQQ_HOLD
|
||||
2025-04-07,SELL_GRADUAL,QQQ,825,423.2146911621094,349152.12020874023,24.106379703967942,350887.5795522928,FEAR_TRANSITION
|
||||
2025-04-08,SELL_GRADUAL,QQQ,825,415.59326171875,342864.44091796875,23.47897409359107,693752.0204702616,FEAR_TRANSITION
|
||||
2025-04-09,SELL_GRADUAL,QQQ,825,465.47723388671875,384018.71795654297,39.00858627592589,1077770.7384268045,FEAR_TRANSITION
|
||||
2025-04-10,SELL_GRADUAL,QQQ,825,445.6794738769531,367685.5659484863,33.96020602504672,1445456.3043752909,FEAR_TRANSITION
|
||||
2025-04-14,BUY_GRADUAL,MCHP,9386,38.58142852783203,362125.28816223145,37.444908145843534,1083331.0162130594,GREED_TRANSITION
|
||||
2025-04-15,BUY_GRADUAL,WBD,43896,8.25,362142.0,37.75161834264942,721189.0162130594,GREED_TRANSITION
|
||||
2025-04-16,STOP_LOSS,WBD,43896,7.920000076293945,347656.323348999,32.4554396374009,1068845.3395620584,GREED_TRANSITION
|
||||
2025-04-16,BUY_QQQ_STOPLOSS,QQQ,783,443.68170166015625,347402.77239990234,32.4554396374009,721442.5671621561,GREED_TRANSITION
|
||||
2025-04-16,BUY_GRADUAL,AMD,4101,88.29000091552734,362077.29375457764,32.4554396374009,359365.27340757847,GREED_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,AMD,1025,113.51000213623047,116347.75218963623,75.62799649436673,475713.0255972147,QQQ_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,MCHP,2346,60.33309555053711,141541.44216156006,75.62799649436673,617254.4677587748,QQQ_TRANSITION
|
||||
2025-05-20,BUY_GRADUAL,QQQ,672,519.6863403320312,349229.220703125,75.62799649436673,268025.24705564976,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,AMD,1025,112.05999755859375,114861.4974975586,68.96239147283873,382886.74455320835,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,MCHP,2346,58.79499816894531,137933.0657043457,68.96239147283873,520819.81025755405,QQQ_TRANSITION
|
||||
2025-05-21,BUY_GRADUAL,QQQ,682,512.4644165039062,349500.73205566406,68.96239147283873,171319.07820189,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,AMD,1025,110.70999908447266,113477.74906158447,66.69973135428862,284796.82726347446,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,MCHP,2346,58.04999923706055,136185.29821014404,66.69973135428862,420982.1254736185,QQQ_TRANSITION
|
||||
2025-05-22,BUY_GRADUAL,QQQ,680,513.4234008789062,349127.91259765625,66.69973135428862,71854.21287596226,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,AMD,1025,110.30999755859375,113067.7474975586,62.342179974993726,184921.96037352085,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,MCHP,2346,56.189998626708984,131821.73677825928,62.342179974993726,316743.6971517801,QQQ_TRANSITION
|
||||
|
217
backtest/reports/enhanced_trades_20250718_183737.csv
Normal file
217
backtest/reports/enhanced_trades_20250718_183737.csv
Normal file
@@ -0,0 +1,217 @@
|
||||
date,action,ticker,shares,price,value,fg_index,cash_after,portfolio_state
|
||||
2008-01-09,SELL_GRADUAL,QQQ,609,41.368202209472656,25193.235145568848,26.344740247547747,25208.408485412598,FEAR_TRANSITION
|
||||
2008-01-10,SELL_GRADUAL,QQQ,609,41.428653717041016,25230.05011367798,32.93074277910004,50438.458599090576,FEAR_TRANSITION
|
||||
2008-01-11,SELL_GRADUAL,QQQ,609,40.617149353027344,24735.843955993652,28.176976271462404,75174.30255508423,FEAR_TRANSITION
|
||||
2008-01-14,SELL_GRADUAL,QQQ,609,41.32505798339844,25166.96031188965,30.536227836089562,100341.26286697388,FEAR_TRANSITION
|
||||
2008-01-16,BUY_GRADUAL,ILMN,745,33.63326644897461,25056.783504486084,27.300196841810212,75284.4793624878,GREED_TRANSITION
|
||||
2008-01-17,BUY_GRADUAL,TMUS,852,29.416748046875,25063.0693359375,20.374689776577714,50221.41002655029,GREED_TRANSITION
|
||||
2008-01-18,BUY_GRADUAL,DXCM,11274,2.2249999046325684,25084.648924827576,20.18843039588665,25136.761101722717,GREED_TRANSITION
|
||||
2008-01-22,BUY_GRADUAL,SBUX,3549,7.068207740783691,25085.06927204132,19.14782163420834,51.691829681396484,GREED_TRANSITION
|
||||
2008-03-10,STOP_LOSS,DXCM,11274,1.5125000476837158,17051.925537586212,26.88111930216064,17103.61736726761,VOLATILE_STOCKS
|
||||
2008-03-10,BUY_QQQ_STOPLOSS,QQQ,478,35.61878204345703,17025.77781677246,26.88111930216064,77.8395504951477,VOLATILE_STOCKS
|
||||
2008-10-06,STOP_LOSS,SBUX,3549,4.91026496887207,17426.530374526978,20.69295843152461,17504.369925022125,VOLATILE_STOCKS
|
||||
2008-10-06,BUY_QQQ_STOPLOSS,QQQ,577,30.158662796020508,17401.548433303833,20.69295843152461,102.82149171829224,VOLATILE_STOCKS
|
||||
2008-10-23,STOP_LOSS,ILMN,745,22.69455337524414,16907.442264556885,28.639221783063807,17010.263756275177,VOLATILE_STOCKS
|
||||
2008-10-23,BUY_QQQ_STOPLOSS,QQQ,640,26.378019332885742,16881.932373046875,28.639221783063807,128.331383228302,VOLATILE_STOCKS
|
||||
2008-10-24,STOP_LOSS,TMUS,852,20.552974700927734,17511.13444519043,26.196726523160056,17639.46582841873,VOLATILE_STOCKS
|
||||
2008-10-24,BUY_QQQ_STOPLOSS,QQQ,685,25.53017234802246,17488.168058395386,26.196726523160056,151.29777002334595,VOLATILE_STOCKS
|
||||
2009-05-05,BUY_GRADUAL,QQQ,1,30.3912410736084,30.3912410736084,75.86377868118474,120.90652894973755,QQQ_TRANSITION
|
||||
2009-05-06,BUY_GRADUAL,QQQ,1,30.39992904663086,30.39992904663086,82.3309806574607,90.50659990310669,QQQ_TRANSITION
|
||||
2009-05-07,BUY_GRADUAL,QQQ,1,29.688297271728516,29.688297271728516,77.63068795156485,60.818302631378174,QQQ_TRANSITION
|
||||
2009-05-08,BUY_GRADUAL,QQQ,1,29.705650329589844,29.705650329589844,75.32780647633614,31.11265230178833,QQQ_TRANSITION
|
||||
2010-05-27,SELL_GRADUAL,QQQ,596,40.003875732421875,23842.309936523438,33.580788922696,23873.422588825226,FEAR_TRANSITION
|
||||
2010-05-28,SELL_GRADUAL,QQQ,596,39.7684211730957,23701.97901916504,33.34027831701036,47575.401607990265,FEAR_TRANSITION
|
||||
2010-06-01,SELL_GRADUAL,QQQ,596,39.40214920043945,23483.680923461914,27.283331291968164,71059.08253145218,FEAR_TRANSITION
|
||||
2010-06-02,SELL_GRADUAL,QQQ,596,40.335304260253906,24039.841339111328,37.67628312195878,95098.9238705635,FEAR_TRANSITION
|
||||
2010-06-04,BUY_GRADUAL,SIRI,2679,8.87330436706543,23771.582399368286,36.8189871507287,71327.34147119522,GREED_TRANSITION
|
||||
2010-06-07,BUY_GRADUAL,NFLX,1524,15.59428596496582,23765.69181060791,35.18107991239285,47561.64966058731,GREED_TRANSITION
|
||||
2010-06-08,BUY_GRADUAL,TMUS,1776,13.38446044921875,23770.8017578125,33.88560765938214,23790.84790277481,GREED_TRANSITION
|
||||
2010-06-09,BUY_GRADUAL,LULU,1216,19.549999237060547,23772.799072265625,33.40896140370173,18.04883050918579,GREED_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,SIRI,669,13.309956550598145,8904.360932350159,79.52490444098007,8922.409762859344,QQQ_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,NFLX,381,23.974285125732422,9134.202632904053,79.52490444098007,18056.612395763397,QQQ_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,TMUS,444,18.357215881347656,8150.603851318359,79.52490444098007,26207.216247081757,QQQ_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,LULU,304,22.5,6840.0,79.52490444098007,33047.21624708176,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,SIRI,669,13.85322093963623,9267.804808616638,80.12015594534758,42315.021055698395,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,NFLX,381,24.014286041259766,9149.44298171997,80.12015594534758,51464.464037418365,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,TMUS,444,18.922300338745117,8401.501350402832,80.12015594534758,59865.9653878212,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,LULU,304,24.045000076293945,7309.680023193359,80.12015594534758,67175.64541101456,QQQ_TRANSITION
|
||||
2010-11-05,BUY_GRADUAL,QQQ,709,47.09733963012695,33392.01379776001,80.12015594534758,33783.63161325455,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,SIRI,669,14.034306526184082,9388.95106601715,78.02954261077275,43172.5826792717,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,NFLX,381,24.161428451538086,9205.50424003601,78.02954261077275,52378.08691930771,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,TMUS,444,19.713420867919922,8752.758865356445,78.02954261077275,61130.845784664154,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,LULU,304,24.774999618530273,7531.599884033203,78.02954261077275,68662.44566869736,QQQ_TRANSITION
|
||||
2010-11-08,BUY_GRADUAL,QQQ,708,47.158782958984375,33388.41833496094,78.02954261077275,35274.02733373642,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,SIRI,669,13.491044044494629,9025.508465766907,74.24305370136257,44299.53579950333,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,NFLX,381,24.351428985595703,9277.894443511963,74.24305370136257,53577.43024301529,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,TMUS,444,19.342077255249023,8587.882301330566,74.24305370136257,62165.312544345856,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,LULU,304,24.09000015258789,7323.360046386719,74.24305370136257,69488.67259073257,QQQ_TRANSITION
|
||||
2010-11-09,BUY_GRADUAL,QQQ,712,46.904296875,33395.859375,74.24305370136257,36092.813215732574,QQQ_TRANSITION
|
||||
2011-08-05,SELL_GRADUAL,QQQ,532,47.504486083984375,25272.386596679688,16.014420438739027,61365.19981241226,FEAR_TRANSITION
|
||||
2011-08-08,SELL_GRADUAL,QQQ,532,44.64522171020508,23751.2579498291,12.102638620949758,85116.45776224136,FEAR_TRANSITION
|
||||
2011-08-09,SELL_GRADUAL,QQQ,532,46.798492431640625,24896.797973632812,21.243367458738685,110013.25573587418,FEAR_TRANSITION
|
||||
2011-08-10,SELL_GRADUAL,QQQ,532,44.88348388671875,23878.013427734375,16.34997696820296,133891.26916360855,FEAR_TRANSITION
|
||||
2011-08-16,BUY_GRADUAL,AMD,5281,6.340000152587891,33481.54080581665,27.713133229401997,100409.7283577919,GREED_TRANSITION
|
||||
2011-08-17,BUY_GRADUAL,DXCM,11842,2.827500104904175,33483.25624227524,27.444352198857068,66926.47211551666,GREED_TRANSITION
|
||||
2011-08-18,BUY_GRADUAL,ILMN,730,45.81711959838867,33446.49730682373,21.352782610275447,33479.97480869293,GREED_TRANSITION
|
||||
2011-10-07,STOP_LOSS,ILMN,730,26.43968963623047,19300.973434448242,45.948970380647914,52780.948243141174,VOLATILE_STOCKS
|
||||
2011-10-07,BUY_QQQ_STOPLOSS,QQQ,403,47.80477523803711,19265.324420928955,45.948970380647914,33515.62382221222,VOLATILE_STOCKS
|
||||
2011-11-10,STOP_LOSS,DXCM,11842,1.7699999809265137,20960.339774131775,51.55040467666299,54475.963596343994,VOLATILE_STOCKS
|
||||
2011-11-10,BUY_QQQ_STOPLOSS,QQQ,417,50.20075988769531,20933.716873168945,51.55040467666299,33542.24672317505,VOLATILE_STOCKS
|
||||
2012-01-20,SELL_GRADUAL,AMD,1320,6.420000076293945,8474.400100708008,76.11690483789968,42016.64682388306,QQQ_TRANSITION
|
||||
2012-01-20,BUY_GRADUAL,QQQ,313,53.046531677246094,16603.564414978027,76.11690483789968,25413.08240890503,QQQ_TRANSITION
|
||||
2012-01-23,SELL_GRADUAL,AMD,1320,6.519999980926514,8606.399974822998,75.47387743828742,34019.48238372803,QQQ_TRANSITION
|
||||
2012-01-23,BUY_GRADUAL,QQQ,313,53.06429672241211,16609.12487411499,75.47387743828742,17410.357509613037,QQQ_TRANSITION
|
||||
2012-01-24,SELL_GRADUAL,AMD,1320,6.53000020980835,8619.600276947021,73.6603345892624,26029.95778656006,QQQ_TRANSITION
|
||||
2012-01-24,BUY_GRADUAL,QQQ,313,52.966651916503906,16578.562049865723,73.6603345892624,9451.395736694336,QQQ_TRANSITION
|
||||
2012-01-25,SELL_GRADUAL,AMD,1320,6.730000019073486,8883.600025177002,74.7347021654166,18334.995761871338,QQQ_TRANSITION
|
||||
2012-01-25,BUY_GRADUAL,QQQ,309,53.63228988647461,16572.377574920654,74.7347021654166,1762.6181869506836,QQQ_TRANSITION
|
||||
2012-05-21,SELL_GRADUAL,QQQ,517,55.57248306274414,28730.97374343872,33.89789007404509,30493.591930389404,FEAR_TRANSITION
|
||||
2012-05-22,SELL_GRADUAL,QQQ,517,55.51026153564453,28698.805213928223,34.48360680185137,59192.39714431763,FEAR_TRANSITION
|
||||
2012-05-23,SELL_GRADUAL,QQQ,517,55.616939544677734,28753.95774459839,33.07033492791181,87946.35488891602,FEAR_TRANSITION
|
||||
2012-05-24,SELL_GRADUAL,QQQ,517,55.252464294433594,28565.524040222168,32.19709993260843,116511.87892913818,FEAR_TRANSITION
|
||||
2012-05-29,BUY_GRADUAL,VRTX,504,57.79999923706055,29131.199615478516,39.29817121538365,87380.67931365967,GREED_TRANSITION
|
||||
2012-05-30,BUY_GRADUAL,NXPI,1509,19.306720733642578,29133.84158706665,32.69376088195683,58246.83772659302,GREED_TRANSITION
|
||||
2012-05-31,BUY_GRADUAL,REGN,215,135.27606201171875,29084.35333251953,34.05046977820416,29162.484394073486,GREED_TRANSITION
|
||||
2012-06-01,BUY_GRADUAL,MNST,2478,11.756667137145996,29133.02116584778,27.26748930164401,29.463228225708008,GREED_TRANSITION
|
||||
2012-07-20,STOP_LOSS,AMD,1,4.21999979019165,4.21999979019165,55.39674097276638,33.68322801589966,VOLATILE_STOCKS
|
||||
2012-10-22,STOP_LOSS,MNST,2478,7.62166690826416,18886.49059867859,47.57872339379883,18920.17382669449,VOLATILE_STOCKS
|
||||
2012-10-22,BUY_QQQ_STOPLOSS,QQQ,320,58.99560546875,18878.59375,47.57872339379883,41.580076694488525,VOLATILE_STOCKS
|
||||
2012-11-27,STOP_LOSS,VRTX,504,39.97999954223633,20149.91976928711,49.092795869626194,20191.499845981598,VOLATILE_STOCKS
|
||||
2012-11-27,BUY_QQQ_STOPLOSS,QQQ,347,58.04839324951172,20142.792457580566,49.092795869626194,48.707388401031494,VOLATILE_STOCKS
|
||||
2013-01-24,SELL_GRADUAL,NXPI,377,26.462675094604492,9976.428510665894,75.13424844525217,10025.135899066925,QQQ_TRANSITION
|
||||
2013-01-24,SELL_GRADUAL,REGN,53,172.66270446777344,9151.123336791992,75.13424844525217,19176.259235858917,QQQ_TRANSITION
|
||||
2013-01-25,SELL_GRADUAL,NXPI,377,26.98277473449707,10172.506074905396,76.59616542938397,29348.765310764313,QQQ_TRANSITION
|
||||
2013-01-25,SELL_GRADUAL,REGN,53,173.9990234375,9221.9482421875,76.59616542938397,38570.71355295181,QQQ_TRANSITION
|
||||
2013-01-25,BUY_GRADUAL,QQQ,323,60.20482635498047,19446.15891265869,76.59616542938397,19124.55464029312,QQQ_TRANSITION
|
||||
2013-01-28,SELL_GRADUAL,NXPI,377,27.350439071655273,10311.115530014038,75.72095442961731,29435.67017030716,QQQ_TRANSITION
|
||||
2013-01-28,SELL_GRADUAL,REGN,53,170.4288787841797,9032.730575561523,75.72095442961731,38468.40074586868,QQQ_TRANSITION
|
||||
2013-01-28,BUY_GRADUAL,QQQ,322,60.33960723876953,19429.35353088379,75.72095442961731,19039.047214984894,QQQ_TRANSITION
|
||||
2013-01-29,SELL_GRADUAL,NXPI,377,26.462675094604492,9976.428510665894,76.8305936279351,29015.475725650787,QQQ_TRANSITION
|
||||
2013-01-29,SELL_GRADUAL,REGN,53,174.47769165039062,9247.317657470703,76.8305936279351,38262.79338312149,QQQ_TRANSITION
|
||||
2013-01-29,BUY_GRADUAL,QQQ,322,60.34858703613281,19432.245025634766,76.8305936279351,18830.548357486725,QQQ_TRANSITION
|
||||
2015-08-25,SELL_GRADUAL,QQQ,409,90.95682525634766,37201.34152984619,18.64332792812587,56031.889887332916,FEAR_TRANSITION
|
||||
2015-08-26,SELL_GRADUAL,QQQ,409,95.53759002685547,39074.87432098389,30.238674126890754,95106.7642083168,FEAR_TRANSITION
|
||||
2015-08-27,SELL_GRADUAL,QQQ,409,97.9577865600586,40064.734703063965,36.72325111888732,135171.49891138077,FEAR_TRANSITION
|
||||
2015-08-28,SELL_GRADUAL,QQQ,409,97.93927001953125,40057.16143798828,36.806462475332836,175228.66034936905,FEAR_TRANSITION
|
||||
2015-09-01,BUY_GRADUAL,NFLX,418,105.79000091552734,44220.22038269043,29.162017163513145,131008.43996667862,GREED_TRANSITION
|
||||
2015-09-02,BUY_GRADUAL,NVDA,81954,0.5397700667381287,44236.3160494566,33.786594185558485,86772.12391722202,GREED_TRANSITION
|
||||
2015-09-03,BUY_GRADUAL,MU,2730,16.203489303588867,44235.52579879761,35.8957291289263,42536.598118424416,GREED_TRANSITION
|
||||
2016-01-15,STOP_LOSS,MU,2730,10.821861267089844,29543.681259155273,23.244721645233323,72080.27937757969,VOLATILE_STOCKS
|
||||
2016-01-15,BUY_QQQ_STOPLOSS,QQQ,314,94.02062225341797,29522.475387573242,23.244721645233323,42557.80399000645,VOLATILE_STOCKS
|
||||
2017-02-16,SELL_GRADUAL,NFLX,104,142.00999450683594,14769.039428710938,74.18422120605587,57326.843418717384,QQQ_TRANSITION
|
||||
2017-02-16,SELL_GRADUAL,NVDA,20488,2.6415488719940186,54120.05328941345,74.18422120605587,111446.89670813084,QQQ_TRANSITION
|
||||
2017-02-16,BUY_GRADUAL,QQQ,663,121.85171508789062,80787.68710327148,74.18422120605587,30659.209604859352,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NFLX,104,142.22000122070312,14790.880126953125,73.85576423075787,45450.08973181248,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NVDA,20488,2.641056776046753,54109.971227645874,73.85576423075787,99560.06095945835,QQQ_TRANSITION
|
||||
2017-02-17,BUY_GRADUAL,QQQ,660,122.37963104248047,80770.55648803711,73.85576423075787,18789.50447142124,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NFLX,104,142.60000610351562,14830.400634765625,76.26775225821572,33619.90510618687,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NVDA,20488,2.73563551902771,56047.70051383972,76.26775225821572,89667.60562002659,QQQ_TRANSITION
|
||||
2017-02-21,BUY_GRADUAL,QQQ,657,122.98302459716797,80799.84716033936,76.26775225821572,8867.758459687233,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NFLX,104,143.86000061035156,14961.440063476562,74.96778290840957,23829.198523163795,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NVDA,20488,2.7314422130584717,55961.78806114197,74.96778290840957,79790.98658430576,QQQ_TRANSITION
|
||||
2018-12-18,SELL_GRADUAL,QQQ,573,151.55323791503906,86840.00532531738,24.442533177764215,166630.99190962315,FEAR_TRANSITION
|
||||
2018-12-19,SELL_GRADUAL,QQQ,573,147.8318328857422,84707.64024353027,22.796729661345402,251338.63215315342,FEAR_TRANSITION
|
||||
2018-12-20,SELL_GRADUAL,QQQ,573,145.68890380859375,83479.74188232422,22.299659882587015,334818.37403547764,FEAR_TRANSITION
|
||||
2018-12-21,SELL_GRADUAL,QQQ,573,141.17352294921875,80892.42864990234,19.58576040567819,415710.80268538,FEAR_TRANSITION
|
||||
2018-12-27,BUY_GRADUAL,ZS,2598,40.16999816894531,104361.65524291992,27.938844950891582,311349.14744246006,GREED_TRANSITION
|
||||
2018-12-28,BUY_GRADUAL,AMD,5857,17.81999969482422,104371.73821258545,26.23355835507341,206977.4092298746,GREED_TRANSITION
|
||||
2018-12-31,BUY_GRADUAL,MDB,1246,83.73999786376953,104340.03733825684,30.089955926210273,102637.37189161777,GREED_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,ZS,649,64.98999786376953,42178.508613586426,74.73809260902496,144815.8805052042,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,AMD,1464,28.459999084472656,41665.43865966797,74.73809260902496,186481.31916487217,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,MDB,311,135.16000366210938,42034.761138916016,74.73809260902496,228516.08030378819,QQQ_TRANSITION
|
||||
2019-04-24,BUY_GRADUAL,QQQ,835,182.33738708496094,152251.71821594238,74.73809260902496,76264.3620878458,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,ZS,649,66.95999908447266,43457.039405822754,74.47201415715975,119721.40149366856,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,AMD,1464,27.65999984741211,40494.23977661133,74.47201415715975,160215.64127027988,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,MDB,311,137.66000366210938,42812.261138916016,74.47201415715975,203027.9024091959,QQQ_TRANSITION
|
||||
2019-04-25,BUY_GRADUAL,QQQ,832,183.07749938964844,152320.4794921875,74.47201415715975,50707.4229170084,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,ZS,649,66.94000244140625,43444.061584472656,74.04664446450204,94151.48450148106,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,AMD,1464,27.8799991607666,40816.318771362305,74.04664446450204,134967.80327284336,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,MDB,311,138.97999572753906,43222.77867126465,74.04664446450204,178190.581944108,QQQ_TRANSITION
|
||||
2019-04-26,BUY_GRADUAL,QQQ,831,183.2408905029297,152273.18000793457,74.04664446450204,25917.40193617344,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,ZS,649,68.19999694824219,44261.79801940918,74.33985266042214,70179.19995558262,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,AMD,1464,27.690000534057617,40538.16078186035,74.33985266042214,110717.36073744297,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,MDB,311,137.5,42762.5,74.33985266042214,153479.86073744297,QQQ_TRANSITION
|
||||
2019-04-29,BUY_GRADUAL,QQQ,830,183.5964813232422,152385.07949829102,74.33985266042214,1094.7812391519547,QQQ_TRANSITION
|
||||
2020-02-28,SELL_GRADUAL,QQQ,832,199.0699005126953,165626.1572265625,20.377945426333802,166720.93846571445,FEAR_TRANSITION
|
||||
2020-03-02,SELL_GRADUAL,QQQ,832,209.34254455566406,174172.9970703125,36.64935574118489,340893.93553602695,FEAR_TRANSITION
|
||||
2020-03-03,SELL_GRADUAL,QQQ,832,202.62953186035156,168587.7705078125,29.173017969864834,509481.70604383945,FEAR_TRANSITION
|
||||
2020-03-04,SELL_GRADUAL,QQQ,832,211.08370971679688,175621.646484375,37.762293269698624,685103.3525282145,FEAR_TRANSITION
|
||||
2020-03-06,BUY_GRADUAL,MRNA,5809,29.610000610351562,172004.49354553223,24.79777800648001,513098.8589826822,GREED_TRANSITION
|
||||
2020-03-09,BUY_GRADUAL,TSLA,4243,40.53333282470703,171982.93117523193,16.994433907313056,341115.9278074503,GREED_TRANSITION
|
||||
2020-03-10,BUY_GRADUAL,MRVL,7604,22.620569229125977,172006.80841827393,24.7215849676679,169109.11938917637,GREED_TRANSITION
|
||||
2020-03-18,STOP_LOSS,TSLA,4243,24.08133316040039,102177.09659957886,21.996186861615104,271286.2159887552,VOLATILE_STOCKS
|
||||
2020-03-18,BUY_QQQ_STOPLOSS,QQQ,598,170.8247833251953,102153.2204284668,21.996186861615104,169132.99556028843,VOLATILE_STOCKS
|
||||
2020-06-03,SELL_GRADUAL,MRNA,1452,59.88999938964844,86960.27911376953,78.64383713986213,256093.27467405796,QQQ_TRANSITION
|
||||
2020-06-03,SELL_GRADUAL,MRVL,1901,35.14421463012695,66809.15201187134,78.64383713986213,322902.4266859293,QQQ_TRANSITION
|
||||
2020-06-03,BUY_GRADUAL,QQQ,847,229.43759155273438,194333.64004516602,78.64383713986213,128568.78664076328,QQQ_TRANSITION
|
||||
2020-06-04,SELL_GRADUAL,MRNA,1452,60.59000015258789,87976.68022155762,79.05391554632061,216545.4668623209,QQQ_TRANSITION
|
||||
2020-06-04,SELL_GRADUAL,MRVL,1901,35.0758056640625,66679.10656738281,79.05391554632061,283224.5734297037,QQQ_TRANSITION
|
||||
2020-06-04,BUY_GRADUAL,QQQ,853,227.82846069335938,194337.67697143555,79.05391554632061,88886.89645826817,QQQ_TRANSITION
|
||||
2020-06-05,SELL_GRADUAL,MRNA,1452,58.189998626708984,84491.87800598145,83.9440139783205,173378.7744642496,QQQ_TRANSITION
|
||||
2020-06-05,SELL_GRADUAL,MRVL,1901,35.0758056640625,66679.10656738281,83.9440139783205,240057.88103163242,QQQ_TRANSITION
|
||||
2020-06-05,BUY_GRADUAL,QQQ,836,232.3456268310547,194240.94403076172,83.9440139783205,45816.937000870705,QQQ_TRANSITION
|
||||
2020-06-08,SELL_GRADUAL,MRNA,1452,59.099998474121094,85813.19778442383,83.25340152682092,131630.13478529453,QQQ_TRANSITION
|
||||
2020-06-08,SELL_GRADUAL,MRVL,1901,34.15713882446289,64932.720905303955,83.25340152682092,196562.8556905985,QQQ_TRANSITION
|
||||
2020-06-08,BUY_GRADUAL,QQQ,830,234.14869689941406,194343.41842651367,83.25340152682092,2219.437264084816,QQQ_TRANSITION
|
||||
2022-01-26,SELL_GRADUAL,QQQ,991,336.8142395019531,333782.91134643555,24.061477932967016,336002.34861052036,FEAR_TRANSITION
|
||||
2022-01-27,SELL_GRADUAL,QQQ,991,333.4222717285156,330421.471282959,23.19312861351907,666423.8198934793,FEAR_TRANSITION
|
||||
2022-01-28,SELL_GRADUAL,QQQ,991,343.8814697265625,340786.53649902344,32.47130624150118,1007210.3563925028,FEAR_TRANSITION
|
||||
2022-01-31,SELL_GRADUAL,QQQ,991,354.8782653808594,351684.36099243164,40.745889513626054,1358894.7173849344,FEAR_TRANSITION
|
||||
2022-02-02,BUY_GRADUAL,NFLX,793,429.4800109863281,340577.6487121582,46.50000935058783,1018317.0686727762,GREED_TRANSITION
|
||||
2022-02-03,BUY_GRADUAL,PDD,6184,55.130001068115234,340923.9266052246,42.57397684804427,677393.1420675516,GREED_TRANSITION
|
||||
2022-02-04,BUY_GRADUAL,WBD,11796,28.899999618530273,340904.3955001831,45.75812386485002,336488.7465673685,GREED_TRANSITION
|
||||
2022-03-10,STOP_LOSS,PDD,6184,35.7599983215332,221139.82962036133,34.075838839921104,557628.5761877298,VOLATILE_STOCKS
|
||||
2022-03-10,BUY_QQQ_STOPLOSS,QQQ,682,323.8135986328125,220840.87426757812,34.075838839921104,336787.7019201517,VOLATILE_STOCKS
|
||||
2022-04-26,STOP_LOSS,WBD,11796,19.829999923706055,233914.67910003662,29.605935383730476,570702.3810201883,VOLATILE_STOCKS
|
||||
2022-04-26,BUY_QQQ_STOPLOSS,QQQ,753,310.3849182128906,233719.84341430664,29.605935383730476,336982.5376058817,VOLATILE_STOCKS
|
||||
2022-08-16,SELL_GRADUAL,NFLX,198,245.69000244140625,48646.62048339844,75.89323394690028,385629.1580892801,QQQ_TRANSITION
|
||||
2022-08-16,BUY_GRADUAL,QQQ,413,325.8274841308594,134566.75094604492,75.89323394690028,251062.4071432352,QQQ_TRANSITION
|
||||
2022-08-17,SELL_GRADUAL,NFLX,198,241.14999389648438,47747.698791503906,71.95888891502631,298810.1059347391,QQQ_TRANSITION
|
||||
2022-08-17,BUY_GRADUAL,QQQ,418,322.1111145019531,134642.4458618164,71.95888891502631,164167.6600729227,QQQ_TRANSITION
|
||||
2022-08-18,SELL_GRADUAL,NFLX,198,245.1699981689453,48543.65963745117,72.7643774387154,212711.31971037388,QQQ_TRANSITION
|
||||
2022-08-18,BUY_GRADUAL,QQQ,417,322.8857727050781,134643.36721801758,72.7643774387154,78067.9524923563,QQQ_TRANSITION
|
||||
2022-08-19,SELL_GRADUAL,NFLX,198,241.16000366210938,47749.680725097656,68.48379396098062,125817.63321745396,QQQ_TRANSITION
|
||||
2022-09-26,SELL_GRADUAL,QQQ,671,269.52557373046875,180851.65997314453,25.412070998468074,306669.2931905985,FEAR_TRANSITION
|
||||
2022-09-27,SELL_GRADUAL,QQQ,671,269.6336364746094,180924.1700744629,26.22711815731541,487593.4632650614,FEAR_TRANSITION
|
||||
2022-09-28,SELL_GRADUAL,QQQ,671,274.9972229003906,184523.1365661621,33.21082990012799,672116.5998312235,FEAR_TRANSITION
|
||||
2022-09-29,SELL_GRADUAL,QQQ,671,267.0697021484375,179203.77014160156,29.27070352396588,851320.369972825,FEAR_TRANSITION
|
||||
2022-10-03,BUY_GRADUAL,BIIB,809,264.29998779296875,213818.69012451172,32.38063116058547,637501.6798483133,GREED_TRANSITION
|
||||
2022-10-04,BUY_GRADUAL,REGN,289,737.5012817382812,213137.87042236328,42.2918131346582,424363.80942595005,GREED_TRANSITION
|
||||
2022-10-05,BUY_GRADUAL,NFLX,903,236.72999572753906,213767.18614196777,41.52977712655799,210596.62328398228,GREED_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,REGN,73,780.97119140625,57010.89697265625,72.23030348546578,267607.5202566385,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,NFLX,226,365.8999938964844,82693.39862060547,72.23030348546578,350300.918877244,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,BIIB,202,283.6300048828125,57293.260986328125,72.23030348546578,407594.1798635721,QQQ_TRANSITION
|
||||
2023-02-03,BUY_GRADUAL,QQQ,825,301.49395751953125,248732.51495361328,72.23030348546578,158861.66490995884,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,REGN,73,778.7074584960938,56845.644470214844,65.34324140803145,215707.30938017368,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,NFLX,226,361.4800109863281,81694.48248291016,65.34324140803145,297401.79186308384,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,BIIB,202,288.2799987792969,58232.55975341797,65.34324140803145,355634.3516165018,QQQ_TRANSITION
|
||||
2023-02-06,BUY_GRADUAL,QQQ,832,298.9436340332031,248721.103515625,65.34324140803145,106913.24810087681,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,REGN,73,767.8175048828125,56050.67785644531,70.27852780807376,162963.92595732212,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,NFLX,226,362.95001220703125,82026.70275878906,70.27852780807376,244990.62871611118,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,BIIB,202,291.42999267578125,58868.85852050781,70.27852780807376,303859.487236619,QQQ_TRANSITION
|
||||
2023-02-07,BUY_GRADUAL,QQQ,815,305.1373596191406,248686.9480895996,70.27852780807376,55172.539147019386,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,REGN,73,747.5934448242188,54574.32147216797,64.43188468733032,109746.86061918736,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,NFLX,226,366.8299865722656,82903.57696533203,64.43188468733032,192650.4375845194,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,BIIB,202,285.45001220703125,57660.90246582031,64.43188468733032,250311.3400503397,QQQ_TRANSITION
|
||||
2023-02-08,BUY_GRADUAL,QQQ,830,299.7116394042969,248760.6607055664,64.43188468733032,1550.6793447732925,QQQ_TRANSITION
|
||||
2024-10-03,STOP_LOSS,BIIB,1,184.77999877929688,184.77999877929688,61.80497845428075,1735.4593435525894,QQQ_HOLD
|
||||
2025-04-07,SELL_GRADUAL,QQQ,825,423.2146911621094,349152.12020874023,24.106379703967942,350887.5795522928,FEAR_TRANSITION
|
||||
2025-04-08,SELL_GRADUAL,QQQ,825,415.59326171875,342864.44091796875,23.47897409359107,693752.0204702616,FEAR_TRANSITION
|
||||
2025-04-09,SELL_GRADUAL,QQQ,825,465.47723388671875,384018.71795654297,39.00858627592589,1077770.7384268045,FEAR_TRANSITION
|
||||
2025-04-10,SELL_GRADUAL,QQQ,825,445.6794738769531,367685.5659484863,33.96020602504672,1445456.3043752909,FEAR_TRANSITION
|
||||
2025-04-14,BUY_GRADUAL,MCHP,9386,38.58142852783203,362125.28816223145,37.444908145843534,1083331.0162130594,GREED_TRANSITION
|
||||
2025-04-15,BUY_GRADUAL,WBD,43896,8.25,362142.0,37.75161834264942,721189.0162130594,GREED_TRANSITION
|
||||
2025-04-16,STOP_LOSS,WBD,43896,7.920000076293945,347656.323348999,32.4554396374009,1068845.3395620584,GREED_TRANSITION
|
||||
2025-04-16,BUY_QQQ_STOPLOSS,QQQ,783,443.68170166015625,347402.77239990234,32.4554396374009,721442.5671621561,GREED_TRANSITION
|
||||
2025-04-16,BUY_GRADUAL,AMD,4101,88.29000091552734,362077.29375457764,32.4554396374009,359365.27340757847,GREED_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,AMD,1025,113.51000213623047,116347.75218963623,75.62799649436673,475713.0255972147,QQQ_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,MCHP,2346,60.33309555053711,141541.44216156006,75.62799649436673,617254.4677587748,QQQ_TRANSITION
|
||||
2025-05-20,BUY_GRADUAL,QQQ,672,519.6863403320312,349229.220703125,75.62799649436673,268025.24705564976,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,AMD,1025,112.05999755859375,114861.4974975586,68.96239147283873,382886.74455320835,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,MCHP,2346,58.79499816894531,137933.0657043457,68.96239147283873,520819.81025755405,QQQ_TRANSITION
|
||||
2025-05-21,BUY_GRADUAL,QQQ,682,512.4644165039062,349500.73205566406,68.96239147283873,171319.07820189,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,AMD,1025,110.70999908447266,113477.74906158447,66.69973135428862,284796.82726347446,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,MCHP,2346,58.04999923706055,136185.29821014404,66.69973135428862,420982.1254736185,QQQ_TRANSITION
|
||||
2025-05-22,BUY_GRADUAL,QQQ,680,513.4234008789062,349127.91259765625,66.69973135428862,71854.21287596226,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,AMD,1025,110.30999755859375,113067.7474975586,62.342179974993726,184921.96037352085,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,MCHP,2346,56.189998626708984,131821.73677825928,62.342179974993726,316743.6971517801,QQQ_TRANSITION
|
||||
|
204
backtest/reports/enhanced_trades_20250718_185722.csv
Normal file
204
backtest/reports/enhanced_trades_20250718_185722.csv
Normal file
@@ -0,0 +1,204 @@
|
||||
date,action,ticker,shares,price,value,fg_index,cnn_fear_greed,cash_after,total_assets,portfolio_state
|
||||
2008-01-09,SELL_GRADUAL,QQQ,609,41.368202209472656,25193.235145568848,26.344740247547747,26.344740247547747,25208.408485412598,100829.48212432861,FEAR_TRANSITION
|
||||
2008-01-10,SELL_GRADUAL,QQQ,609,41.428653717041016,25230.05011367798,32.93074277910004,32.93074277910004,50438.458599090576,100939.98748016357,FEAR_TRANSITION
|
||||
2008-01-11,SELL_GRADUAL,QQQ,609,40.617149353027344,24735.843955993652,28.176976271462404,28.176976271462404,75174.30255508423,99950.76366043091,FEAR_TRANSITION
|
||||
2008-01-14,SELL_GRADUAL,QQQ,609,41.32505798339844,25166.96031188965,30.536227836089562,30.536227836089562,100341.26286697388,100382.58792495728,FEAR_TRANSITION
|
||||
2008-01-16,BUY_GRADUAL,ILMN,745,33.63326644897461,25056.783504486084,27.300196841810212,27.300196841810212,75284.4793624878,100381.0167427063,GREED_TRANSITION
|
||||
2008-01-17,BUY_GRADUAL,TMUS,852,29.416748046875,25063.0693359375,20.374689776577714,20.374689776577714,50221.41002655029,99963.75773239136,GREED_TRANSITION
|
||||
2008-01-18,BUY_GRADUAL,DXCM,11274,2.2249999046325684,25084.648924827576,20.18843039588665,20.18843039588665,25136.761101722717,98656.10165023804,GREED_TRANSITION
|
||||
2008-01-22,BUY_GRADUAL,SBUX,3549,7.068207740783691,25085.06927204132,19.14782163420834,19.14782163420834,51.691829681396484,97151.9062590599,GREED_TRANSITION
|
||||
2008-02-20,STOP_LOSS,TMUS,852,24.76690101623535,21101.39966583252,53.87240876697988,53.87240876697988,21153.091495513916,94385.23314976692,VOLATILE_STOCKS
|
||||
2008-02-20,BUY_QQQ_STOPLOSS,QQQ,556,37.9323616027832,21090.39305114746,53.87240876697988,53.87240876697988,62.69844436645508,94385.23314976692,VOLATILE_STOCKS
|
||||
2008-02-28,STOP_LOSS,DXCM,11274,1.8849999904632568,21251.489892482758,50.39006293843006,50.39006293843006,21314.188336849213,94275.87118148804,VOLATILE_STOCKS
|
||||
2008-02-28,BUY_QQQ_STOPLOSS,QQQ,557,38.087764739990234,21214.88496017456,50.39006293843006,50.39006293843006,99.3033766746521,94275.87118148804,VOLATILE_STOCKS
|
||||
2008-04-25,STOP_LOSS,SBUX,3549,6.004380226135254,21309.545422554016,69.45714736367935,69.45714736367935,21408.84879922867,95417.57655572891,VOLATILE_STOCKS
|
||||
2008-04-25,BUY_QQQ_STOPLOSS,QQQ,523,40.73530578613281,21304.56492614746,69.45714736367935,69.45714736367935,104.28387308120728,95417.57655572891,VOLATILE_STOCKS
|
||||
2008-10-09,STOP_LOSS,ILMN,745,28.21011734008789,21016.53741836548,8.848037539825762,8.848037539825762,21120.821291446686,65760.3383011818,VOLATILE_STOCKS
|
||||
2008-10-09,BUY_QQQ_STOPLOSS,QQQ,770,27.269100189208984,20997.207145690918,8.848037539825762,8.848037539825762,123.61414575576782,65760.3383011818,VOLATILE_STOCKS
|
||||
2009-05-05,BUY_GRADUAL,QQQ,1,30.3912410736084,30.3912410736084,75.86377868118474,75.86377868118474,93.22290468215942,73275.33140993118,QQQ_TRANSITION
|
||||
2009-05-06,BUY_GRADUAL,QQQ,1,30.39992904663086,30.39992904663086,82.3309806574607,82.3309806574607,62.822975635528564,73296.25204896927,QQQ_TRANSITION
|
||||
2009-05-07,BUY_GRADUAL,QQQ,1,29.688297271728516,29.688297271728516,77.63068795156485,77.63068795156485,33.13467836380005,71581.93110322952,QQQ_TRANSITION
|
||||
2009-05-08,BUY_GRADUAL,QQQ,1,29.705650329589844,29.705650329589844,75.32780647633614,75.32780647633614,3.429028034210205,71623.75197267532,QQQ_TRANSITION
|
||||
2010-05-27,SELL_GRADUAL,QQQ,602,40.003875732421875,24082.33319091797,33.580788922696,33.580788922696,24085.76221895218,96452.77341890335,FEAR_TRANSITION
|
||||
2010-05-28,SELL_GRADUAL,QQQ,602,39.7684211730957,23940.589546203613,33.34027831701036,33.34027831701036,48026.35176515579,96026.8361210823,FEAR_TRANSITION
|
||||
2010-06-01,SELL_GRADUAL,QQQ,602,39.40214920043945,23720.09381866455,27.283331291968164,27.283331291968164,71746.44558382034,95584.74585008621,FEAR_TRANSITION
|
||||
2010-06-02,SELL_GRADUAL,QQQ,602,40.335304260253906,24281.85316467285,37.67628312195878,37.67628312195878,96028.2987484932,96149.30466127396,FEAR_TRANSITION
|
||||
2010-06-04,BUY_GRADUAL,SIRI,2705,8.87330436706543,24002.288312911987,36.8189871507287,36.8189871507287,72026.0104355812,96146.26974534988,GREED_TRANSITION
|
||||
2010-06-07,BUY_GRADUAL,NFLX,1539,15.59428596496582,23999.606100082397,35.18107991239285,35.18107991239285,48026.40433549881,95899.19834947586,GREED_TRANSITION
|
||||
2010-06-08,BUY_GRADUAL,TMUS,1793,13.38446044921875,23998.33758544922,33.88560765938214,33.88560765938214,24028.06675004959,95666.38539934158,GREED_TRANSITION
|
||||
2010-06-09,STOP_LOSS,TMUS,1793,13.38446044921875,23998.33758544922,33.40896140370173,33.40896140370173,48026.40433549881,97031.60623884201,GREED_TRANSITION
|
||||
2010-06-09,BUY_QQQ_STOPLOSS,QQQ,627,38.216064453125,23961.472412109375,33.40896140370173,33.40896140370173,24064.931923389435,97031.60623884201,GREED_TRANSITION
|
||||
2010-06-09,BUY_GRADUAL,LULU,1227,19.549999237060547,23987.84906387329,33.40896140370173,33.40896140370173,77.0828595161438,97031.60623884201,GREED_TRANSITION
|
||||
2010-08-30,STOP_LOSS,LULU,1227,15.949999809265137,19570.649765968323,31.110758231093467,31.110758231093467,19647.732625484467,94277.94799089432,VOLATILE_STOCKS
|
||||
2010-08-30,BUY_QQQ_STOPLOSS,QQQ,512,38.179931640625,19548.125,31.110758231093467,31.110758231093467,99.60762548446655,94277.94799089432,VOLATILE_STOCKS
|
||||
2010-11-04,SELL_GRADUAL,SIRI,676,13.309956550598145,8997.530628204346,79.52490444098007,79.52490444098007,9097.138253688812,126784.62676095963,QQQ_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,NFLX,384,23.974285125732422,9206.12548828125,79.52490444098007,79.52490444098007,18303.263741970062,126784.62676095963,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,SIRI,676,13.85322093963623,9364.777355194092,80.12015594534758,80.12015594534758,27668.041097164154,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,NFLX,384,24.014286041259766,9221.48583984375,80.12015594534758,80.12015594534758,36889.526937007904,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-05,BUY_GRADUAL,QQQ,404,47.09733963012695,19027.32521057129,80.12015594534758,80.12015594534758,17862.201726436615,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,SIRI,676,14.034306526184082,9487.19121170044,78.02954261077275,78.02954261077275,27349.392938137054,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,NFLX,384,24.161428451538086,9277.988525390625,78.02954261077275,78.02954261077275,36627.38146352768,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-08,BUY_GRADUAL,QQQ,404,47.158782958984375,19052.148315429688,78.02954261077275,78.02954261077275,17575.233148097992,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,SIRI,676,13.491044044494629,9119.94577407837,74.24305370136257,74.24305370136257,26695.17892217636,127596.0518898964,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,NFLX,384,24.351428985595703,9350.94873046875,74.24305370136257,74.24305370136257,36046.12765264511,127596.0518898964,QQQ_TRANSITION
|
||||
2010-11-09,BUY_GRADUAL,QQQ,406,46.904296875,19043.14453125,74.24305370136257,74.24305370136257,17002.98312139511,127596.0518898964,QQQ_TRANSITION
|
||||
2011-08-05,SELL_GRADUAL,QQQ,589,47.504486083984375,27980.142303466797,16.014420438739027,16.014420438739027,44983.12542486191,129043.9979929924,FEAR_TRANSITION
|
||||
2011-08-08,SELL_GRADUAL,QQQ,589,44.64522171020508,26296.03558731079,12.102638620949758,12.102638620949758,71279.1610121727,123983.30336236954,FEAR_TRANSITION
|
||||
2011-08-09,SELL_GRADUAL,QQQ,589,46.798492431640625,27564.312042236328,21.243367458738685,21.243367458738685,98843.47305440903,126525.99728345871,FEAR_TRANSITION
|
||||
2011-08-10,SELL_GRADUAL,QQQ,589,44.88348388671875,26436.372009277344,16.34997696820296,16.34997696820296,125279.84506368637,125395.11773633957,FEAR_TRANSITION
|
||||
2011-08-16,BUY_GRADUAL,AMD,4944,6.340000152587891,31344.96075439453,27.713133229401997,27.713133229401997,93934.88430929184,125399.58466482162,GREED_TRANSITION
|
||||
2011-08-17,BUY_GRADUAL,DXCM,11087,2.827500104904175,31348.493663072586,27.444352198857068,27.444352198857068,62586.39064621925,124407.95951032639,GREED_TRANSITION
|
||||
2011-08-18,BUY_GRADUAL,ILMN,684,45.81711959838867,31338.90980529785,21.352782610275447,21.352782610275447,31247.480840921402,121090.06735396385,GREED_TRANSITION
|
||||
2011-09-29,STOP_LOSS,AMD,4944,5.309999942779541,26252.63971710205,35.52057049214211,35.52057049214211,57500.12055802345,119987.04083824158,VOLATILE_STOCKS
|
||||
2011-09-29,BUY_QQQ_STOPLOSS,QQQ,551,47.63679122924805,26247.871967315674,35.52057049214211,35.52057049214211,31252.24859070778,119987.04083824158,VOLATILE_STOCKS
|
||||
2011-10-07,STOP_LOSS,ILMN,684,26.43968963623047,18084.74771118164,45.948970380647914,45.948970380647914,49336.99630188942,106507.84904646873,VOLATILE_STOCKS
|
||||
2011-10-07,BUY_QQQ_STOPLOSS,QQQ,378,47.80477523803711,18070.205039978027,45.948970380647914,45.948970380647914,31266.791261911392,106507.84904646873,VOLATILE_STOCKS
|
||||
2011-10-25,STOP_LOSS,NFLX,3,11.052857398986816,33.15857219696045,57.64810056650888,57.64810056650888,31299.949834108353,107460.6527273655,VOLATILE_STOCKS
|
||||
2011-11-03,STOP_LOSS,DXCM,11087,1.9674999713897705,21813.672182798386,63.392430604527135,63.392430604527135,53113.62201690674,100849.260140419,VOLATILE_STOCKS
|
||||
2011-11-03,BUY_QQQ_STOPLOSS,QQQ,424,51.36781311035156,21779.952758789062,63.392430604527135,63.392430604527135,31333.669258117676,100849.260140419,VOLATILE_STOCKS
|
||||
2012-01-20,BUY_GRADUAL,QQQ,147,53.046531677246094,7797.840156555176,76.11690483789968,76.11690483789968,23535.8291015625,103124.6408443451,QQQ_TRANSITION
|
||||
2012-01-23,BUY_GRADUAL,QQQ,147,53.06429672241211,7800.45161819458,75.47387743828742,75.47387743828742,15735.37748336792,103151.28841209412,QQQ_TRANSITION
|
||||
2012-01-24,BUY_GRADUAL,QQQ,147,52.966651916503906,7786.097831726074,73.6603345892624,73.6603345892624,7949.279651641846,102990.28632545471,QQQ_TRANSITION
|
||||
2012-01-25,BUY_GRADUAL,QQQ,146,53.63228988647461,7830.314323425293,74.7347021654166,74.7347021654166,118.96532821655273,104184.44084358215,QQQ_TRANSITION
|
||||
2012-05-21,SELL_GRADUAL,QQQ,485,55.57248306274414,26952.65428543091,33.89789007404509,33.89789007404509,27071.61961364746,107947.51016616821,FEAR_TRANSITION
|
||||
2012-05-22,SELL_GRADUAL,QQQ,485,55.51026153564453,26922.476844787598,34.48360680185137,34.48360680185137,53994.09645843506,107856.79675674438,FEAR_TRANSITION
|
||||
2012-05-23,SELL_GRADUAL,QQQ,485,55.616939544677734,26974.2156791687,33.07033492791181,33.07033492791181,80968.31213760376,107960.54605484009,FEAR_TRANSITION
|
||||
2012-05-24,SELL_GRADUAL,QQQ,485,55.252464294433594,26797.445182800293,32.19709993260843,32.19709993260843,107765.75732040405,107783.77555847168,FEAR_TRANSITION
|
||||
2012-05-29,BUY_GRADUAL,VRTX,466,57.79999923706055,26934.799644470215,39.29817121538365,39.29817121538365,80830.95767593384,107783.23229789734,GREED_TRANSITION
|
||||
2012-05-30,BUY_GRADUAL,NXPI,1395,19.306720733642578,26932.875423431396,32.69376088195683,32.69376088195683,53898.08225250244,108891.95061683655,GREED_TRANSITION
|
||||
2012-05-31,BUY_GRADUAL,REGN,199,135.27606201171875,26919.93634033203,34.05046977820416,34.05046977820416,26978.14591217041,108301.30829811096,GREED_TRANSITION
|
||||
2012-06-01,BUY_GRADUAL,MNST,2291,11.756667137145996,26934.524411201477,27.26748930164401,27.26748930164401,43.621500968933105,103624.71716690063,GREED_TRANSITION
|
||||
2012-06-13,STOP_LOSS,REGN,199,111.57158660888672,22202.745735168457,43.66172453295675,43.66172453295675,22246.36723613739,101613.35444641113,VOLATILE_STOCKS
|
||||
2012-06-13,BUY_QQQ_STOPLOSS,QQQ,401,55.23466491699219,22149.100631713867,43.66172453295675,43.66172453295675,97.26660442352295,101613.35444641113,VOLATILE_STOCKS
|
||||
2012-07-24,STOP_LOSS,VRTX,466,48.369998931884766,22540.4195022583,50.83486055819301,50.83486055819301,22637.686106681824,98436.31856536865,VOLATILE_STOCKS
|
||||
2012-07-24,BUY_QQQ_STOPLOSS,QQQ,401,56.101200103759766,22496.581241607666,50.83486055819301,50.83486055819301,141.10486507415771,98436.31856536865,VOLATILE_STOCKS
|
||||
2012-08-10,STOP_LOSS,MNST,2291,9.045000076293945,20722.09517478943,62.38576286447885,62.38576286447885,20863.200039863586,99013.82264232635,VOLATILE_STOCKS
|
||||
2012-08-10,BUY_QQQ_STOPLOSS,QQQ,347,59.57632827758789,20672.985912322998,62.38576286447885,62.38576286447885,190.21412754058838,99013.82264232635,VOLATILE_STOCKS
|
||||
2013-01-24,SELL_GRADUAL,NXPI,348,26.462675094604492,9209.010932922363,75.13424844525217,75.13424844525217,9399.225060462952,105958.42475414276,QQQ_TRANSITION
|
||||
2013-01-24,BUY_GRADUAL,QQQ,154,59.8992919921875,9224.490966796875,75.13424844525217,75.13424844525217,174.73409366607666,105958.42475414276,QQQ_TRANSITION
|
||||
2013-01-25,SELL_GRADUAL,NXPI,348,26.98277473449707,9390.00560760498,76.59616542938397,76.59616542938397,9564.739701271057,106901.63360309601,QQQ_TRANSITION
|
||||
2013-01-25,BUY_GRADUAL,QQQ,154,60.20482635498047,9271.543258666992,76.59616542938397,76.59616542938397,293.19644260406494,106901.63360309601,QQQ_TRANSITION
|
||||
2013-01-28,SELL_GRADUAL,NXPI,348,27.350439071655273,9517.952796936035,75.72095442961731,75.72095442961731,9811.1492395401,107355.00672245026,QQQ_TRANSITION
|
||||
2013-01-28,BUY_GRADUAL,QQQ,153,60.33960723876953,9231.959907531738,75.72095442961731,75.72095442961731,579.1893320083618,107355.00672245026,QQQ_TRANSITION
|
||||
2013-01-29,SELL_GRADUAL,NXPI,348,26.462675094604492,9209.010932922363,76.8305936279351,76.8305936279351,9788.200264930725,107057.6746263504,QQQ_TRANSITION
|
||||
2013-01-29,BUY_GRADUAL,QQQ,153,60.34858703613281,9233.33381652832,76.8305936279351,76.8305936279351,554.8664484024048,107057.6746263504,QQQ_TRANSITION
|
||||
2015-08-25,SELL_GRADUAL,QQQ,440,90.95682525634766,40021.00311279297,18.64332792812587,18.64332792812587,40575.86956119537,161162.6973810196,FEAR_TRANSITION
|
||||
2015-08-26,SELL_GRADUAL,QQQ,440,95.53759002685547,42036.539611816406,30.238674126890754,30.238674126890754,82612.40917301178,167235.12405109406,FEAR_TRANSITION
|
||||
2015-08-27,SELL_GRADUAL,QQQ,440,97.9577865600586,43101.42608642578,36.72325111888732,36.72325111888732,125713.83525943756,169377.16119861603,FEAR_TRANSITION
|
||||
2015-08-28,SELL_GRADUAL,QQQ,440,97.93927001953125,43093.27880859375,36.806462475332836,36.806462475332836,168807.1140680313,169369.56935214996,FEAR_TRANSITION
|
||||
2015-09-01,BUY_GRADUAL,NFLX,399,105.79000091552734,42210.21036529541,29.162017163513145,29.162017163513145,126596.9037027359,169343.05567264557,GREED_TRANSITION
|
||||
2015-09-02,BUY_GRADUAL,NVDA,78306,0.5397700667381287,42267.2348459959,33.786594185558485,33.786594185558485,84329.66885674,169220.09294605255,GREED_TRANSITION
|
||||
2015-09-03,BUY_GRADUAL,MU,2608,16.203489303588867,42258.700103759766,35.8957291289263,35.8957291289263,42070.96875298023,167587.2710660696,GREED_TRANSITION
|
||||
2015-09-28,STOP_LOSS,MU,2608,13.732434272766113,35814.18858337402,29.287423364584594,29.287423364584594,77885.15733635426,162450.1579028368,VOLATILE_STOCKS
|
||||
2015-09-28,BUY_QQQ_STOPLOSS,QQQ,385,92.94425964355469,35783.539962768555,29.287423364584594,29.287423364584594,42101.6173735857,162450.1579028368,VOLATILE_STOCKS
|
||||
2017-02-16,SELL_GRADUAL,NFLX,99,142.00999450683594,14058.989456176758,74.18422120605587,74.18422120605587,56160.60682976246,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-16,SELL_GRADUAL,NVDA,19576,2.6415488719940186,51710.96071815491,74.18422120605587,74.18422120605587,107871.56754791737,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-16,BUY_GRADUAL,QQQ,634,121.85171508789062,77253.98736572266,74.18422120605587,74.18422120605587,30617.58018219471,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NFLX,99,142.22000122070312,14079.78012084961,73.85576423075787,73.85576423075787,44697.36030304432,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NVDA,19576,2.641056776046753,51701.327447891235,73.85576423075787,73.85576423075787,96398.68775093555,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-17,BUY_GRADUAL,QQQ,632,122.37963104248047,77343.92681884766,73.85576423075787,73.85576423075787,19054.7609320879,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NFLX,99,142.60000610351562,14117.400604248047,76.26775225821572,76.26775225821572,33172.161536335945,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NVDA,19576,2.73563551902771,53552.80092048645,76.26775225821572,76.26775225821572,86724.9624568224,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-21,BUY_GRADUAL,QQQ,628,122.98302459716797,77233.33944702148,76.26775225821572,76.26775225821572,9491.623009800911,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NFLX,99,143.86000061035156,14242.140060424805,74.96778290840957,74.96778290840957,23733.763070225716,358720.1136442423,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NVDA,19576,2.7314422130584717,53470.71276283264,74.96778290840957,74.96778290840957,77204.47583305836,358720.1136442423,QQQ_TRANSITION
|
||||
2018-12-18,SELL_GRADUAL,QQQ,570,151.55323791503906,86385.34561157227,24.442533177764215,24.442533177764215,163589.82144463062,424134.49860584736,FEAR_TRANSITION
|
||||
2018-12-19,SELL_GRADUAL,QQQ,570,147.8318328857422,84264.14474487305,22.796729661345402,22.796729661345402,247853.96618950367,417733.8956876993,FEAR_TRANSITION
|
||||
2018-12-20,SELL_GRADUAL,QQQ,570,145.68890380859375,83042.67517089844,22.299659882587015,22.299659882587015,330896.6413604021,415268.4574147463,FEAR_TRANSITION
|
||||
2018-12-21,SELL_GRADUAL,QQQ,570,141.17352294921875,80468.90808105469,19.58576040567819,19.58576040567819,411365.5494414568,412635.6761728525,FEAR_TRANSITION
|
||||
2018-12-27,BUY_GRADUAL,ZS,2566,40.16999816894531,103076.21530151367,27.938844950891582,27.938844950891582,308289.3341399431,412683.14164316654,GREED_TRANSITION
|
||||
2018-12-28,BUY_GRADUAL,AMD,5785,17.81999969482422,103088.6982345581,26.23355835507341,26.23355835507341,205200.63590538502,411732.7498089075,GREED_TRANSITION
|
||||
2018-12-31,BUY_GRADUAL,MDB,1231,83.73999786376953,103083.9373703003,30.089955926210273,30.089955926210273,102116.69853508472,413961.4327007532,GREED_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,ZS,641,64.98999786376953,41658.58863067627,74.73809260902496,74.73809260902496,143775.287165761,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,AMD,1446,28.459999084472656,41153.15867614746,74.73809260902496,74.73809260902496,184928.44584190845,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,MDB,307,135.16000366210938,41494.12112426758,74.73809260902496,74.73809260902496,226422.56696617603,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,BUY_GRADUAL,QQQ,825,182.33738708496094,150428.34434509277,74.73809260902496,74.73809260902496,75994.22262108326,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,ZS,641,66.95999908447266,42921.35941314697,74.47201415715975,74.47201415715975,118915.58203423023,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,AMD,1446,27.65999984741211,39996.35977935791,74.47201415715975,74.47201415715975,158911.94181358814,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,MDB,307,137.66000366210938,42261.62112426758,74.47201415715975,74.47201415715975,201173.56293785572,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,BUY_GRADUAL,QQQ,822,183.07749938964844,150489.70449829102,74.47201415715975,74.47201415715975,50683.858439564705,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,ZS,641,66.94000244140625,42908.541564941406,74.04664446450204,74.04664446450204,93592.40000450611,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,AMD,1446,27.8799991607666,40314.478786468506,74.04664446450204,74.04664446450204,133906.87879097462,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,MDB,307,138.97999572753906,42666.85868835449,74.04664446450204,74.04664446450204,176573.7374793291,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,BUY_GRADUAL,QQQ,821,183.2408905029297,150440.77110290527,74.04664446450204,74.04664446450204,26132.966376423836,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,ZS,641,68.19999694824219,43716.19804382324,74.33985266042214,74.33985266042214,69849.16442024708,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,AMD,1446,27.690000534057617,40039.740772247314,74.33985266042214,74.33985266042214,109888.90519249439,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,MDB,307,137.5,42212.5,74.33985266042214,74.33985266042214,152101.4051924944,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,BUY_GRADUAL,QQQ,820,183.5964813232422,150549.1146850586,74.33985266042214,74.33985266042214,1552.2905074357986,607605.7671710253,QQQ_TRANSITION
|
||||
2020-02-28,SELL_GRADUAL,QQQ,822,199.0699005126953,163635.45822143555,20.377945426333802,20.377945426333802,165187.74872887135,658590.0816584826,FEAR_TRANSITION
|
||||
2020-03-02,SELL_GRADUAL,QQQ,822,209.34254455566406,172079.57162475586,36.64935574118489,36.64935574118489,337267.3203536272,684011.7751408815,FEAR_TRANSITION
|
||||
2020-03-03,SELL_GRADUAL,QQQ,822,202.62953186035156,166561.47518920898,29.173017969864834,29.173017969864834,503828.7955428362,672909.4515925646,FEAR_TRANSITION
|
||||
2020-03-04,SELL_GRADUAL,QQQ,822,211.08370971679688,173510.80938720703,37.762293269698624,37.762293269698624,677339.6049300432,679956.120731473,FEAR_TRANSITION
|
||||
2020-03-06,BUY_GRADUAL,MRNA,5736,29.610000610351562,169842.96350097656,24.79777800648001,24.79777800648001,507496.64142906666,679825.6721946001,GREED_TRANSITION
|
||||
2020-03-09,STOP_LOSS,MRNA,5736,24.290000915527344,139327.44525146484,16.994433907313056,16.994433907313056,646824.0866805315,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-09,BUY_QQQ_STOPLOSS,QQQ,744,187.23983764648438,139306.43920898438,16.994433907313056,16.994433907313056,507517.6474715471,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-09,BUY_GRADUAL,TSLA,4190,40.53333282470703,169834.66453552246,16.994433907313056,16.994433907313056,337682.98293602467,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-10,BUY_GRADUAL,MRVL,7509,22.620569229125977,169857.85434150696,24.7215849676679,24.7215849676679,167825.1285945177,667229.5989590883,GREED_TRANSITION
|
||||
2020-03-12,STOP_LOSS,MRVL,7509,19.063262939453125,143146.04141235352,17.297952141169375,17.297952141169375,310971.1700068712,597219.0562878847,VOLATILE_STOCKS
|
||||
2020-03-12,BUY_QQQ_STOPLOSS,QQQ,834,171.52120971679688,143048.6889038086,17.297952141169375,17.297952141169375,167922.48110306263,597219.0562878847,VOLATILE_STOCKS
|
||||
2020-03-16,STOP_LOSS,TSLA,4190,29.67133331298828,124322.8865814209,19.126240915184,19.126240915184,292245.3676844835,552585.3837367296,VOLATILE_STOCKS
|
||||
2020-03-16,BUY_QQQ_STOPLOSS,QQQ,759,163.7635040283203,124296.49955749512,19.126240915184,19.126240915184,167948.8681269884,552585.3837367296,VOLATILE_STOCKS
|
||||
2020-06-03,BUY_GRADUAL,QQQ,185,229.43759155273438,42445.95443725586,78.64383713986213,78.64383713986213,125502.91368973255,707212.8291083574,QQQ_TRANSITION
|
||||
2020-06-04,BUY_GRADUAL,QQQ,187,227.82846069335938,42603.9221496582,79.05391554632061,79.05391554632061,82898.99154007435,703082.4960223436,QQQ_TRANSITION
|
||||
2020-06-05,BUY_GRADUAL,QQQ,183,232.3456268310547,42519.24971008301,83.9440139783205,83.9440139783205,40379.74182999134,715283.7573214769,QQQ_TRANSITION
|
||||
2022-01-26,SELL_GRADUAL,QQQ,723,336.8142395019531,243516.6951599121,24.061477932967016,24.061477932967016,283896.43698990345,1018472.5361949205,FEAR_TRANSITION
|
||||
2022-01-27,SELL_GRADUAL,QQQ,723,333.4222717285156,241064.3024597168,23.19312861351907,23.19312861351907,524960.7394496202,1011148.2586299181,FEAR_TRANSITION
|
||||
2022-01-28,SELL_GRADUAL,QQQ,723,343.8814697265625,248626.3026123047,32.47130624150118,32.47130624150118,773587.0420619249,1026391.1896373034,FEAR_TRANSITION
|
||||
2022-01-31,SELL_GRADUAL,QQQ,723,354.8782653808594,256576.98587036133,40.745889513626054,40.745889513626054,1030164.0279322863,1034683.9514399767,FEAR_TRANSITION
|
||||
2022-02-02,BUY_GRADUAL,NFLX,601,429.4800109863281,258117.4866027832,46.50000935058783,46.50000935058783,772046.5413295031,1034707.5882998705,GREED_TRANSITION
|
||||
2022-02-03,BUY_GRADUAL,PDD,4689,55.130001068115234,258504.57500839233,42.57397684804427,42.57397684804427,513541.9663211107,1020142.6742678881,GREED_TRANSITION
|
||||
2022-02-04,BUY_GRADUAL,WBD,8945,28.899999618530273,258510.4965877533,45.75812386485002,45.75812386485002,255031.46973335743,1026385.4142123461,GREED_TRANSITION
|
||||
2022-03-03,STOP_LOSS,PDD,4689,45.220001220703125,212036.58572387695,38.78432972132524,38.78432972132524,467068.0554572344,948795.3329497576,VOLATILE_STOCKS
|
||||
2022-03-03,BUY_QQQ_STOPLOSS,QQQ,633,334.55621337890625,211774.08306884766,38.78432972132524,38.78432972132524,255293.97238838673,948795.3329497576,VOLATILE_STOCKS
|
||||
2022-03-11,STOP_LOSS,WBD,8945,23.989999771118164,214590.54795265198,30.553866333660586,30.553866333660586,469884.5203410387,878854.3637820482,VOLATILE_STOCKS
|
||||
2022-03-11,BUY_QQQ_STOPLOSS,QQQ,676,317.09814453125,214358.345703125,30.553866333660586,30.553866333660586,255526.1746379137,878854.3637820482,VOLATILE_STOCKS
|
||||
2022-08-16,SELL_GRADUAL,NFLX,151,245.69000244140625,37099.190368652344,75.89323394690028,75.89323394690028,292625.36500656605,833290.0493594408,QQQ_TRANSITION
|
||||
2022-08-16,BUY_GRADUAL,QQQ,313,325.8274841308594,101984.00253295898,75.89323394690028,75.89323394690028,190641.36247360706,833290.0493594408,QQQ_TRANSITION
|
||||
2022-08-17,SELL_GRADUAL,NFLX,151,241.14999389648438,36413.64907836914,71.95888891502631,71.95888891502631,227055.0115519762,825131.600541234,QQQ_TRANSITION
|
||||
2022-08-17,BUY_GRADUAL,QQQ,316,322.1111145019531,101787.11218261719,71.95888891502631,71.95888891502631,125267.89936935902,825131.600541234,QQQ_TRANSITION
|
||||
2022-08-18,SELL_GRADUAL,NFLX,151,245.1699981689453,37020.66972351074,72.7643774387154,72.7643774387154,162288.56909286976,827835.9035960436,QQQ_TRANSITION
|
||||
2022-08-18,BUY_GRADUAL,QQQ,316,322.8857727050781,102031.90417480469,72.7643774387154,72.7643774387154,60256.66491806507,827835.9035960436,QQQ_TRANSITION
|
||||
2022-08-19,SELL_GRADUAL,NFLX,151,241.16000366210938,36415.160552978516,68.48379396098062,68.48379396098062,96671.82547104359,812946.4563647509,QQQ_TRANSITION
|
||||
2022-09-26,SELL_GRADUAL,QQQ,564,269.52557373046875,152012.42358398438,25.412070998468074,25.412070998468074,248684.24905502796,706188.6064368486,FEAR_TRANSITION
|
||||
2022-09-27,SELL_GRADUAL,QQQ,564,269.6336364746094,152073.3709716797,26.22711815731541,26.22711815731541,400757.62002670765,706398.3756018877,FEAR_TRANSITION
|
||||
2022-09-28,SELL_GRADUAL,QQQ,564,274.9972229003906,155098.4337158203,33.21082990012799,33.21082990012799,555856.053742528,712491.662078023,FEAR_TRANSITION
|
||||
2022-09-29,SELL_GRADUAL,QQQ,564,267.0697021484375,150627.31201171875,29.27070352396588,29.27070352396588,706483.3657542467,707972.9652472734,FEAR_TRANSITION
|
||||
2022-10-03,BUY_GRADUAL,BIIB,669,264.29998779296875,176816.6918334961,32.38063116058547,32.38063116058547,529666.6739207506,707985.9719649553,GREED_TRANSITION
|
||||
2022-10-04,BUY_GRADUAL,REGN,239,737.5012817382812,176262.80633544922,42.2918131346582,42.2918131346582,353403.8675853014,710158.7622882128,GREED_TRANSITION
|
||||
2022-10-05,BUY_GRADUAL,NFLX,747,236.72999572753906,176837.30680847168,41.52977712655799,41.52977712655799,176566.56077682972,707777.2871772051,GREED_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,BIIB,167,283.6300048828125,47366.21081542969,72.23030348546578,72.23030348546578,223932.7715922594,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,REGN,59,780.97119140625,46077.30029296875,72.23030348546578,72.23030348546578,270010.07188522816,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,NFLX,186,365.8999938964844,68057.3988647461,72.23030348546578,72.23030348546578,338067.47074997425,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,BUY_GRADUAL,QQQ,683,301.49395751953125,205920.37298583984,72.23030348546578,72.23030348546578,132147.0977641344,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,BIIB,167,288.2799987792969,48142.75979614258,65.34324140803145,65.34324140803145,180289.85756027699,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,REGN,59,778.7074584960938,45943.74005126953,65.34324140803145,65.34324140803145,226233.59761154652,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,NFLX,186,361.4800109863281,67235.28204345703,65.34324140803145,65.34324140803145,293468.87965500355,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,BUY_GRADUAL,QQQ,688,298.9436340332031,205673.22021484375,65.34324140803145,65.34324140803145,87795.6594401598,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,BIIB,167,291.42999267578125,48668.80877685547,70.27852780807376,70.27852780807376,136464.46821701527,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,REGN,59,767.8175048828125,45301.23278808594,70.27852780807376,70.27852780807376,181765.7010051012,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,NFLX,186,362.95001220703125,67508.70227050781,70.27852780807376,70.27852780807376,249274.40327560902,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,BUY_GRADUAL,QQQ,674,305.1373596191406,205662.58038330078,70.27852780807376,70.27852780807376,43611.822892308235,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,BIIB,167,285.45001220703125,47670.15203857422,64.43188468733032,64.43188468733032,91281.97493088245,821817.0054217577,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,REGN,59,747.5934448242188,44108.013244628906,64.43188468733032,64.43188468733032,135389.98817551136,821817.0054217577,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,NFLX,186,366.8299865722656,68230.3775024414,64.43188468733032,64.43188468733032,203620.36567795277,821817.0054217577,QQQ_TRANSITION
|
||||
2023-11-09,STOP_LOSS,BIIB,1,224.64999389648438,224.64999389648438,54.383852658550936,54.383852658550936,203845.01567184925,958229.0677386522,QQQ_HOLD
|
||||
2025-04-07,SELL_GRADUAL,QQQ,511,423.2146911621094,216262.7071838379,24.106379703967942,24.106379703967942,420107.72285568714,1075227.2145739794,FEAR_TRANSITION
|
||||
2025-04-08,SELL_GRADUAL,QQQ,511,415.59326171875,212368.15673828125,23.47897409359107,23.47897409359107,632475.8795939684,1063446.8414145708,FEAR_TRANSITION
|
||||
2025-04-09,SELL_GRADUAL,QQQ,511,465.47723388671875,237858.86651611328,39.00858627592589,39.00858627592589,870334.7461100817,1115042.5140486956,FEAR_TRANSITION
|
||||
2025-04-10,SELL_GRADUAL,QQQ,511,445.6794738769531,227742.21115112305,33.96020602504672,33.96020602504672,1098076.9572612047,1104615.0388365984,FEAR_TRANSITION
|
||||
2025-04-14,BUY_GRADUAL,MCHP,7155,38.58142852783203,276050.1211166382,37.444908145843534,37.444908145843534,822026.8361445665,1104757.0596286058,GREED_TRANSITION
|
||||
2025-04-15,BUY_GRADUAL,WBD,33461,8.25,276053.25,37.75161834264942,37.75161834264942,545973.5861445665,1103806.8776408434,GREED_TRANSITION
|
||||
2025-04-16,STOP_LOSS,WBD,33461,7.920000076293945,265011.1225528717,32.4554396374009,32.4554396374009,810984.7086974382,1087112.121976018,GREED_TRANSITION
|
||||
2025-04-16,BUY_QQQ_STOPLOSS,QQQ,597,443.68170166015625,264877.9758911133,32.4554396374009,32.4554396374009,546106.732806325,1087112.121976018,GREED_TRANSITION
|
||||
2025-04-16,BUY_GRADUAL,AMD,3126,88.29000091552734,275994.5428619385,32.4554396374009,32.4554396374009,270112.1899443865,1087112.121976018,GREED_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,AMD,781,113.51000213623047,88651.311668396,75.62799649436673,75.62799649436673,358763.5016127825,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,MCHP,1788,60.33309555053711,107875.57484436035,75.62799649436673,75.62799649436673,466639.07645714283,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-20,BUY_GRADUAL,QQQ,512,519.6863403320312,266079.40625,75.62799649436673,75.62799649436673,200559.67020714283,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,AMD,781,112.05999755859375,87518.85809326172,68.96239147283873,68.96239147283873,288078.52830040455,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,MCHP,1788,58.79499816894531,105125.45672607422,68.96239147283873,68.96239147283873,393203.98502647877,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-21,BUY_GRADUAL,QQQ,520,512.4644165039062,266481.49658203125,68.96239147283873,68.96239147283873,126722.48844444752,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,AMD,781,110.70999908447266,86464.50928497314,66.69973135428862,66.69973135428862,213186.99772942066,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,MCHP,1788,58.04999923706055,103793.39863586426,66.69973135428862,66.69973135428862,316980.3963652849,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-22,BUY_GRADUAL,QQQ,519,513.4234008789062,266466.74505615234,66.69973135428862,66.69973135428862,50513.651309132576,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,AMD,781,110.30999755859375,86152.10809326172,62.342179974993726,62.342179974993726,136665.7594023943,1338007.1326247454,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,MCHP,1788,56.189998626708984,100467.71754455566,62.342179974993726,62.342179974993726,237133.47694694996,1338007.1326247454,QQQ_TRANSITION
|
||||
|
204
backtest/reports/enhanced_trades_20250718_190932.csv
Normal file
204
backtest/reports/enhanced_trades_20250718_190932.csv
Normal file
@@ -0,0 +1,204 @@
|
||||
date,action,ticker,shares,price,value,fg_index,cnn_fear_greed,cash_after,total_assets,portfolio_state
|
||||
2008-01-09,SELL_GRADUAL,QQQ,609,41.368202209472656,25193.235145568848,26.344740247547747,26.344740247547747,25208.408485412598,100829.48212432861,FEAR_TRANSITION
|
||||
2008-01-10,SELL_GRADUAL,QQQ,609,41.428653717041016,25230.05011367798,32.93074277910004,32.93074277910004,50438.458599090576,100939.98748016357,FEAR_TRANSITION
|
||||
2008-01-11,SELL_GRADUAL,QQQ,609,40.617149353027344,24735.843955993652,28.176976271462404,28.176976271462404,75174.30255508423,99950.76366043091,FEAR_TRANSITION
|
||||
2008-01-14,SELL_GRADUAL,QQQ,609,41.32505798339844,25166.96031188965,30.536227836089562,30.536227836089562,100341.26286697388,100382.58792495728,FEAR_TRANSITION
|
||||
2008-01-16,BUY_GRADUAL,ILMN,745,33.63326644897461,25056.783504486084,27.300196841810212,27.300196841810212,75284.4793624878,100381.0167427063,GREED_TRANSITION
|
||||
2008-01-17,BUY_GRADUAL,TMUS,852,29.416748046875,25063.0693359375,20.374689776577714,20.374689776577714,50221.41002655029,99963.75773239136,GREED_TRANSITION
|
||||
2008-01-18,BUY_GRADUAL,DXCM,11274,2.2249999046325684,25084.648924827576,20.18843039588665,20.18843039588665,25136.761101722717,98656.10165023804,GREED_TRANSITION
|
||||
2008-01-22,BUY_GRADUAL,SBUX,3549,7.068207740783691,25085.06927204132,19.14782163420834,19.14782163420834,51.691829681396484,97151.9062590599,GREED_TRANSITION
|
||||
2008-02-20,STOP_LOSS,TMUS,852,24.76690101623535,21101.39966583252,53.87240876697988,53.87240876697988,21153.091495513916,94385.23314976692,VOLATILE_STOCKS
|
||||
2008-02-20,BUY_QQQ_STOPLOSS,QQQ,556,37.9323616027832,21090.39305114746,53.87240876697988,53.87240876697988,62.69844436645508,94385.23314976692,VOLATILE_STOCKS
|
||||
2008-02-28,STOP_LOSS,DXCM,11274,1.8849999904632568,21251.489892482758,50.39006293843006,50.39006293843006,21314.188336849213,94275.87118148804,VOLATILE_STOCKS
|
||||
2008-02-28,BUY_QQQ_STOPLOSS,QQQ,557,38.087764739990234,21214.88496017456,50.39006293843006,50.39006293843006,99.3033766746521,94275.87118148804,VOLATILE_STOCKS
|
||||
2008-04-25,STOP_LOSS,SBUX,3549,6.004380226135254,21309.545422554016,69.45714736367935,69.45714736367935,21408.84879922867,95417.57655572891,VOLATILE_STOCKS
|
||||
2008-04-25,BUY_QQQ_STOPLOSS,QQQ,523,40.73530578613281,21304.56492614746,69.45714736367935,69.45714736367935,104.28387308120728,95417.57655572891,VOLATILE_STOCKS
|
||||
2008-10-09,STOP_LOSS,ILMN,745,28.21011734008789,21016.53741836548,8.848037539825762,8.848037539825762,21120.821291446686,65760.3383011818,VOLATILE_STOCKS
|
||||
2008-10-09,BUY_QQQ_STOPLOSS,QQQ,770,27.269100189208984,20997.207145690918,8.848037539825762,8.848037539825762,123.61414575576782,65760.3383011818,VOLATILE_STOCKS
|
||||
2009-05-05,BUY_GRADUAL,QQQ,1,30.3912410736084,30.3912410736084,75.86377868118474,75.86377868118474,93.22290468215942,73275.33140993118,QQQ_TRANSITION
|
||||
2009-05-06,BUY_GRADUAL,QQQ,1,30.39992904663086,30.39992904663086,82.3309806574607,82.3309806574607,62.822975635528564,73296.25204896927,QQQ_TRANSITION
|
||||
2009-05-07,BUY_GRADUAL,QQQ,1,29.688297271728516,29.688297271728516,77.63068795156485,77.63068795156485,33.13467836380005,71581.93110322952,QQQ_TRANSITION
|
||||
2009-05-08,BUY_GRADUAL,QQQ,1,29.705650329589844,29.705650329589844,75.32780647633614,75.32780647633614,3.429028034210205,71623.75197267532,QQQ_TRANSITION
|
||||
2010-05-27,SELL_GRADUAL,QQQ,602,40.003875732421875,24082.33319091797,33.580788922696,33.580788922696,24085.76221895218,96452.77341890335,FEAR_TRANSITION
|
||||
2010-05-28,SELL_GRADUAL,QQQ,602,39.7684211730957,23940.589546203613,33.34027831701036,33.34027831701036,48026.35176515579,96026.8361210823,FEAR_TRANSITION
|
||||
2010-06-01,SELL_GRADUAL,QQQ,602,39.40214920043945,23720.09381866455,27.283331291968164,27.283331291968164,71746.44558382034,95584.74585008621,FEAR_TRANSITION
|
||||
2010-06-02,SELL_GRADUAL,QQQ,602,40.335304260253906,24281.85316467285,37.67628312195878,37.67628312195878,96028.2987484932,96149.30466127396,FEAR_TRANSITION
|
||||
2010-06-04,BUY_GRADUAL,SIRI,2705,8.87330436706543,24002.288312911987,36.8189871507287,36.8189871507287,72026.0104355812,96146.26974534988,GREED_TRANSITION
|
||||
2010-06-07,BUY_GRADUAL,NFLX,1539,15.59428596496582,23999.606100082397,35.18107991239285,35.18107991239285,48026.40433549881,95899.19834947586,GREED_TRANSITION
|
||||
2010-06-08,BUY_GRADUAL,TMUS,1793,13.38446044921875,23998.33758544922,33.88560765938214,33.88560765938214,24028.06675004959,95666.38539934158,GREED_TRANSITION
|
||||
2010-06-09,STOP_LOSS,TMUS,1793,13.38446044921875,23998.33758544922,33.40896140370173,33.40896140370173,48026.40433549881,97031.60623884201,GREED_TRANSITION
|
||||
2010-06-09,BUY_QQQ_STOPLOSS,QQQ,627,38.216064453125,23961.472412109375,33.40896140370173,33.40896140370173,24064.931923389435,97031.60623884201,GREED_TRANSITION
|
||||
2010-06-09,BUY_GRADUAL,LULU,1227,19.549999237060547,23987.84906387329,33.40896140370173,33.40896140370173,77.0828595161438,97031.60623884201,GREED_TRANSITION
|
||||
2010-08-30,STOP_LOSS,LULU,1227,15.949999809265137,19570.649765968323,31.110758231093467,31.110758231093467,19647.732625484467,94277.94799089432,VOLATILE_STOCKS
|
||||
2010-08-30,BUY_QQQ_STOPLOSS,QQQ,512,38.179931640625,19548.125,31.110758231093467,31.110758231093467,99.60762548446655,94277.94799089432,VOLATILE_STOCKS
|
||||
2010-11-04,SELL_GRADUAL,SIRI,676,13.309956550598145,8997.530628204346,79.52490444098007,79.52490444098007,9097.138253688812,126784.62676095963,QQQ_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,NFLX,384,23.974285125732422,9206.12548828125,79.52490444098007,79.52490444098007,18303.263741970062,126784.62676095963,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,SIRI,676,13.85322093963623,9364.777355194092,80.12015594534758,80.12015594534758,27668.041097164154,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,NFLX,384,24.014286041259766,9221.48583984375,80.12015594534758,80.12015594534758,36889.526937007904,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-05,BUY_GRADUAL,QQQ,404,47.09733963012695,19027.32521057129,80.12015594534758,80.12015594534758,17862.201726436615,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,SIRI,676,14.034306526184082,9487.19121170044,78.02954261077275,78.02954261077275,27349.392938137054,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,NFLX,384,24.161428451538086,9277.988525390625,78.02954261077275,78.02954261077275,36627.38146352768,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-08,BUY_GRADUAL,QQQ,404,47.158782958984375,19052.148315429688,78.02954261077275,78.02954261077275,17575.233148097992,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,SIRI,676,13.491044044494629,9119.94577407837,74.24305370136257,74.24305370136257,26695.17892217636,127596.0518898964,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,NFLX,384,24.351428985595703,9350.94873046875,74.24305370136257,74.24305370136257,36046.12765264511,127596.0518898964,QQQ_TRANSITION
|
||||
2010-11-09,BUY_GRADUAL,QQQ,406,46.904296875,19043.14453125,74.24305370136257,74.24305370136257,17002.98312139511,127596.0518898964,QQQ_TRANSITION
|
||||
2011-08-05,SELL_GRADUAL,QQQ,589,47.504486083984375,27980.142303466797,16.014420438739027,16.014420438739027,44983.12542486191,129043.9979929924,FEAR_TRANSITION
|
||||
2011-08-08,SELL_GRADUAL,QQQ,589,44.64522171020508,26296.03558731079,12.102638620949758,12.102638620949758,71279.1610121727,123983.30336236954,FEAR_TRANSITION
|
||||
2011-08-09,SELL_GRADUAL,QQQ,589,46.798492431640625,27564.312042236328,21.243367458738685,21.243367458738685,98843.47305440903,126525.99728345871,FEAR_TRANSITION
|
||||
2011-08-10,SELL_GRADUAL,QQQ,589,44.88348388671875,26436.372009277344,16.34997696820296,16.34997696820296,125279.84506368637,125395.11773633957,FEAR_TRANSITION
|
||||
2011-08-16,BUY_GRADUAL,AMD,4944,6.340000152587891,31344.96075439453,27.713133229401997,27.713133229401997,93934.88430929184,125399.58466482162,GREED_TRANSITION
|
||||
2011-08-17,BUY_GRADUAL,DXCM,11087,2.827500104904175,31348.493663072586,27.444352198857068,27.444352198857068,62586.39064621925,124407.95951032639,GREED_TRANSITION
|
||||
2011-08-18,BUY_GRADUAL,ILMN,684,45.81711959838867,31338.90980529785,21.352782610275447,21.352782610275447,31247.480840921402,121090.06735396385,GREED_TRANSITION
|
||||
2011-09-29,STOP_LOSS,AMD,4944,5.309999942779541,26252.63971710205,35.52057049214211,35.52057049214211,57500.12055802345,119987.04083824158,VOLATILE_STOCKS
|
||||
2011-09-29,BUY_QQQ_STOPLOSS,QQQ,551,47.63679122924805,26247.871967315674,35.52057049214211,35.52057049214211,31252.24859070778,119987.04083824158,VOLATILE_STOCKS
|
||||
2011-10-07,STOP_LOSS,ILMN,684,26.43968963623047,18084.74771118164,45.948970380647914,45.948970380647914,49336.99630188942,106507.84904646873,VOLATILE_STOCKS
|
||||
2011-10-07,BUY_QQQ_STOPLOSS,QQQ,378,47.80477523803711,18070.205039978027,45.948970380647914,45.948970380647914,31266.791261911392,106507.84904646873,VOLATILE_STOCKS
|
||||
2011-10-25,STOP_LOSS,NFLX,3,11.052857398986816,33.15857219696045,57.64810056650888,57.64810056650888,31299.949834108353,107460.6527273655,VOLATILE_STOCKS
|
||||
2011-11-03,STOP_LOSS,DXCM,11087,1.9674999713897705,21813.672182798386,63.392430604527135,63.392430604527135,53113.62201690674,100849.260140419,VOLATILE_STOCKS
|
||||
2011-11-03,BUY_QQQ_STOPLOSS,QQQ,424,51.36781311035156,21779.952758789062,63.392430604527135,63.392430604527135,31333.669258117676,100849.260140419,VOLATILE_STOCKS
|
||||
2012-01-20,BUY_GRADUAL,QQQ,147,53.046531677246094,7797.840156555176,76.11690483789968,76.11690483789968,23535.8291015625,103124.6408443451,QQQ_TRANSITION
|
||||
2012-01-23,BUY_GRADUAL,QQQ,147,53.06429672241211,7800.45161819458,75.47387743828742,75.47387743828742,15735.37748336792,103151.28841209412,QQQ_TRANSITION
|
||||
2012-01-24,BUY_GRADUAL,QQQ,147,52.966651916503906,7786.097831726074,73.6603345892624,73.6603345892624,7949.279651641846,102990.28632545471,QQQ_TRANSITION
|
||||
2012-01-25,BUY_GRADUAL,QQQ,146,53.63228988647461,7830.314323425293,74.7347021654166,74.7347021654166,118.96532821655273,104184.44084358215,QQQ_TRANSITION
|
||||
2012-05-21,SELL_GRADUAL,QQQ,485,55.57248306274414,26952.65428543091,33.89789007404509,33.89789007404509,27071.61961364746,107947.51016616821,FEAR_TRANSITION
|
||||
2012-05-22,SELL_GRADUAL,QQQ,485,55.51026153564453,26922.476844787598,34.48360680185137,34.48360680185137,53994.09645843506,107856.79675674438,FEAR_TRANSITION
|
||||
2012-05-23,SELL_GRADUAL,QQQ,485,55.616939544677734,26974.2156791687,33.07033492791181,33.07033492791181,80968.31213760376,107960.54605484009,FEAR_TRANSITION
|
||||
2012-05-24,SELL_GRADUAL,QQQ,485,55.252464294433594,26797.445182800293,32.19709993260843,32.19709993260843,107765.75732040405,107783.77555847168,FEAR_TRANSITION
|
||||
2012-05-29,BUY_GRADUAL,VRTX,466,57.79999923706055,26934.799644470215,39.29817121538365,39.29817121538365,80830.95767593384,107783.23229789734,GREED_TRANSITION
|
||||
2012-05-30,BUY_GRADUAL,NXPI,1395,19.306720733642578,26932.875423431396,32.69376088195683,32.69376088195683,53898.08225250244,108891.95061683655,GREED_TRANSITION
|
||||
2012-05-31,BUY_GRADUAL,REGN,199,135.27606201171875,26919.93634033203,34.05046977820416,34.05046977820416,26978.14591217041,108301.30829811096,GREED_TRANSITION
|
||||
2012-06-01,BUY_GRADUAL,MNST,2291,11.756667137145996,26934.524411201477,27.26748930164401,27.26748930164401,43.621500968933105,103624.71716690063,GREED_TRANSITION
|
||||
2012-06-13,STOP_LOSS,REGN,199,111.57158660888672,22202.745735168457,43.66172453295675,43.66172453295675,22246.36723613739,101613.35444641113,VOLATILE_STOCKS
|
||||
2012-06-13,BUY_QQQ_STOPLOSS,QQQ,401,55.23466491699219,22149.100631713867,43.66172453295675,43.66172453295675,97.26660442352295,101613.35444641113,VOLATILE_STOCKS
|
||||
2012-07-24,STOP_LOSS,VRTX,466,48.369998931884766,22540.4195022583,50.83486055819301,50.83486055819301,22637.686106681824,98436.31856536865,VOLATILE_STOCKS
|
||||
2012-07-24,BUY_QQQ_STOPLOSS,QQQ,401,56.101200103759766,22496.581241607666,50.83486055819301,50.83486055819301,141.10486507415771,98436.31856536865,VOLATILE_STOCKS
|
||||
2012-08-10,STOP_LOSS,MNST,2291,9.045000076293945,20722.09517478943,62.38576286447885,62.38576286447885,20863.200039863586,99013.82264232635,VOLATILE_STOCKS
|
||||
2012-08-10,BUY_QQQ_STOPLOSS,QQQ,347,59.57632827758789,20672.985912322998,62.38576286447885,62.38576286447885,190.21412754058838,99013.82264232635,VOLATILE_STOCKS
|
||||
2013-01-24,SELL_GRADUAL,NXPI,348,26.462675094604492,9209.010932922363,75.13424844525217,75.13424844525217,9399.225060462952,105958.42475414276,QQQ_TRANSITION
|
||||
2013-01-24,BUY_GRADUAL,QQQ,154,59.8992919921875,9224.490966796875,75.13424844525217,75.13424844525217,174.73409366607666,105958.42475414276,QQQ_TRANSITION
|
||||
2013-01-25,SELL_GRADUAL,NXPI,348,26.98277473449707,9390.00560760498,76.59616542938397,76.59616542938397,9564.739701271057,106901.63360309601,QQQ_TRANSITION
|
||||
2013-01-25,BUY_GRADUAL,QQQ,154,60.20482635498047,9271.543258666992,76.59616542938397,76.59616542938397,293.19644260406494,106901.63360309601,QQQ_TRANSITION
|
||||
2013-01-28,SELL_GRADUAL,NXPI,348,27.350439071655273,9517.952796936035,75.72095442961731,75.72095442961731,9811.1492395401,107355.00672245026,QQQ_TRANSITION
|
||||
2013-01-28,BUY_GRADUAL,QQQ,153,60.33960723876953,9231.959907531738,75.72095442961731,75.72095442961731,579.1893320083618,107355.00672245026,QQQ_TRANSITION
|
||||
2013-01-29,SELL_GRADUAL,NXPI,348,26.462675094604492,9209.010932922363,76.8305936279351,76.8305936279351,9788.200264930725,107057.6746263504,QQQ_TRANSITION
|
||||
2013-01-29,BUY_GRADUAL,QQQ,153,60.34858703613281,9233.33381652832,76.8305936279351,76.8305936279351,554.8664484024048,107057.6746263504,QQQ_TRANSITION
|
||||
2015-08-25,SELL_GRADUAL,QQQ,440,90.95682525634766,40021.00311279297,18.64332792812587,18.64332792812587,40575.86956119537,161162.6973810196,FEAR_TRANSITION
|
||||
2015-08-26,SELL_GRADUAL,QQQ,440,95.53759002685547,42036.539611816406,30.238674126890754,30.238674126890754,82612.40917301178,167235.12405109406,FEAR_TRANSITION
|
||||
2015-08-27,SELL_GRADUAL,QQQ,440,97.9577865600586,43101.42608642578,36.72325111888732,36.72325111888732,125713.83525943756,169377.16119861603,FEAR_TRANSITION
|
||||
2015-08-28,SELL_GRADUAL,QQQ,440,97.93927001953125,43093.27880859375,36.806462475332836,36.806462475332836,168807.1140680313,169369.56935214996,FEAR_TRANSITION
|
||||
2015-09-01,BUY_GRADUAL,NFLX,399,105.79000091552734,42210.21036529541,29.162017163513145,29.162017163513145,126596.9037027359,169343.05567264557,GREED_TRANSITION
|
||||
2015-09-02,BUY_GRADUAL,NVDA,78306,0.5397700667381287,42267.2348459959,33.786594185558485,33.786594185558485,84329.66885674,169220.09294605255,GREED_TRANSITION
|
||||
2015-09-03,BUY_GRADUAL,MU,2608,16.203489303588867,42258.700103759766,35.8957291289263,35.8957291289263,42070.96875298023,167587.2710660696,GREED_TRANSITION
|
||||
2015-09-28,STOP_LOSS,MU,2608,13.732434272766113,35814.18858337402,29.287423364584594,29.287423364584594,77885.15733635426,162450.1579028368,VOLATILE_STOCKS
|
||||
2015-09-28,BUY_QQQ_STOPLOSS,QQQ,385,92.94425964355469,35783.539962768555,29.287423364584594,29.287423364584594,42101.6173735857,162450.1579028368,VOLATILE_STOCKS
|
||||
2017-02-16,SELL_GRADUAL,NFLX,99,142.00999450683594,14058.989456176758,74.18422120605587,74.18422120605587,56160.60682976246,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-16,SELL_GRADUAL,NVDA,19576,2.6415488719940186,51710.96071815491,74.18422120605587,74.18422120605587,107871.56754791737,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-16,BUY_GRADUAL,QQQ,634,121.85171508789062,77253.98736572266,74.18422120605587,74.18422120605587,30617.58018219471,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NFLX,99,142.22000122070312,14079.78012084961,73.85576423075787,73.85576423075787,44697.36030304432,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NVDA,19576,2.641056776046753,51701.327447891235,73.85576423075787,73.85576423075787,96398.68775093555,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-17,BUY_GRADUAL,QQQ,632,122.37963104248047,77343.92681884766,73.85576423075787,73.85576423075787,19054.7609320879,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NFLX,99,142.60000610351562,14117.400604248047,76.26775225821572,76.26775225821572,33172.161536335945,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NVDA,19576,2.73563551902771,53552.80092048645,76.26775225821572,76.26775225821572,86724.9624568224,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-21,BUY_GRADUAL,QQQ,628,122.98302459716797,77233.33944702148,76.26775225821572,76.26775225821572,9491.623009800911,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NFLX,99,143.86000061035156,14242.140060424805,74.96778290840957,74.96778290840957,23733.763070225716,358720.1136442423,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NVDA,19576,2.7314422130584717,53470.71276283264,74.96778290840957,74.96778290840957,77204.47583305836,358720.1136442423,QQQ_TRANSITION
|
||||
2018-12-18,SELL_GRADUAL,QQQ,570,151.55323791503906,86385.34561157227,24.442533177764215,24.442533177764215,163589.82144463062,424134.49860584736,FEAR_TRANSITION
|
||||
2018-12-19,SELL_GRADUAL,QQQ,570,147.8318328857422,84264.14474487305,22.796729661345402,22.796729661345402,247853.96618950367,417733.8956876993,FEAR_TRANSITION
|
||||
2018-12-20,SELL_GRADUAL,QQQ,570,145.68890380859375,83042.67517089844,22.299659882587015,22.299659882587015,330896.6413604021,415268.4574147463,FEAR_TRANSITION
|
||||
2018-12-21,SELL_GRADUAL,QQQ,570,141.17352294921875,80468.90808105469,19.58576040567819,19.58576040567819,411365.5494414568,412635.6761728525,FEAR_TRANSITION
|
||||
2018-12-27,BUY_GRADUAL,ZS,2566,40.16999816894531,103076.21530151367,27.938844950891582,27.938844950891582,308289.3341399431,412683.14164316654,GREED_TRANSITION
|
||||
2018-12-28,BUY_GRADUAL,AMD,5785,17.81999969482422,103088.6982345581,26.23355835507341,26.23355835507341,205200.63590538502,411732.7498089075,GREED_TRANSITION
|
||||
2018-12-31,BUY_GRADUAL,MDB,1231,83.73999786376953,103083.9373703003,30.089955926210273,30.089955926210273,102116.69853508472,413961.4327007532,GREED_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,ZS,641,64.98999786376953,41658.58863067627,74.73809260902496,74.73809260902496,143775.287165761,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,AMD,1446,28.459999084472656,41153.15867614746,74.73809260902496,74.73809260902496,184928.44584190845,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,MDB,307,135.16000366210938,41494.12112426758,74.73809260902496,74.73809260902496,226422.56696617603,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,BUY_GRADUAL,QQQ,825,182.33738708496094,150428.34434509277,74.73809260902496,74.73809260902496,75994.22262108326,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,ZS,641,66.95999908447266,42921.35941314697,74.47201415715975,74.47201415715975,118915.58203423023,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,AMD,1446,27.65999984741211,39996.35977935791,74.47201415715975,74.47201415715975,158911.94181358814,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,MDB,307,137.66000366210938,42261.62112426758,74.47201415715975,74.47201415715975,201173.56293785572,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,BUY_GRADUAL,QQQ,822,183.07749938964844,150489.70449829102,74.47201415715975,74.47201415715975,50683.858439564705,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,ZS,641,66.94000244140625,42908.541564941406,74.04664446450204,74.04664446450204,93592.40000450611,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,AMD,1446,27.8799991607666,40314.478786468506,74.04664446450204,74.04664446450204,133906.87879097462,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,MDB,307,138.97999572753906,42666.85868835449,74.04664446450204,74.04664446450204,176573.7374793291,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,BUY_GRADUAL,QQQ,821,183.2408905029297,150440.77110290527,74.04664446450204,74.04664446450204,26132.966376423836,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,ZS,641,68.19999694824219,43716.19804382324,74.33985266042214,74.33985266042214,69849.16442024708,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,AMD,1446,27.690000534057617,40039.740772247314,74.33985266042214,74.33985266042214,109888.90519249439,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,MDB,307,137.5,42212.5,74.33985266042214,74.33985266042214,152101.4051924944,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,BUY_GRADUAL,QQQ,820,183.5964813232422,150549.1146850586,74.33985266042214,74.33985266042214,1552.2905074357986,607605.7671710253,QQQ_TRANSITION
|
||||
2020-02-28,SELL_GRADUAL,QQQ,822,199.0699005126953,163635.45822143555,20.377945426333802,20.377945426333802,165187.74872887135,658590.0816584826,FEAR_TRANSITION
|
||||
2020-03-02,SELL_GRADUAL,QQQ,822,209.34254455566406,172079.57162475586,36.64935574118489,36.64935574118489,337267.3203536272,684011.7751408815,FEAR_TRANSITION
|
||||
2020-03-03,SELL_GRADUAL,QQQ,822,202.62953186035156,166561.47518920898,29.173017969864834,29.173017969864834,503828.7955428362,672909.4515925646,FEAR_TRANSITION
|
||||
2020-03-04,SELL_GRADUAL,QQQ,822,211.08370971679688,173510.80938720703,37.762293269698624,37.762293269698624,677339.6049300432,679956.120731473,FEAR_TRANSITION
|
||||
2020-03-06,BUY_GRADUAL,MRNA,5736,29.610000610351562,169842.96350097656,24.79777800648001,24.79777800648001,507496.64142906666,679825.6721946001,GREED_TRANSITION
|
||||
2020-03-09,STOP_LOSS,MRNA,5736,24.290000915527344,139327.44525146484,16.994433907313056,16.994433907313056,646824.0866805315,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-09,BUY_QQQ_STOPLOSS,QQQ,744,187.23983764648438,139306.43920898438,16.994433907313056,16.994433907313056,507517.6474715471,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-09,BUY_GRADUAL,TSLA,4190,40.53333282470703,169834.66453552246,16.994433907313056,16.994433907313056,337682.98293602467,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-10,BUY_GRADUAL,MRVL,7509,22.620569229125977,169857.85434150696,24.7215849676679,24.7215849676679,167825.1285945177,667229.5989590883,GREED_TRANSITION
|
||||
2020-03-12,STOP_LOSS,MRVL,7509,19.063262939453125,143146.04141235352,17.297952141169375,17.297952141169375,310971.1700068712,597219.0562878847,VOLATILE_STOCKS
|
||||
2020-03-12,BUY_QQQ_STOPLOSS,QQQ,834,171.52120971679688,143048.6889038086,17.297952141169375,17.297952141169375,167922.48110306263,597219.0562878847,VOLATILE_STOCKS
|
||||
2020-03-16,STOP_LOSS,TSLA,4190,29.67133331298828,124322.8865814209,19.126240915184,19.126240915184,292245.3676844835,552585.3837367296,VOLATILE_STOCKS
|
||||
2020-03-16,BUY_QQQ_STOPLOSS,QQQ,759,163.7635040283203,124296.49955749512,19.126240915184,19.126240915184,167948.8681269884,552585.3837367296,VOLATILE_STOCKS
|
||||
2020-06-03,BUY_GRADUAL,QQQ,185,229.43759155273438,42445.95443725586,78.64383713986213,78.64383713986213,125502.91368973255,707212.8291083574,QQQ_TRANSITION
|
||||
2020-06-04,BUY_GRADUAL,QQQ,187,227.82846069335938,42603.9221496582,79.05391554632061,79.05391554632061,82898.99154007435,703082.4960223436,QQQ_TRANSITION
|
||||
2020-06-05,BUY_GRADUAL,QQQ,183,232.3456268310547,42519.24971008301,83.9440139783205,83.9440139783205,40379.74182999134,715283.7573214769,QQQ_TRANSITION
|
||||
2022-01-26,SELL_GRADUAL,QQQ,723,336.8142395019531,243516.6951599121,24.061477932967016,24.061477932967016,283896.43698990345,1018472.5361949205,FEAR_TRANSITION
|
||||
2022-01-27,SELL_GRADUAL,QQQ,723,333.4222717285156,241064.3024597168,23.19312861351907,23.19312861351907,524960.7394496202,1011148.2586299181,FEAR_TRANSITION
|
||||
2022-01-28,SELL_GRADUAL,QQQ,723,343.8814697265625,248626.3026123047,32.47130624150118,32.47130624150118,773587.0420619249,1026391.1896373034,FEAR_TRANSITION
|
||||
2022-01-31,SELL_GRADUAL,QQQ,723,354.8782653808594,256576.98587036133,40.745889513626054,40.745889513626054,1030164.0279322863,1034683.9514399767,FEAR_TRANSITION
|
||||
2022-02-02,BUY_GRADUAL,NFLX,601,429.4800109863281,258117.4866027832,46.50000935058783,46.50000935058783,772046.5413295031,1034707.5882998705,GREED_TRANSITION
|
||||
2022-02-03,BUY_GRADUAL,PDD,4689,55.130001068115234,258504.57500839233,42.57397684804427,42.57397684804427,513541.9663211107,1020142.6742678881,GREED_TRANSITION
|
||||
2022-02-04,BUY_GRADUAL,WBD,8945,28.899999618530273,258510.4965877533,45.75812386485002,45.75812386485002,255031.46973335743,1026385.4142123461,GREED_TRANSITION
|
||||
2022-03-03,STOP_LOSS,PDD,4689,45.220001220703125,212036.58572387695,38.78432972132524,38.78432972132524,467068.0554572344,948795.3329497576,VOLATILE_STOCKS
|
||||
2022-03-03,BUY_QQQ_STOPLOSS,QQQ,633,334.55621337890625,211774.08306884766,38.78432972132524,38.78432972132524,255293.97238838673,948795.3329497576,VOLATILE_STOCKS
|
||||
2022-03-11,STOP_LOSS,WBD,8945,23.989999771118164,214590.54795265198,30.553866333660586,30.553866333660586,469884.5203410387,878854.3637820482,VOLATILE_STOCKS
|
||||
2022-03-11,BUY_QQQ_STOPLOSS,QQQ,676,317.09814453125,214358.345703125,30.553866333660586,30.553866333660586,255526.1746379137,878854.3637820482,VOLATILE_STOCKS
|
||||
2022-08-16,SELL_GRADUAL,NFLX,151,245.69000244140625,37099.190368652344,75.89323394690028,75.89323394690028,292625.36500656605,833290.0493594408,QQQ_TRANSITION
|
||||
2022-08-16,BUY_GRADUAL,QQQ,313,325.8274841308594,101984.00253295898,75.89323394690028,75.89323394690028,190641.36247360706,833290.0493594408,QQQ_TRANSITION
|
||||
2022-08-17,SELL_GRADUAL,NFLX,151,241.14999389648438,36413.64907836914,71.95888891502631,71.95888891502631,227055.0115519762,825131.600541234,QQQ_TRANSITION
|
||||
2022-08-17,BUY_GRADUAL,QQQ,316,322.1111145019531,101787.11218261719,71.95888891502631,71.95888891502631,125267.89936935902,825131.600541234,QQQ_TRANSITION
|
||||
2022-08-18,SELL_GRADUAL,NFLX,151,245.1699981689453,37020.66972351074,72.7643774387154,72.7643774387154,162288.56909286976,827835.9035960436,QQQ_TRANSITION
|
||||
2022-08-18,BUY_GRADUAL,QQQ,316,322.8857727050781,102031.90417480469,72.7643774387154,72.7643774387154,60256.66491806507,827835.9035960436,QQQ_TRANSITION
|
||||
2022-08-19,SELL_GRADUAL,NFLX,151,241.16000366210938,36415.160552978516,68.48379396098062,68.48379396098062,96671.82547104359,812946.4563647509,QQQ_TRANSITION
|
||||
2022-09-26,SELL_GRADUAL,QQQ,564,269.52557373046875,152012.42358398438,25.412070998468074,25.412070998468074,248684.24905502796,706188.6064368486,FEAR_TRANSITION
|
||||
2022-09-27,SELL_GRADUAL,QQQ,564,269.6336364746094,152073.3709716797,26.22711815731541,26.22711815731541,400757.62002670765,706398.3756018877,FEAR_TRANSITION
|
||||
2022-09-28,SELL_GRADUAL,QQQ,564,274.9972229003906,155098.4337158203,33.21082990012799,33.21082990012799,555856.053742528,712491.662078023,FEAR_TRANSITION
|
||||
2022-09-29,SELL_GRADUAL,QQQ,564,267.0697021484375,150627.31201171875,29.27070352396588,29.27070352396588,706483.3657542467,707972.9652472734,FEAR_TRANSITION
|
||||
2022-10-03,BUY_GRADUAL,BIIB,669,264.29998779296875,176816.6918334961,32.38063116058547,32.38063116058547,529666.6739207506,707985.9719649553,GREED_TRANSITION
|
||||
2022-10-04,BUY_GRADUAL,REGN,239,737.5012817382812,176262.80633544922,42.2918131346582,42.2918131346582,353403.8675853014,710158.7622882128,GREED_TRANSITION
|
||||
2022-10-05,BUY_GRADUAL,NFLX,747,236.72999572753906,176837.30680847168,41.52977712655799,41.52977712655799,176566.56077682972,707777.2871772051,GREED_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,BIIB,167,283.6300048828125,47366.21081542969,72.23030348546578,72.23030348546578,223932.7715922594,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,REGN,59,780.97119140625,46077.30029296875,72.23030348546578,72.23030348546578,270010.07188522816,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,NFLX,186,365.8999938964844,68057.3988647461,72.23030348546578,72.23030348546578,338067.47074997425,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,BUY_GRADUAL,QQQ,683,301.49395751953125,205920.37298583984,72.23030348546578,72.23030348546578,132147.0977641344,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,BIIB,167,288.2799987792969,48142.75979614258,65.34324140803145,65.34324140803145,180289.85756027699,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,REGN,59,778.7074584960938,45943.74005126953,65.34324140803145,65.34324140803145,226233.59761154652,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,NFLX,186,361.4800109863281,67235.28204345703,65.34324140803145,65.34324140803145,293468.87965500355,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,BUY_GRADUAL,QQQ,688,298.9436340332031,205673.22021484375,65.34324140803145,65.34324140803145,87795.6594401598,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,BIIB,167,291.42999267578125,48668.80877685547,70.27852780807376,70.27852780807376,136464.46821701527,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,REGN,59,767.8175048828125,45301.23278808594,70.27852780807376,70.27852780807376,181765.7010051012,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,NFLX,186,362.95001220703125,67508.70227050781,70.27852780807376,70.27852780807376,249274.40327560902,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,BUY_GRADUAL,QQQ,674,305.1373596191406,205662.58038330078,70.27852780807376,70.27852780807376,43611.822892308235,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,BIIB,167,285.45001220703125,47670.15203857422,64.43188468733032,64.43188468733032,91281.97493088245,821817.0054217577,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,REGN,59,747.5934448242188,44108.013244628906,64.43188468733032,64.43188468733032,135389.98817551136,821817.0054217577,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,NFLX,186,366.8299865722656,68230.3775024414,64.43188468733032,64.43188468733032,203620.36567795277,821817.0054217577,QQQ_TRANSITION
|
||||
2023-11-09,STOP_LOSS,BIIB,1,224.64999389648438,224.64999389648438,54.383852658550936,54.383852658550936,203845.01567184925,958229.0677386522,QQQ_HOLD
|
||||
2025-04-07,SELL_GRADUAL,QQQ,511,423.2146911621094,216262.7071838379,24.106379703967942,24.106379703967942,420107.72285568714,1075227.2145739794,FEAR_TRANSITION
|
||||
2025-04-08,SELL_GRADUAL,QQQ,511,415.59326171875,212368.15673828125,23.47897409359107,23.47897409359107,632475.8795939684,1063446.8414145708,FEAR_TRANSITION
|
||||
2025-04-09,SELL_GRADUAL,QQQ,511,465.47723388671875,237858.86651611328,39.00858627592589,39.00858627592589,870334.7461100817,1115042.5140486956,FEAR_TRANSITION
|
||||
2025-04-10,SELL_GRADUAL,QQQ,511,445.6794738769531,227742.21115112305,33.96020602504672,33.96020602504672,1098076.9572612047,1104615.0388365984,FEAR_TRANSITION
|
||||
2025-04-14,BUY_GRADUAL,MCHP,7155,38.58142852783203,276050.1211166382,37.444908145843534,37.444908145843534,822026.8361445665,1104757.0596286058,GREED_TRANSITION
|
||||
2025-04-15,BUY_GRADUAL,WBD,33461,8.25,276053.25,37.75161834264942,37.75161834264942,545973.5861445665,1103806.8776408434,GREED_TRANSITION
|
||||
2025-04-16,STOP_LOSS,WBD,33461,7.920000076293945,265011.1225528717,32.4554396374009,32.4554396374009,810984.7086974382,1087112.121976018,GREED_TRANSITION
|
||||
2025-04-16,BUY_QQQ_STOPLOSS,QQQ,597,443.68170166015625,264877.9758911133,32.4554396374009,32.4554396374009,546106.732806325,1087112.121976018,GREED_TRANSITION
|
||||
2025-04-16,BUY_GRADUAL,AMD,3126,88.29000091552734,275994.5428619385,32.4554396374009,32.4554396374009,270112.1899443865,1087112.121976018,GREED_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,AMD,781,113.51000213623047,88651.311668396,75.62799649436673,75.62799649436673,358763.5016127825,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,MCHP,1788,60.33309555053711,107875.57484436035,75.62799649436673,75.62799649436673,466639.07645714283,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-20,BUY_GRADUAL,QQQ,512,519.6863403320312,266079.40625,75.62799649436673,75.62799649436673,200559.67020714283,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,AMD,781,112.05999755859375,87518.85809326172,68.96239147283873,68.96239147283873,288078.52830040455,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,MCHP,1788,58.79499816894531,105125.45672607422,68.96239147283873,68.96239147283873,393203.98502647877,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-21,BUY_GRADUAL,QQQ,520,512.4644165039062,266481.49658203125,68.96239147283873,68.96239147283873,126722.48844444752,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,AMD,781,110.70999908447266,86464.50928497314,66.69973135428862,66.69973135428862,213186.99772942066,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,MCHP,1788,58.04999923706055,103793.39863586426,66.69973135428862,66.69973135428862,316980.3963652849,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-22,BUY_GRADUAL,QQQ,519,513.4234008789062,266466.74505615234,66.69973135428862,66.69973135428862,50513.651309132576,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,AMD,781,110.30999755859375,86152.10809326172,62.342179974993726,62.342179974993726,136665.7594023943,1338007.1326247454,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,MCHP,1788,56.189998626708984,100467.71754455566,62.342179974993726,62.342179974993726,237133.47694694996,1338007.1326247454,QQQ_TRANSITION
|
||||
|
204
backtest/reports/enhanced_trades_20250718_191059.csv
Normal file
204
backtest/reports/enhanced_trades_20250718_191059.csv
Normal file
@@ -0,0 +1,204 @@
|
||||
date,action,ticker,shares,price,value,fg_index,cnn_fear_greed,cash_after,total_assets,portfolio_state
|
||||
2008-01-09,SELL_GRADUAL,QQQ,609,41.368202209472656,25193.235145568848,26.344740247547747,26.344740247547747,25208.408485412598,100829.48212432861,FEAR_TRANSITION
|
||||
2008-01-10,SELL_GRADUAL,QQQ,609,41.428653717041016,25230.05011367798,32.93074277910004,32.93074277910004,50438.458599090576,100939.98748016357,FEAR_TRANSITION
|
||||
2008-01-11,SELL_GRADUAL,QQQ,609,40.617149353027344,24735.843955993652,28.176976271462404,28.176976271462404,75174.30255508423,99950.76366043091,FEAR_TRANSITION
|
||||
2008-01-14,SELL_GRADUAL,QQQ,609,41.32505798339844,25166.96031188965,30.536227836089562,30.536227836089562,100341.26286697388,100382.58792495728,FEAR_TRANSITION
|
||||
2008-01-16,BUY_GRADUAL,ILMN,745,33.63326644897461,25056.783504486084,27.300196841810212,27.300196841810212,75284.4793624878,100381.0167427063,GREED_TRANSITION
|
||||
2008-01-17,BUY_GRADUAL,TMUS,852,29.416748046875,25063.0693359375,20.374689776577714,20.374689776577714,50221.41002655029,99963.75773239136,GREED_TRANSITION
|
||||
2008-01-18,BUY_GRADUAL,DXCM,11274,2.2249999046325684,25084.648924827576,20.18843039588665,20.18843039588665,25136.761101722717,98656.10165023804,GREED_TRANSITION
|
||||
2008-01-22,BUY_GRADUAL,SBUX,3549,7.068207740783691,25085.06927204132,19.14782163420834,19.14782163420834,51.691829681396484,97151.9062590599,GREED_TRANSITION
|
||||
2008-02-20,STOP_LOSS,TMUS,852,24.76690101623535,21101.39966583252,53.87240876697988,53.87240876697988,21153.091495513916,94385.23314976692,VOLATILE_STOCKS
|
||||
2008-02-20,BUY_QQQ_STOPLOSS,QQQ,556,37.9323616027832,21090.39305114746,53.87240876697988,53.87240876697988,62.69844436645508,94385.23314976692,VOLATILE_STOCKS
|
||||
2008-02-28,STOP_LOSS,DXCM,11274,1.8849999904632568,21251.489892482758,50.39006293843006,50.39006293843006,21314.188336849213,94275.87118148804,VOLATILE_STOCKS
|
||||
2008-02-28,BUY_QQQ_STOPLOSS,QQQ,557,38.087764739990234,21214.88496017456,50.39006293843006,50.39006293843006,99.3033766746521,94275.87118148804,VOLATILE_STOCKS
|
||||
2008-04-25,STOP_LOSS,SBUX,3549,6.004380226135254,21309.545422554016,69.45714736367935,69.45714736367935,21408.84879922867,95417.57655572891,VOLATILE_STOCKS
|
||||
2008-04-25,BUY_QQQ_STOPLOSS,QQQ,523,40.73530578613281,21304.56492614746,69.45714736367935,69.45714736367935,104.28387308120728,95417.57655572891,VOLATILE_STOCKS
|
||||
2008-10-09,STOP_LOSS,ILMN,745,28.21011734008789,21016.53741836548,8.848037539825762,8.848037539825762,21120.821291446686,65760.3383011818,VOLATILE_STOCKS
|
||||
2008-10-09,BUY_QQQ_STOPLOSS,QQQ,770,27.269100189208984,20997.207145690918,8.848037539825762,8.848037539825762,123.61414575576782,65760.3383011818,VOLATILE_STOCKS
|
||||
2009-05-05,BUY_GRADUAL,QQQ,1,30.3912410736084,30.3912410736084,75.86377868118474,75.86377868118474,93.22290468215942,73275.33140993118,QQQ_TRANSITION
|
||||
2009-05-06,BUY_GRADUAL,QQQ,1,30.39992904663086,30.39992904663086,82.3309806574607,82.3309806574607,62.822975635528564,73296.25204896927,QQQ_TRANSITION
|
||||
2009-05-07,BUY_GRADUAL,QQQ,1,29.688297271728516,29.688297271728516,77.63068795156485,77.63068795156485,33.13467836380005,71581.93110322952,QQQ_TRANSITION
|
||||
2009-05-08,BUY_GRADUAL,QQQ,1,29.705650329589844,29.705650329589844,75.32780647633614,75.32780647633614,3.429028034210205,71623.75197267532,QQQ_TRANSITION
|
||||
2010-05-27,SELL_GRADUAL,QQQ,602,40.003875732421875,24082.33319091797,33.580788922696,33.580788922696,24085.76221895218,96452.77341890335,FEAR_TRANSITION
|
||||
2010-05-28,SELL_GRADUAL,QQQ,602,39.7684211730957,23940.589546203613,33.34027831701036,33.34027831701036,48026.35176515579,96026.8361210823,FEAR_TRANSITION
|
||||
2010-06-01,SELL_GRADUAL,QQQ,602,39.40214920043945,23720.09381866455,27.283331291968164,27.283331291968164,71746.44558382034,95584.74585008621,FEAR_TRANSITION
|
||||
2010-06-02,SELL_GRADUAL,QQQ,602,40.335304260253906,24281.85316467285,37.67628312195878,37.67628312195878,96028.2987484932,96149.30466127396,FEAR_TRANSITION
|
||||
2010-06-04,BUY_GRADUAL,SIRI,2705,8.87330436706543,24002.288312911987,36.8189871507287,36.8189871507287,72026.0104355812,96146.26974534988,GREED_TRANSITION
|
||||
2010-06-07,BUY_GRADUAL,NFLX,1539,15.59428596496582,23999.606100082397,35.18107991239285,35.18107991239285,48026.40433549881,95899.19834947586,GREED_TRANSITION
|
||||
2010-06-08,BUY_GRADUAL,TMUS,1793,13.38446044921875,23998.33758544922,33.88560765938214,33.88560765938214,24028.06675004959,95666.38539934158,GREED_TRANSITION
|
||||
2010-06-09,STOP_LOSS,TMUS,1793,13.38446044921875,23998.33758544922,33.40896140370173,33.40896140370173,48026.40433549881,97031.60623884201,GREED_TRANSITION
|
||||
2010-06-09,BUY_QQQ_STOPLOSS,QQQ,627,38.216064453125,23961.472412109375,33.40896140370173,33.40896140370173,24064.931923389435,97031.60623884201,GREED_TRANSITION
|
||||
2010-06-09,BUY_GRADUAL,LULU,1227,19.549999237060547,23987.84906387329,33.40896140370173,33.40896140370173,77.0828595161438,97031.60623884201,GREED_TRANSITION
|
||||
2010-08-30,STOP_LOSS,LULU,1227,15.949999809265137,19570.649765968323,31.110758231093467,31.110758231093467,19647.732625484467,94277.94799089432,VOLATILE_STOCKS
|
||||
2010-08-30,BUY_QQQ_STOPLOSS,QQQ,512,38.179931640625,19548.125,31.110758231093467,31.110758231093467,99.60762548446655,94277.94799089432,VOLATILE_STOCKS
|
||||
2010-11-04,SELL_GRADUAL,SIRI,676,13.309956550598145,8997.530628204346,79.52490444098007,79.52490444098007,9097.138253688812,126784.62676095963,QQQ_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,NFLX,384,23.974285125732422,9206.12548828125,79.52490444098007,79.52490444098007,18303.263741970062,126784.62676095963,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,SIRI,676,13.85322093963623,9364.777355194092,80.12015594534758,80.12015594534758,27668.041097164154,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,NFLX,384,24.014286041259766,9221.48583984375,80.12015594534758,80.12015594534758,36889.526937007904,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-05,BUY_GRADUAL,QQQ,404,47.09733963012695,19027.32521057129,80.12015594534758,80.12015594534758,17862.201726436615,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,SIRI,676,14.034306526184082,9487.19121170044,78.02954261077275,78.02954261077275,27349.392938137054,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,NFLX,384,24.161428451538086,9277.988525390625,78.02954261077275,78.02954261077275,36627.38146352768,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-08,BUY_GRADUAL,QQQ,404,47.158782958984375,19052.148315429688,78.02954261077275,78.02954261077275,17575.233148097992,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,SIRI,676,13.491044044494629,9119.94577407837,74.24305370136257,74.24305370136257,26695.17892217636,127596.0518898964,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,NFLX,384,24.351428985595703,9350.94873046875,74.24305370136257,74.24305370136257,36046.12765264511,127596.0518898964,QQQ_TRANSITION
|
||||
2010-11-09,BUY_GRADUAL,QQQ,406,46.904296875,19043.14453125,74.24305370136257,74.24305370136257,17002.98312139511,127596.0518898964,QQQ_TRANSITION
|
||||
2011-08-05,SELL_GRADUAL,QQQ,589,47.504486083984375,27980.142303466797,16.014420438739027,16.014420438739027,44983.12542486191,129043.9979929924,FEAR_TRANSITION
|
||||
2011-08-08,SELL_GRADUAL,QQQ,589,44.64522171020508,26296.03558731079,12.102638620949758,12.102638620949758,71279.1610121727,123983.30336236954,FEAR_TRANSITION
|
||||
2011-08-09,SELL_GRADUAL,QQQ,589,46.798492431640625,27564.312042236328,21.243367458738685,21.243367458738685,98843.47305440903,126525.99728345871,FEAR_TRANSITION
|
||||
2011-08-10,SELL_GRADUAL,QQQ,589,44.88348388671875,26436.372009277344,16.34997696820296,16.34997696820296,125279.84506368637,125395.11773633957,FEAR_TRANSITION
|
||||
2011-08-16,BUY_GRADUAL,AMD,4944,6.340000152587891,31344.96075439453,27.713133229401997,27.713133229401997,93934.88430929184,125399.58466482162,GREED_TRANSITION
|
||||
2011-08-17,BUY_GRADUAL,DXCM,11087,2.827500104904175,31348.493663072586,27.444352198857068,27.444352198857068,62586.39064621925,124407.95951032639,GREED_TRANSITION
|
||||
2011-08-18,BUY_GRADUAL,ILMN,684,45.81711959838867,31338.90980529785,21.352782610275447,21.352782610275447,31247.480840921402,121090.06735396385,GREED_TRANSITION
|
||||
2011-09-29,STOP_LOSS,AMD,4944,5.309999942779541,26252.63971710205,35.52057049214211,35.52057049214211,57500.12055802345,119987.04083824158,VOLATILE_STOCKS
|
||||
2011-09-29,BUY_QQQ_STOPLOSS,QQQ,551,47.63679122924805,26247.871967315674,35.52057049214211,35.52057049214211,31252.24859070778,119987.04083824158,VOLATILE_STOCKS
|
||||
2011-10-07,STOP_LOSS,ILMN,684,26.43968963623047,18084.74771118164,45.948970380647914,45.948970380647914,49336.99630188942,106507.84904646873,VOLATILE_STOCKS
|
||||
2011-10-07,BUY_QQQ_STOPLOSS,QQQ,378,47.80477523803711,18070.205039978027,45.948970380647914,45.948970380647914,31266.791261911392,106507.84904646873,VOLATILE_STOCKS
|
||||
2011-10-25,STOP_LOSS,NFLX,3,11.052857398986816,33.15857219696045,57.64810056650888,57.64810056650888,31299.949834108353,107460.6527273655,VOLATILE_STOCKS
|
||||
2011-11-03,STOP_LOSS,DXCM,11087,1.9674999713897705,21813.672182798386,63.392430604527135,63.392430604527135,53113.62201690674,100849.260140419,VOLATILE_STOCKS
|
||||
2011-11-03,BUY_QQQ_STOPLOSS,QQQ,424,51.36781311035156,21779.952758789062,63.392430604527135,63.392430604527135,31333.669258117676,100849.260140419,VOLATILE_STOCKS
|
||||
2012-01-20,BUY_GRADUAL,QQQ,147,53.046531677246094,7797.840156555176,76.11690483789968,76.11690483789968,23535.8291015625,103124.6408443451,QQQ_TRANSITION
|
||||
2012-01-23,BUY_GRADUAL,QQQ,147,53.06429672241211,7800.45161819458,75.47387743828742,75.47387743828742,15735.37748336792,103151.28841209412,QQQ_TRANSITION
|
||||
2012-01-24,BUY_GRADUAL,QQQ,147,52.966651916503906,7786.097831726074,73.6603345892624,73.6603345892624,7949.279651641846,102990.28632545471,QQQ_TRANSITION
|
||||
2012-01-25,BUY_GRADUAL,QQQ,146,53.63228988647461,7830.314323425293,74.7347021654166,74.7347021654166,118.96532821655273,104184.44084358215,QQQ_TRANSITION
|
||||
2012-05-21,SELL_GRADUAL,QQQ,485,55.57248306274414,26952.65428543091,33.89789007404509,33.89789007404509,27071.61961364746,107947.51016616821,FEAR_TRANSITION
|
||||
2012-05-22,SELL_GRADUAL,QQQ,485,55.51026153564453,26922.476844787598,34.48360680185137,34.48360680185137,53994.09645843506,107856.79675674438,FEAR_TRANSITION
|
||||
2012-05-23,SELL_GRADUAL,QQQ,485,55.616939544677734,26974.2156791687,33.07033492791181,33.07033492791181,80968.31213760376,107960.54605484009,FEAR_TRANSITION
|
||||
2012-05-24,SELL_GRADUAL,QQQ,485,55.252464294433594,26797.445182800293,32.19709993260843,32.19709993260843,107765.75732040405,107783.77555847168,FEAR_TRANSITION
|
||||
2012-05-29,BUY_GRADUAL,VRTX,466,57.79999923706055,26934.799644470215,39.29817121538365,39.29817121538365,80830.95767593384,107783.23229789734,GREED_TRANSITION
|
||||
2012-05-30,BUY_GRADUAL,NXPI,1395,19.306720733642578,26932.875423431396,32.69376088195683,32.69376088195683,53898.08225250244,108891.95061683655,GREED_TRANSITION
|
||||
2012-05-31,BUY_GRADUAL,REGN,199,135.27606201171875,26919.93634033203,34.05046977820416,34.05046977820416,26978.14591217041,108301.30829811096,GREED_TRANSITION
|
||||
2012-06-01,BUY_GRADUAL,MNST,2291,11.756667137145996,26934.524411201477,27.26748930164401,27.26748930164401,43.621500968933105,103624.71716690063,GREED_TRANSITION
|
||||
2012-06-13,STOP_LOSS,REGN,199,111.57158660888672,22202.745735168457,43.66172453295675,43.66172453295675,22246.36723613739,101613.35444641113,VOLATILE_STOCKS
|
||||
2012-06-13,BUY_QQQ_STOPLOSS,QQQ,401,55.23466491699219,22149.100631713867,43.66172453295675,43.66172453295675,97.26660442352295,101613.35444641113,VOLATILE_STOCKS
|
||||
2012-07-24,STOP_LOSS,VRTX,466,48.369998931884766,22540.4195022583,50.83486055819301,50.83486055819301,22637.686106681824,98436.31856536865,VOLATILE_STOCKS
|
||||
2012-07-24,BUY_QQQ_STOPLOSS,QQQ,401,56.101200103759766,22496.581241607666,50.83486055819301,50.83486055819301,141.10486507415771,98436.31856536865,VOLATILE_STOCKS
|
||||
2012-08-10,STOP_LOSS,MNST,2291,9.045000076293945,20722.09517478943,62.38576286447885,62.38576286447885,20863.200039863586,99013.82264232635,VOLATILE_STOCKS
|
||||
2012-08-10,BUY_QQQ_STOPLOSS,QQQ,347,59.57632827758789,20672.985912322998,62.38576286447885,62.38576286447885,190.21412754058838,99013.82264232635,VOLATILE_STOCKS
|
||||
2013-01-24,SELL_GRADUAL,NXPI,348,26.462675094604492,9209.010932922363,75.13424844525217,75.13424844525217,9399.225060462952,105958.42475414276,QQQ_TRANSITION
|
||||
2013-01-24,BUY_GRADUAL,QQQ,154,59.8992919921875,9224.490966796875,75.13424844525217,75.13424844525217,174.73409366607666,105958.42475414276,QQQ_TRANSITION
|
||||
2013-01-25,SELL_GRADUAL,NXPI,348,26.98277473449707,9390.00560760498,76.59616542938397,76.59616542938397,9564.739701271057,106901.63360309601,QQQ_TRANSITION
|
||||
2013-01-25,BUY_GRADUAL,QQQ,154,60.20482635498047,9271.543258666992,76.59616542938397,76.59616542938397,293.19644260406494,106901.63360309601,QQQ_TRANSITION
|
||||
2013-01-28,SELL_GRADUAL,NXPI,348,27.350439071655273,9517.952796936035,75.72095442961731,75.72095442961731,9811.1492395401,107355.00672245026,QQQ_TRANSITION
|
||||
2013-01-28,BUY_GRADUAL,QQQ,153,60.33960723876953,9231.959907531738,75.72095442961731,75.72095442961731,579.1893320083618,107355.00672245026,QQQ_TRANSITION
|
||||
2013-01-29,SELL_GRADUAL,NXPI,348,26.462675094604492,9209.010932922363,76.8305936279351,76.8305936279351,9788.200264930725,107057.6746263504,QQQ_TRANSITION
|
||||
2013-01-29,BUY_GRADUAL,QQQ,153,60.34858703613281,9233.33381652832,76.8305936279351,76.8305936279351,554.8664484024048,107057.6746263504,QQQ_TRANSITION
|
||||
2015-08-25,SELL_GRADUAL,QQQ,440,90.95682525634766,40021.00311279297,18.64332792812587,18.64332792812587,40575.86956119537,161162.6973810196,FEAR_TRANSITION
|
||||
2015-08-26,SELL_GRADUAL,QQQ,440,95.53759002685547,42036.539611816406,30.238674126890754,30.238674126890754,82612.40917301178,167235.12405109406,FEAR_TRANSITION
|
||||
2015-08-27,SELL_GRADUAL,QQQ,440,97.9577865600586,43101.42608642578,36.72325111888732,36.72325111888732,125713.83525943756,169377.16119861603,FEAR_TRANSITION
|
||||
2015-08-28,SELL_GRADUAL,QQQ,440,97.93927001953125,43093.27880859375,36.806462475332836,36.806462475332836,168807.1140680313,169369.56935214996,FEAR_TRANSITION
|
||||
2015-09-01,BUY_GRADUAL,NFLX,399,105.79000091552734,42210.21036529541,29.162017163513145,29.162017163513145,126596.9037027359,169343.05567264557,GREED_TRANSITION
|
||||
2015-09-02,BUY_GRADUAL,NVDA,78306,0.5397700667381287,42267.2348459959,33.786594185558485,33.786594185558485,84329.66885674,169220.09294605255,GREED_TRANSITION
|
||||
2015-09-03,BUY_GRADUAL,MU,2608,16.203489303588867,42258.700103759766,35.8957291289263,35.8957291289263,42070.96875298023,167587.2710660696,GREED_TRANSITION
|
||||
2015-09-28,STOP_LOSS,MU,2608,13.732434272766113,35814.18858337402,29.287423364584594,29.287423364584594,77885.15733635426,162450.1579028368,VOLATILE_STOCKS
|
||||
2015-09-28,BUY_QQQ_STOPLOSS,QQQ,385,92.94425964355469,35783.539962768555,29.287423364584594,29.287423364584594,42101.6173735857,162450.1579028368,VOLATILE_STOCKS
|
||||
2017-02-16,SELL_GRADUAL,NFLX,99,142.00999450683594,14058.989456176758,74.18422120605587,74.18422120605587,56160.60682976246,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-16,SELL_GRADUAL,NVDA,19576,2.6415488719940186,51710.96071815491,74.18422120605587,74.18422120605587,107871.56754791737,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-16,BUY_GRADUAL,QQQ,634,121.85171508789062,77253.98736572266,74.18422120605587,74.18422120605587,30617.58018219471,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NFLX,99,142.22000122070312,14079.78012084961,73.85576423075787,73.85576423075787,44697.36030304432,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NVDA,19576,2.641056776046753,51701.327447891235,73.85576423075787,73.85576423075787,96398.68775093555,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-17,BUY_GRADUAL,QQQ,632,122.37963104248047,77343.92681884766,73.85576423075787,73.85576423075787,19054.7609320879,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NFLX,99,142.60000610351562,14117.400604248047,76.26775225821572,76.26775225821572,33172.161536335945,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NVDA,19576,2.73563551902771,53552.80092048645,76.26775225821572,76.26775225821572,86724.9624568224,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-21,BUY_GRADUAL,QQQ,628,122.98302459716797,77233.33944702148,76.26775225821572,76.26775225821572,9491.623009800911,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NFLX,99,143.86000061035156,14242.140060424805,74.96778290840957,74.96778290840957,23733.763070225716,358720.1136442423,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NVDA,19576,2.7314422130584717,53470.71276283264,74.96778290840957,74.96778290840957,77204.47583305836,358720.1136442423,QQQ_TRANSITION
|
||||
2018-12-18,SELL_GRADUAL,QQQ,570,151.55323791503906,86385.34561157227,24.442533177764215,24.442533177764215,163589.82144463062,424134.49860584736,FEAR_TRANSITION
|
||||
2018-12-19,SELL_GRADUAL,QQQ,570,147.8318328857422,84264.14474487305,22.796729661345402,22.796729661345402,247853.96618950367,417733.8956876993,FEAR_TRANSITION
|
||||
2018-12-20,SELL_GRADUAL,QQQ,570,145.68890380859375,83042.67517089844,22.299659882587015,22.299659882587015,330896.6413604021,415268.4574147463,FEAR_TRANSITION
|
||||
2018-12-21,SELL_GRADUAL,QQQ,570,141.17352294921875,80468.90808105469,19.58576040567819,19.58576040567819,411365.5494414568,412635.6761728525,FEAR_TRANSITION
|
||||
2018-12-27,BUY_GRADUAL,ZS,2566,40.16999816894531,103076.21530151367,27.938844950891582,27.938844950891582,308289.3341399431,412683.14164316654,GREED_TRANSITION
|
||||
2018-12-28,BUY_GRADUAL,AMD,5785,17.81999969482422,103088.6982345581,26.23355835507341,26.23355835507341,205200.63590538502,411732.7498089075,GREED_TRANSITION
|
||||
2018-12-31,BUY_GRADUAL,MDB,1231,83.73999786376953,103083.9373703003,30.089955926210273,30.089955926210273,102116.69853508472,413961.4327007532,GREED_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,ZS,641,64.98999786376953,41658.58863067627,74.73809260902496,74.73809260902496,143775.287165761,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,AMD,1446,28.459999084472656,41153.15867614746,74.73809260902496,74.73809260902496,184928.44584190845,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,MDB,307,135.16000366210938,41494.12112426758,74.73809260902496,74.73809260902496,226422.56696617603,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,BUY_GRADUAL,QQQ,825,182.33738708496094,150428.34434509277,74.73809260902496,74.73809260902496,75994.22262108326,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,ZS,641,66.95999908447266,42921.35941314697,74.47201415715975,74.47201415715975,118915.58203423023,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,AMD,1446,27.65999984741211,39996.35977935791,74.47201415715975,74.47201415715975,158911.94181358814,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,MDB,307,137.66000366210938,42261.62112426758,74.47201415715975,74.47201415715975,201173.56293785572,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,BUY_GRADUAL,QQQ,822,183.07749938964844,150489.70449829102,74.47201415715975,74.47201415715975,50683.858439564705,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,ZS,641,66.94000244140625,42908.541564941406,74.04664446450204,74.04664446450204,93592.40000450611,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,AMD,1446,27.8799991607666,40314.478786468506,74.04664446450204,74.04664446450204,133906.87879097462,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,MDB,307,138.97999572753906,42666.85868835449,74.04664446450204,74.04664446450204,176573.7374793291,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,BUY_GRADUAL,QQQ,821,183.2408905029297,150440.77110290527,74.04664446450204,74.04664446450204,26132.966376423836,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,ZS,641,68.19999694824219,43716.19804382324,74.33985266042214,74.33985266042214,69849.16442024708,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,AMD,1446,27.690000534057617,40039.740772247314,74.33985266042214,74.33985266042214,109888.90519249439,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,MDB,307,137.5,42212.5,74.33985266042214,74.33985266042214,152101.4051924944,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,BUY_GRADUAL,QQQ,820,183.5964813232422,150549.1146850586,74.33985266042214,74.33985266042214,1552.2905074357986,607605.7671710253,QQQ_TRANSITION
|
||||
2020-02-28,SELL_GRADUAL,QQQ,822,199.0699005126953,163635.45822143555,20.377945426333802,20.377945426333802,165187.74872887135,658590.0816584826,FEAR_TRANSITION
|
||||
2020-03-02,SELL_GRADUAL,QQQ,822,209.34254455566406,172079.57162475586,36.64935574118489,36.64935574118489,337267.3203536272,684011.7751408815,FEAR_TRANSITION
|
||||
2020-03-03,SELL_GRADUAL,QQQ,822,202.62953186035156,166561.47518920898,29.173017969864834,29.173017969864834,503828.7955428362,672909.4515925646,FEAR_TRANSITION
|
||||
2020-03-04,SELL_GRADUAL,QQQ,822,211.08370971679688,173510.80938720703,37.762293269698624,37.762293269698624,677339.6049300432,679956.120731473,FEAR_TRANSITION
|
||||
2020-03-06,BUY_GRADUAL,MRNA,5736,29.610000610351562,169842.96350097656,24.79777800648001,24.79777800648001,507496.64142906666,679825.6721946001,GREED_TRANSITION
|
||||
2020-03-09,STOP_LOSS,MRNA,5736,24.290000915527344,139327.44525146484,16.994433907313056,16.994433907313056,646824.0866805315,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-09,BUY_QQQ_STOPLOSS,QQQ,744,187.23983764648438,139306.43920898438,16.994433907313056,16.994433907313056,507517.6474715471,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-09,BUY_GRADUAL,TSLA,4190,40.53333282470703,169834.66453552246,16.994433907313056,16.994433907313056,337682.98293602467,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-10,BUY_GRADUAL,MRVL,7509,22.620569229125977,169857.85434150696,24.7215849676679,24.7215849676679,167825.1285945177,667229.5989590883,GREED_TRANSITION
|
||||
2020-03-12,STOP_LOSS,MRVL,7509,19.063262939453125,143146.04141235352,17.297952141169375,17.297952141169375,310971.1700068712,597219.0562878847,VOLATILE_STOCKS
|
||||
2020-03-12,BUY_QQQ_STOPLOSS,QQQ,834,171.52120971679688,143048.6889038086,17.297952141169375,17.297952141169375,167922.48110306263,597219.0562878847,VOLATILE_STOCKS
|
||||
2020-03-16,STOP_LOSS,TSLA,4190,29.67133331298828,124322.8865814209,19.126240915184,19.126240915184,292245.3676844835,552585.3837367296,VOLATILE_STOCKS
|
||||
2020-03-16,BUY_QQQ_STOPLOSS,QQQ,759,163.7635040283203,124296.49955749512,19.126240915184,19.126240915184,167948.8681269884,552585.3837367296,VOLATILE_STOCKS
|
||||
2020-06-03,BUY_GRADUAL,QQQ,185,229.43759155273438,42445.95443725586,78.64383713986213,78.64383713986213,125502.91368973255,707212.8291083574,QQQ_TRANSITION
|
||||
2020-06-04,BUY_GRADUAL,QQQ,187,227.82846069335938,42603.9221496582,79.05391554632061,79.05391554632061,82898.99154007435,703082.4960223436,QQQ_TRANSITION
|
||||
2020-06-05,BUY_GRADUAL,QQQ,183,232.3456268310547,42519.24971008301,83.9440139783205,83.9440139783205,40379.74182999134,715283.7573214769,QQQ_TRANSITION
|
||||
2022-01-26,SELL_GRADUAL,QQQ,723,336.8142395019531,243516.6951599121,24.061477932967016,24.061477932967016,283896.43698990345,1018472.5361949205,FEAR_TRANSITION
|
||||
2022-01-27,SELL_GRADUAL,QQQ,723,333.4222717285156,241064.3024597168,23.19312861351907,23.19312861351907,524960.7394496202,1011148.2586299181,FEAR_TRANSITION
|
||||
2022-01-28,SELL_GRADUAL,QQQ,723,343.8814697265625,248626.3026123047,32.47130624150118,32.47130624150118,773587.0420619249,1026391.1896373034,FEAR_TRANSITION
|
||||
2022-01-31,SELL_GRADUAL,QQQ,723,354.8782653808594,256576.98587036133,40.745889513626054,40.745889513626054,1030164.0279322863,1034683.9514399767,FEAR_TRANSITION
|
||||
2022-02-02,BUY_GRADUAL,NFLX,601,429.4800109863281,258117.4866027832,46.50000935058783,46.50000935058783,772046.5413295031,1034707.5882998705,GREED_TRANSITION
|
||||
2022-02-03,BUY_GRADUAL,PDD,4689,55.130001068115234,258504.57500839233,42.57397684804427,42.57397684804427,513541.9663211107,1020142.6742678881,GREED_TRANSITION
|
||||
2022-02-04,BUY_GRADUAL,WBD,8945,28.899999618530273,258510.4965877533,45.75812386485002,45.75812386485002,255031.46973335743,1026385.4142123461,GREED_TRANSITION
|
||||
2022-03-03,STOP_LOSS,PDD,4689,45.220001220703125,212036.58572387695,38.78432972132524,38.78432972132524,467068.0554572344,948795.3329497576,VOLATILE_STOCKS
|
||||
2022-03-03,BUY_QQQ_STOPLOSS,QQQ,633,334.55621337890625,211774.08306884766,38.78432972132524,38.78432972132524,255293.97238838673,948795.3329497576,VOLATILE_STOCKS
|
||||
2022-03-11,STOP_LOSS,WBD,8945,23.989999771118164,214590.54795265198,30.553866333660586,30.553866333660586,469884.5203410387,878854.3637820482,VOLATILE_STOCKS
|
||||
2022-03-11,BUY_QQQ_STOPLOSS,QQQ,676,317.09814453125,214358.345703125,30.553866333660586,30.553866333660586,255526.1746379137,878854.3637820482,VOLATILE_STOCKS
|
||||
2022-08-16,SELL_GRADUAL,NFLX,151,245.69000244140625,37099.190368652344,75.89323394690028,75.89323394690028,292625.36500656605,833290.0493594408,QQQ_TRANSITION
|
||||
2022-08-16,BUY_GRADUAL,QQQ,313,325.8274841308594,101984.00253295898,75.89323394690028,75.89323394690028,190641.36247360706,833290.0493594408,QQQ_TRANSITION
|
||||
2022-08-17,SELL_GRADUAL,NFLX,151,241.14999389648438,36413.64907836914,71.95888891502631,71.95888891502631,227055.0115519762,825131.600541234,QQQ_TRANSITION
|
||||
2022-08-17,BUY_GRADUAL,QQQ,316,322.1111145019531,101787.11218261719,71.95888891502631,71.95888891502631,125267.89936935902,825131.600541234,QQQ_TRANSITION
|
||||
2022-08-18,SELL_GRADUAL,NFLX,151,245.1699981689453,37020.66972351074,72.7643774387154,72.7643774387154,162288.56909286976,827835.9035960436,QQQ_TRANSITION
|
||||
2022-08-18,BUY_GRADUAL,QQQ,316,322.8857727050781,102031.90417480469,72.7643774387154,72.7643774387154,60256.66491806507,827835.9035960436,QQQ_TRANSITION
|
||||
2022-08-19,SELL_GRADUAL,NFLX,151,241.16000366210938,36415.160552978516,68.48379396098062,68.48379396098062,96671.82547104359,812946.4563647509,QQQ_TRANSITION
|
||||
2022-09-26,SELL_GRADUAL,QQQ,564,269.52557373046875,152012.42358398438,25.412070998468074,25.412070998468074,248684.24905502796,706188.6064368486,FEAR_TRANSITION
|
||||
2022-09-27,SELL_GRADUAL,QQQ,564,269.6336364746094,152073.3709716797,26.22711815731541,26.22711815731541,400757.62002670765,706398.3756018877,FEAR_TRANSITION
|
||||
2022-09-28,SELL_GRADUAL,QQQ,564,274.9972229003906,155098.4337158203,33.21082990012799,33.21082990012799,555856.053742528,712491.662078023,FEAR_TRANSITION
|
||||
2022-09-29,SELL_GRADUAL,QQQ,564,267.0697021484375,150627.31201171875,29.27070352396588,29.27070352396588,706483.3657542467,707972.9652472734,FEAR_TRANSITION
|
||||
2022-10-03,BUY_GRADUAL,BIIB,669,264.29998779296875,176816.6918334961,32.38063116058547,32.38063116058547,529666.6739207506,707985.9719649553,GREED_TRANSITION
|
||||
2022-10-04,BUY_GRADUAL,REGN,239,737.5012817382812,176262.80633544922,42.2918131346582,42.2918131346582,353403.8675853014,710158.7622882128,GREED_TRANSITION
|
||||
2022-10-05,BUY_GRADUAL,NFLX,747,236.72999572753906,176837.30680847168,41.52977712655799,41.52977712655799,176566.56077682972,707777.2871772051,GREED_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,BIIB,167,283.6300048828125,47366.21081542969,72.23030348546578,72.23030348546578,223932.7715922594,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,REGN,59,780.97119140625,46077.30029296875,72.23030348546578,72.23030348546578,270010.07188522816,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,NFLX,186,365.8999938964844,68057.3988647461,72.23030348546578,72.23030348546578,338067.47074997425,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,BUY_GRADUAL,QQQ,683,301.49395751953125,205920.37298583984,72.23030348546578,72.23030348546578,132147.0977641344,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,BIIB,167,288.2799987792969,48142.75979614258,65.34324140803145,65.34324140803145,180289.85756027699,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,REGN,59,778.7074584960938,45943.74005126953,65.34324140803145,65.34324140803145,226233.59761154652,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,NFLX,186,361.4800109863281,67235.28204345703,65.34324140803145,65.34324140803145,293468.87965500355,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,BUY_GRADUAL,QQQ,688,298.9436340332031,205673.22021484375,65.34324140803145,65.34324140803145,87795.6594401598,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,BIIB,167,291.42999267578125,48668.80877685547,70.27852780807376,70.27852780807376,136464.46821701527,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,REGN,59,767.8175048828125,45301.23278808594,70.27852780807376,70.27852780807376,181765.7010051012,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,NFLX,186,362.95001220703125,67508.70227050781,70.27852780807376,70.27852780807376,249274.40327560902,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,BUY_GRADUAL,QQQ,674,305.1373596191406,205662.58038330078,70.27852780807376,70.27852780807376,43611.822892308235,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,BIIB,167,285.45001220703125,47670.15203857422,64.43188468733032,64.43188468733032,91281.97493088245,821817.0054217577,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,REGN,59,747.5934448242188,44108.013244628906,64.43188468733032,64.43188468733032,135389.98817551136,821817.0054217577,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,NFLX,186,366.8299865722656,68230.3775024414,64.43188468733032,64.43188468733032,203620.36567795277,821817.0054217577,QQQ_TRANSITION
|
||||
2023-11-09,STOP_LOSS,BIIB,1,224.64999389648438,224.64999389648438,54.383852658550936,54.383852658550936,203845.01567184925,958229.0677386522,QQQ_HOLD
|
||||
2025-04-07,SELL_GRADUAL,QQQ,511,423.2146911621094,216262.7071838379,24.106379703967942,24.106379703967942,420107.72285568714,1075227.2145739794,FEAR_TRANSITION
|
||||
2025-04-08,SELL_GRADUAL,QQQ,511,415.59326171875,212368.15673828125,23.47897409359107,23.47897409359107,632475.8795939684,1063446.8414145708,FEAR_TRANSITION
|
||||
2025-04-09,SELL_GRADUAL,QQQ,511,465.47723388671875,237858.86651611328,39.00858627592589,39.00858627592589,870334.7461100817,1115042.5140486956,FEAR_TRANSITION
|
||||
2025-04-10,SELL_GRADUAL,QQQ,511,445.6794738769531,227742.21115112305,33.96020602504672,33.96020602504672,1098076.9572612047,1104615.0388365984,FEAR_TRANSITION
|
||||
2025-04-14,BUY_GRADUAL,MCHP,7155,38.58142852783203,276050.1211166382,37.444908145843534,37.444908145843534,822026.8361445665,1104757.0596286058,GREED_TRANSITION
|
||||
2025-04-15,BUY_GRADUAL,WBD,33461,8.25,276053.25,37.75161834264942,37.75161834264942,545973.5861445665,1103806.8776408434,GREED_TRANSITION
|
||||
2025-04-16,STOP_LOSS,WBD,33461,7.920000076293945,265011.1225528717,32.4554396374009,32.4554396374009,810984.7086974382,1087112.121976018,GREED_TRANSITION
|
||||
2025-04-16,BUY_QQQ_STOPLOSS,QQQ,597,443.68170166015625,264877.9758911133,32.4554396374009,32.4554396374009,546106.732806325,1087112.121976018,GREED_TRANSITION
|
||||
2025-04-16,BUY_GRADUAL,AMD,3126,88.29000091552734,275994.5428619385,32.4554396374009,32.4554396374009,270112.1899443865,1087112.121976018,GREED_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,AMD,781,113.51000213623047,88651.311668396,75.62799649436673,75.62799649436673,358763.5016127825,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,MCHP,1788,60.33309555053711,107875.57484436035,75.62799649436673,75.62799649436673,466639.07645714283,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-20,BUY_GRADUAL,QQQ,512,519.6863403320312,266079.40625,75.62799649436673,75.62799649436673,200559.67020714283,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,AMD,781,112.05999755859375,87518.85809326172,68.96239147283873,68.96239147283873,288078.52830040455,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,MCHP,1788,58.79499816894531,105125.45672607422,68.96239147283873,68.96239147283873,393203.98502647877,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-21,BUY_GRADUAL,QQQ,520,512.4644165039062,266481.49658203125,68.96239147283873,68.96239147283873,126722.48844444752,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,AMD,781,110.70999908447266,86464.50928497314,66.69973135428862,66.69973135428862,213186.99772942066,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,MCHP,1788,58.04999923706055,103793.39863586426,66.69973135428862,66.69973135428862,316980.3963652849,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-22,BUY_GRADUAL,QQQ,519,513.4234008789062,266466.74505615234,66.69973135428862,66.69973135428862,50513.651309132576,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,AMD,781,110.30999755859375,86152.10809326172,62.342179974993726,62.342179974993726,136665.7594023943,1338007.1326247454,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,MCHP,1788,56.189998626708984,100467.71754455566,62.342179974993726,62.342179974993726,237133.47694694996,1338007.1326247454,QQQ_TRANSITION
|
||||
|
204
backtest/reports/enhanced_trades_20250718_192206.csv
Normal file
204
backtest/reports/enhanced_trades_20250718_192206.csv
Normal file
@@ -0,0 +1,204 @@
|
||||
date,action,ticker,shares,price,value,fg_index,cnn_fear_greed,cash_after,total_assets,portfolio_state
|
||||
2008-01-09,SELL_GRADUAL,QQQ,609,41.368202209472656,25193.235145568848,26.344740247547747,26.344740247547747,25208.408485412598,100829.48212432861,FEAR_TRANSITION
|
||||
2008-01-10,SELL_GRADUAL,QQQ,609,41.428653717041016,25230.05011367798,32.93074277910004,32.93074277910004,50438.458599090576,100939.98748016357,FEAR_TRANSITION
|
||||
2008-01-11,SELL_GRADUAL,QQQ,609,40.617149353027344,24735.843955993652,28.176976271462404,28.176976271462404,75174.30255508423,99950.76366043091,FEAR_TRANSITION
|
||||
2008-01-14,SELL_GRADUAL,QQQ,609,41.32505798339844,25166.96031188965,30.536227836089562,30.536227836089562,100341.26286697388,100382.58792495728,FEAR_TRANSITION
|
||||
2008-01-16,BUY_GRADUAL,ILMN,745,33.63326644897461,25056.783504486084,27.300196841810212,27.300196841810212,75284.4793624878,100381.0167427063,GREED_TRANSITION
|
||||
2008-01-17,BUY_GRADUAL,TMUS,852,29.416748046875,25063.0693359375,20.374689776577714,20.374689776577714,50221.41002655029,99963.75773239136,GREED_TRANSITION
|
||||
2008-01-18,BUY_GRADUAL,DXCM,11274,2.2249999046325684,25084.648924827576,20.18843039588665,20.18843039588665,25136.761101722717,98656.10165023804,GREED_TRANSITION
|
||||
2008-01-22,BUY_GRADUAL,SBUX,3549,7.068207740783691,25085.06927204132,19.14782163420834,19.14782163420834,51.691829681396484,97151.9062590599,GREED_TRANSITION
|
||||
2008-02-20,STOP_LOSS,TMUS,852,24.76690101623535,21101.39966583252,53.87240876697988,53.87240876697988,21153.091495513916,94385.23314976692,VOLATILE_STOCKS
|
||||
2008-02-20,BUY_QQQ_STOPLOSS,QQQ,556,37.9323616027832,21090.39305114746,53.87240876697988,53.87240876697988,62.69844436645508,94385.23314976692,VOLATILE_STOCKS
|
||||
2008-02-28,STOP_LOSS,DXCM,11274,1.8849999904632568,21251.489892482758,50.39006293843006,50.39006293843006,21314.188336849213,94275.87118148804,VOLATILE_STOCKS
|
||||
2008-02-28,BUY_QQQ_STOPLOSS,QQQ,557,38.087764739990234,21214.88496017456,50.39006293843006,50.39006293843006,99.3033766746521,94275.87118148804,VOLATILE_STOCKS
|
||||
2008-04-25,STOP_LOSS,SBUX,3549,6.004380226135254,21309.545422554016,69.45714736367935,69.45714736367935,21408.84879922867,95417.57655572891,VOLATILE_STOCKS
|
||||
2008-04-25,BUY_QQQ_STOPLOSS,QQQ,523,40.73530578613281,21304.56492614746,69.45714736367935,69.45714736367935,104.28387308120728,95417.57655572891,VOLATILE_STOCKS
|
||||
2008-10-09,STOP_LOSS,ILMN,745,28.21011734008789,21016.53741836548,8.848037539825762,8.848037539825762,21120.821291446686,65760.3383011818,VOLATILE_STOCKS
|
||||
2008-10-09,BUY_QQQ_STOPLOSS,QQQ,770,27.269100189208984,20997.207145690918,8.848037539825762,8.848037539825762,123.61414575576782,65760.3383011818,VOLATILE_STOCKS
|
||||
2009-05-05,BUY_GRADUAL,QQQ,1,30.3912410736084,30.3912410736084,75.86377868118474,75.86377868118474,93.22290468215942,73275.33140993118,QQQ_TRANSITION
|
||||
2009-05-06,BUY_GRADUAL,QQQ,1,30.39992904663086,30.39992904663086,82.3309806574607,82.3309806574607,62.822975635528564,73296.25204896927,QQQ_TRANSITION
|
||||
2009-05-07,BUY_GRADUAL,QQQ,1,29.688297271728516,29.688297271728516,77.63068795156485,77.63068795156485,33.13467836380005,71581.93110322952,QQQ_TRANSITION
|
||||
2009-05-08,BUY_GRADUAL,QQQ,1,29.705650329589844,29.705650329589844,75.32780647633614,75.32780647633614,3.429028034210205,71623.75197267532,QQQ_TRANSITION
|
||||
2010-05-27,SELL_GRADUAL,QQQ,602,40.003875732421875,24082.33319091797,33.580788922696,33.580788922696,24085.76221895218,96452.77341890335,FEAR_TRANSITION
|
||||
2010-05-28,SELL_GRADUAL,QQQ,602,39.7684211730957,23940.589546203613,33.34027831701036,33.34027831701036,48026.35176515579,96026.8361210823,FEAR_TRANSITION
|
||||
2010-06-01,SELL_GRADUAL,QQQ,602,39.40214920043945,23720.09381866455,27.283331291968164,27.283331291968164,71746.44558382034,95584.74585008621,FEAR_TRANSITION
|
||||
2010-06-02,SELL_GRADUAL,QQQ,602,40.335304260253906,24281.85316467285,37.67628312195878,37.67628312195878,96028.2987484932,96149.30466127396,FEAR_TRANSITION
|
||||
2010-06-04,BUY_GRADUAL,SIRI,2705,8.87330436706543,24002.288312911987,36.8189871507287,36.8189871507287,72026.0104355812,96146.26974534988,GREED_TRANSITION
|
||||
2010-06-07,BUY_GRADUAL,NFLX,1539,15.59428596496582,23999.606100082397,35.18107991239285,35.18107991239285,48026.40433549881,95899.19834947586,GREED_TRANSITION
|
||||
2010-06-08,BUY_GRADUAL,TMUS,1793,13.38446044921875,23998.33758544922,33.88560765938214,33.88560765938214,24028.06675004959,95666.38539934158,GREED_TRANSITION
|
||||
2010-06-09,STOP_LOSS,TMUS,1793,13.38446044921875,23998.33758544922,33.40896140370173,33.40896140370173,48026.40433549881,97031.60623884201,GREED_TRANSITION
|
||||
2010-06-09,BUY_QQQ_STOPLOSS,QQQ,627,38.216064453125,23961.472412109375,33.40896140370173,33.40896140370173,24064.931923389435,97031.60623884201,GREED_TRANSITION
|
||||
2010-06-09,BUY_GRADUAL,LULU,1227,19.549999237060547,23987.84906387329,33.40896140370173,33.40896140370173,77.0828595161438,97031.60623884201,GREED_TRANSITION
|
||||
2010-08-30,STOP_LOSS,LULU,1227,15.949999809265137,19570.649765968323,31.110758231093467,31.110758231093467,19647.732625484467,94277.94799089432,VOLATILE_STOCKS
|
||||
2010-08-30,BUY_QQQ_STOPLOSS,QQQ,512,38.179931640625,19548.125,31.110758231093467,31.110758231093467,99.60762548446655,94277.94799089432,VOLATILE_STOCKS
|
||||
2010-11-04,SELL_GRADUAL,SIRI,676,13.309956550598145,8997.530628204346,79.52490444098007,79.52490444098007,9097.138253688812,126784.62676095963,QQQ_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,NFLX,384,23.974285125732422,9206.12548828125,79.52490444098007,79.52490444098007,18303.263741970062,126784.62676095963,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,SIRI,676,13.85322093963623,9364.777355194092,80.12015594534758,80.12015594534758,27668.041097164154,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,NFLX,384,24.014286041259766,9221.48583984375,80.12015594534758,80.12015594534758,36889.526937007904,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-05,BUY_GRADUAL,QQQ,404,47.09733963012695,19027.32521057129,80.12015594534758,80.12015594534758,17862.201726436615,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,SIRI,676,14.034306526184082,9487.19121170044,78.02954261077275,78.02954261077275,27349.392938137054,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,NFLX,384,24.161428451538086,9277.988525390625,78.02954261077275,78.02954261077275,36627.38146352768,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-08,BUY_GRADUAL,QQQ,404,47.158782958984375,19052.148315429688,78.02954261077275,78.02954261077275,17575.233148097992,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,SIRI,676,13.491044044494629,9119.94577407837,74.24305370136257,74.24305370136257,26695.17892217636,127596.0518898964,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,NFLX,384,24.351428985595703,9350.94873046875,74.24305370136257,74.24305370136257,36046.12765264511,127596.0518898964,QQQ_TRANSITION
|
||||
2010-11-09,BUY_GRADUAL,QQQ,406,46.904296875,19043.14453125,74.24305370136257,74.24305370136257,17002.98312139511,127596.0518898964,QQQ_TRANSITION
|
||||
2011-08-05,SELL_GRADUAL,QQQ,589,47.504486083984375,27980.142303466797,16.014420438739027,16.014420438739027,44983.12542486191,129043.9979929924,FEAR_TRANSITION
|
||||
2011-08-08,SELL_GRADUAL,QQQ,589,44.64522171020508,26296.03558731079,12.102638620949758,12.102638620949758,71279.1610121727,123983.30336236954,FEAR_TRANSITION
|
||||
2011-08-09,SELL_GRADUAL,QQQ,589,46.798492431640625,27564.312042236328,21.243367458738685,21.243367458738685,98843.47305440903,126525.99728345871,FEAR_TRANSITION
|
||||
2011-08-10,SELL_GRADUAL,QQQ,589,44.88348388671875,26436.372009277344,16.34997696820296,16.34997696820296,125279.84506368637,125395.11773633957,FEAR_TRANSITION
|
||||
2011-08-16,BUY_GRADUAL,AMD,4944,6.340000152587891,31344.96075439453,27.713133229401997,27.713133229401997,93934.88430929184,125399.58466482162,GREED_TRANSITION
|
||||
2011-08-17,BUY_GRADUAL,DXCM,11087,2.827500104904175,31348.493663072586,27.444352198857068,27.444352198857068,62586.39064621925,124407.95951032639,GREED_TRANSITION
|
||||
2011-08-18,BUY_GRADUAL,ILMN,684,45.81711959838867,31338.90980529785,21.352782610275447,21.352782610275447,31247.480840921402,121090.06735396385,GREED_TRANSITION
|
||||
2011-09-29,STOP_LOSS,AMD,4944,5.309999942779541,26252.63971710205,35.52057049214211,35.52057049214211,57500.12055802345,119987.04083824158,VOLATILE_STOCKS
|
||||
2011-09-29,BUY_QQQ_STOPLOSS,QQQ,551,47.63679122924805,26247.871967315674,35.52057049214211,35.52057049214211,31252.24859070778,119987.04083824158,VOLATILE_STOCKS
|
||||
2011-10-07,STOP_LOSS,ILMN,684,26.43968963623047,18084.74771118164,45.948970380647914,45.948970380647914,49336.99630188942,106507.84904646873,VOLATILE_STOCKS
|
||||
2011-10-07,BUY_QQQ_STOPLOSS,QQQ,378,47.80477523803711,18070.205039978027,45.948970380647914,45.948970380647914,31266.791261911392,106507.84904646873,VOLATILE_STOCKS
|
||||
2011-10-25,STOP_LOSS,NFLX,3,11.052857398986816,33.15857219696045,57.64810056650888,57.64810056650888,31299.949834108353,107460.6527273655,VOLATILE_STOCKS
|
||||
2011-11-03,STOP_LOSS,DXCM,11087,1.9674999713897705,21813.672182798386,63.392430604527135,63.392430604527135,53113.62201690674,100849.260140419,VOLATILE_STOCKS
|
||||
2011-11-03,BUY_QQQ_STOPLOSS,QQQ,424,51.36781311035156,21779.952758789062,63.392430604527135,63.392430604527135,31333.669258117676,100849.260140419,VOLATILE_STOCKS
|
||||
2012-01-20,BUY_GRADUAL,QQQ,147,53.046531677246094,7797.840156555176,76.11690483789968,76.11690483789968,23535.8291015625,103124.6408443451,QQQ_TRANSITION
|
||||
2012-01-23,BUY_GRADUAL,QQQ,147,53.06429672241211,7800.45161819458,75.47387743828742,75.47387743828742,15735.37748336792,103151.28841209412,QQQ_TRANSITION
|
||||
2012-01-24,BUY_GRADUAL,QQQ,147,52.966651916503906,7786.097831726074,73.6603345892624,73.6603345892624,7949.279651641846,102990.28632545471,QQQ_TRANSITION
|
||||
2012-01-25,BUY_GRADUAL,QQQ,146,53.63228988647461,7830.314323425293,74.7347021654166,74.7347021654166,118.96532821655273,104184.44084358215,QQQ_TRANSITION
|
||||
2012-05-21,SELL_GRADUAL,QQQ,485,55.57248306274414,26952.65428543091,33.89789007404509,33.89789007404509,27071.61961364746,107947.51016616821,FEAR_TRANSITION
|
||||
2012-05-22,SELL_GRADUAL,QQQ,485,55.51026153564453,26922.476844787598,34.48360680185137,34.48360680185137,53994.09645843506,107856.79675674438,FEAR_TRANSITION
|
||||
2012-05-23,SELL_GRADUAL,QQQ,485,55.616939544677734,26974.2156791687,33.07033492791181,33.07033492791181,80968.31213760376,107960.54605484009,FEAR_TRANSITION
|
||||
2012-05-24,SELL_GRADUAL,QQQ,485,55.252464294433594,26797.445182800293,32.19709993260843,32.19709993260843,107765.75732040405,107783.77555847168,FEAR_TRANSITION
|
||||
2012-05-29,BUY_GRADUAL,VRTX,466,57.79999923706055,26934.799644470215,39.29817121538365,39.29817121538365,80830.95767593384,107783.23229789734,GREED_TRANSITION
|
||||
2012-05-30,BUY_GRADUAL,NXPI,1395,19.306720733642578,26932.875423431396,32.69376088195683,32.69376088195683,53898.08225250244,108891.95061683655,GREED_TRANSITION
|
||||
2012-05-31,BUY_GRADUAL,REGN,199,135.27606201171875,26919.93634033203,34.05046977820416,34.05046977820416,26978.14591217041,108301.30829811096,GREED_TRANSITION
|
||||
2012-06-01,BUY_GRADUAL,MNST,2291,11.756667137145996,26934.524411201477,27.26748930164401,27.26748930164401,43.621500968933105,103624.71716690063,GREED_TRANSITION
|
||||
2012-06-13,STOP_LOSS,REGN,199,111.57158660888672,22202.745735168457,43.66172453295675,43.66172453295675,22246.36723613739,101613.35444641113,VOLATILE_STOCKS
|
||||
2012-06-13,BUY_QQQ_STOPLOSS,QQQ,401,55.23466491699219,22149.100631713867,43.66172453295675,43.66172453295675,97.26660442352295,101613.35444641113,VOLATILE_STOCKS
|
||||
2012-07-24,STOP_LOSS,VRTX,466,48.369998931884766,22540.4195022583,50.83486055819301,50.83486055819301,22637.686106681824,98436.31856536865,VOLATILE_STOCKS
|
||||
2012-07-24,BUY_QQQ_STOPLOSS,QQQ,401,56.101200103759766,22496.581241607666,50.83486055819301,50.83486055819301,141.10486507415771,98436.31856536865,VOLATILE_STOCKS
|
||||
2012-08-10,STOP_LOSS,MNST,2291,9.045000076293945,20722.09517478943,62.38576286447885,62.38576286447885,20863.200039863586,99013.82264232635,VOLATILE_STOCKS
|
||||
2012-08-10,BUY_QQQ_STOPLOSS,QQQ,347,59.57632827758789,20672.985912322998,62.38576286447885,62.38576286447885,190.21412754058838,99013.82264232635,VOLATILE_STOCKS
|
||||
2013-01-24,SELL_GRADUAL,NXPI,348,26.462675094604492,9209.010932922363,75.13424844525217,75.13424844525217,9399.225060462952,105958.42475414276,QQQ_TRANSITION
|
||||
2013-01-24,BUY_GRADUAL,QQQ,154,59.8992919921875,9224.490966796875,75.13424844525217,75.13424844525217,174.73409366607666,105958.42475414276,QQQ_TRANSITION
|
||||
2013-01-25,SELL_GRADUAL,NXPI,348,26.98277473449707,9390.00560760498,76.59616542938397,76.59616542938397,9564.739701271057,106901.63360309601,QQQ_TRANSITION
|
||||
2013-01-25,BUY_GRADUAL,QQQ,154,60.20482635498047,9271.543258666992,76.59616542938397,76.59616542938397,293.19644260406494,106901.63360309601,QQQ_TRANSITION
|
||||
2013-01-28,SELL_GRADUAL,NXPI,348,27.350439071655273,9517.952796936035,75.72095442961731,75.72095442961731,9811.1492395401,107355.00672245026,QQQ_TRANSITION
|
||||
2013-01-28,BUY_GRADUAL,QQQ,153,60.33960723876953,9231.959907531738,75.72095442961731,75.72095442961731,579.1893320083618,107355.00672245026,QQQ_TRANSITION
|
||||
2013-01-29,SELL_GRADUAL,NXPI,348,26.462675094604492,9209.010932922363,76.8305936279351,76.8305936279351,9788.200264930725,107057.6746263504,QQQ_TRANSITION
|
||||
2013-01-29,BUY_GRADUAL,QQQ,153,60.34858703613281,9233.33381652832,76.8305936279351,76.8305936279351,554.8664484024048,107057.6746263504,QQQ_TRANSITION
|
||||
2015-08-25,SELL_GRADUAL,QQQ,440,90.95682525634766,40021.00311279297,18.64332792812587,18.64332792812587,40575.86956119537,161162.6973810196,FEAR_TRANSITION
|
||||
2015-08-26,SELL_GRADUAL,QQQ,440,95.53759002685547,42036.539611816406,30.238674126890754,30.238674126890754,82612.40917301178,167235.12405109406,FEAR_TRANSITION
|
||||
2015-08-27,SELL_GRADUAL,QQQ,440,97.9577865600586,43101.42608642578,36.72325111888732,36.72325111888732,125713.83525943756,169377.16119861603,FEAR_TRANSITION
|
||||
2015-08-28,SELL_GRADUAL,QQQ,440,97.93927001953125,43093.27880859375,36.806462475332836,36.806462475332836,168807.1140680313,169369.56935214996,FEAR_TRANSITION
|
||||
2015-09-01,BUY_GRADUAL,NFLX,399,105.79000091552734,42210.21036529541,29.162017163513145,29.162017163513145,126596.9037027359,169343.05567264557,GREED_TRANSITION
|
||||
2015-09-02,BUY_GRADUAL,NVDA,78306,0.5397700667381287,42267.2348459959,33.786594185558485,33.786594185558485,84329.66885674,169220.09294605255,GREED_TRANSITION
|
||||
2015-09-03,BUY_GRADUAL,MU,2608,16.203489303588867,42258.700103759766,35.8957291289263,35.8957291289263,42070.96875298023,167587.2710660696,GREED_TRANSITION
|
||||
2015-09-28,STOP_LOSS,MU,2608,13.732434272766113,35814.18858337402,29.287423364584594,29.287423364584594,77885.15733635426,162450.1579028368,VOLATILE_STOCKS
|
||||
2015-09-28,BUY_QQQ_STOPLOSS,QQQ,385,92.94425964355469,35783.539962768555,29.287423364584594,29.287423364584594,42101.6173735857,162450.1579028368,VOLATILE_STOCKS
|
||||
2017-02-16,SELL_GRADUAL,NFLX,99,142.00999450683594,14058.989456176758,74.18422120605587,74.18422120605587,56160.60682976246,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-16,SELL_GRADUAL,NVDA,19576,2.6415488719940186,51710.96071815491,74.18422120605587,74.18422120605587,107871.56754791737,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-16,BUY_GRADUAL,QQQ,634,121.85171508789062,77253.98736572266,74.18422120605587,74.18422120605587,30617.58018219471,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NFLX,99,142.22000122070312,14079.78012084961,73.85576423075787,73.85576423075787,44697.36030304432,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NVDA,19576,2.641056776046753,51701.327447891235,73.85576423075787,73.85576423075787,96398.68775093555,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-17,BUY_GRADUAL,QQQ,632,122.37963104248047,77343.92681884766,73.85576423075787,73.85576423075787,19054.7609320879,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NFLX,99,142.60000610351562,14117.400604248047,76.26775225821572,76.26775225821572,33172.161536335945,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NVDA,19576,2.73563551902771,53552.80092048645,76.26775225821572,76.26775225821572,86724.9624568224,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-21,BUY_GRADUAL,QQQ,628,122.98302459716797,77233.33944702148,76.26775225821572,76.26775225821572,9491.623009800911,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NFLX,99,143.86000061035156,14242.140060424805,74.96778290840957,74.96778290840957,23733.763070225716,358720.1136442423,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NVDA,19576,2.7314422130584717,53470.71276283264,74.96778290840957,74.96778290840957,77204.47583305836,358720.1136442423,QQQ_TRANSITION
|
||||
2018-12-18,SELL_GRADUAL,QQQ,570,151.55323791503906,86385.34561157227,24.442533177764215,24.442533177764215,163589.82144463062,424134.49860584736,FEAR_TRANSITION
|
||||
2018-12-19,SELL_GRADUAL,QQQ,570,147.8318328857422,84264.14474487305,22.796729661345402,22.796729661345402,247853.96618950367,417733.8956876993,FEAR_TRANSITION
|
||||
2018-12-20,SELL_GRADUAL,QQQ,570,145.68890380859375,83042.67517089844,22.299659882587015,22.299659882587015,330896.6413604021,415268.4574147463,FEAR_TRANSITION
|
||||
2018-12-21,SELL_GRADUAL,QQQ,570,141.17352294921875,80468.90808105469,19.58576040567819,19.58576040567819,411365.5494414568,412635.6761728525,FEAR_TRANSITION
|
||||
2018-12-27,BUY_GRADUAL,ZS,2566,40.16999816894531,103076.21530151367,27.938844950891582,27.938844950891582,308289.3341399431,412683.14164316654,GREED_TRANSITION
|
||||
2018-12-28,BUY_GRADUAL,AMD,5785,17.81999969482422,103088.6982345581,26.23355835507341,26.23355835507341,205200.63590538502,411732.7498089075,GREED_TRANSITION
|
||||
2018-12-31,BUY_GRADUAL,MDB,1231,83.73999786376953,103083.9373703003,30.089955926210273,30.089955926210273,102116.69853508472,413961.4327007532,GREED_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,ZS,641,64.98999786376953,41658.58863067627,74.73809260902496,74.73809260902496,143775.287165761,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,AMD,1446,28.459999084472656,41153.15867614746,74.73809260902496,74.73809260902496,184928.44584190845,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,MDB,307,135.16000366210938,41494.12112426758,74.73809260902496,74.73809260902496,226422.56696617603,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,BUY_GRADUAL,QQQ,825,182.33738708496094,150428.34434509277,74.73809260902496,74.73809260902496,75994.22262108326,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,ZS,641,66.95999908447266,42921.35941314697,74.47201415715975,74.47201415715975,118915.58203423023,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,AMD,1446,27.65999984741211,39996.35977935791,74.47201415715975,74.47201415715975,158911.94181358814,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,MDB,307,137.66000366210938,42261.62112426758,74.47201415715975,74.47201415715975,201173.56293785572,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,BUY_GRADUAL,QQQ,822,183.07749938964844,150489.70449829102,74.47201415715975,74.47201415715975,50683.858439564705,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,ZS,641,66.94000244140625,42908.541564941406,74.04664446450204,74.04664446450204,93592.40000450611,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,AMD,1446,27.8799991607666,40314.478786468506,74.04664446450204,74.04664446450204,133906.87879097462,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,MDB,307,138.97999572753906,42666.85868835449,74.04664446450204,74.04664446450204,176573.7374793291,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,BUY_GRADUAL,QQQ,821,183.2408905029297,150440.77110290527,74.04664446450204,74.04664446450204,26132.966376423836,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,ZS,641,68.19999694824219,43716.19804382324,74.33985266042214,74.33985266042214,69849.16442024708,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,AMD,1446,27.690000534057617,40039.740772247314,74.33985266042214,74.33985266042214,109888.90519249439,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,MDB,307,137.5,42212.5,74.33985266042214,74.33985266042214,152101.4051924944,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,BUY_GRADUAL,QQQ,820,183.5964813232422,150549.1146850586,74.33985266042214,74.33985266042214,1552.2905074357986,607605.7671710253,QQQ_TRANSITION
|
||||
2020-02-28,SELL_GRADUAL,QQQ,822,199.0699005126953,163635.45822143555,20.377945426333802,20.377945426333802,165187.74872887135,658590.0816584826,FEAR_TRANSITION
|
||||
2020-03-02,SELL_GRADUAL,QQQ,822,209.34254455566406,172079.57162475586,36.64935574118489,36.64935574118489,337267.3203536272,684011.7751408815,FEAR_TRANSITION
|
||||
2020-03-03,SELL_GRADUAL,QQQ,822,202.62953186035156,166561.47518920898,29.173017969864834,29.173017969864834,503828.7955428362,672909.4515925646,FEAR_TRANSITION
|
||||
2020-03-04,SELL_GRADUAL,QQQ,822,211.08370971679688,173510.80938720703,37.762293269698624,37.762293269698624,677339.6049300432,679956.120731473,FEAR_TRANSITION
|
||||
2020-03-06,BUY_GRADUAL,MRNA,5736,29.610000610351562,169842.96350097656,24.79777800648001,24.79777800648001,507496.64142906666,679825.6721946001,GREED_TRANSITION
|
||||
2020-03-09,STOP_LOSS,MRNA,5736,24.290000915527344,139327.44525146484,16.994433907313056,16.994433907313056,646824.0866805315,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-09,BUY_QQQ_STOPLOSS,QQQ,744,187.23983764648438,139306.43920898438,16.994433907313056,16.994433907313056,507517.6474715471,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-09,BUY_GRADUAL,TSLA,4190,40.53333282470703,169834.66453552246,16.994433907313056,16.994433907313056,337682.98293602467,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-10,BUY_GRADUAL,MRVL,7509,22.620569229125977,169857.85434150696,24.7215849676679,24.7215849676679,167825.1285945177,667229.5989590883,GREED_TRANSITION
|
||||
2020-03-12,STOP_LOSS,MRVL,7509,19.063262939453125,143146.04141235352,17.297952141169375,17.297952141169375,310971.1700068712,597219.0562878847,VOLATILE_STOCKS
|
||||
2020-03-12,BUY_QQQ_STOPLOSS,QQQ,834,171.52120971679688,143048.6889038086,17.297952141169375,17.297952141169375,167922.48110306263,597219.0562878847,VOLATILE_STOCKS
|
||||
2020-03-16,STOP_LOSS,TSLA,4190,29.67133331298828,124322.8865814209,19.126240915184,19.126240915184,292245.3676844835,552585.3837367296,VOLATILE_STOCKS
|
||||
2020-03-16,BUY_QQQ_STOPLOSS,QQQ,759,163.7635040283203,124296.49955749512,19.126240915184,19.126240915184,167948.8681269884,552585.3837367296,VOLATILE_STOCKS
|
||||
2020-06-03,BUY_GRADUAL,QQQ,185,229.43759155273438,42445.95443725586,78.64383713986213,78.64383713986213,125502.91368973255,707212.8291083574,QQQ_TRANSITION
|
||||
2020-06-04,BUY_GRADUAL,QQQ,187,227.82846069335938,42603.9221496582,79.05391554632061,79.05391554632061,82898.99154007435,703082.4960223436,QQQ_TRANSITION
|
||||
2020-06-05,BUY_GRADUAL,QQQ,183,232.3456268310547,42519.24971008301,83.9440139783205,83.9440139783205,40379.74182999134,715283.7573214769,QQQ_TRANSITION
|
||||
2022-01-26,SELL_GRADUAL,QQQ,723,336.8142395019531,243516.6951599121,24.061477932967016,24.061477932967016,283896.43698990345,1018472.5361949205,FEAR_TRANSITION
|
||||
2022-01-27,SELL_GRADUAL,QQQ,723,333.4222717285156,241064.3024597168,23.19312861351907,23.19312861351907,524960.7394496202,1011148.2586299181,FEAR_TRANSITION
|
||||
2022-01-28,SELL_GRADUAL,QQQ,723,343.8814697265625,248626.3026123047,32.47130624150118,32.47130624150118,773587.0420619249,1026391.1896373034,FEAR_TRANSITION
|
||||
2022-01-31,SELL_GRADUAL,QQQ,723,354.8782653808594,256576.98587036133,40.745889513626054,40.745889513626054,1030164.0279322863,1034683.9514399767,FEAR_TRANSITION
|
||||
2022-02-02,BUY_GRADUAL,NFLX,601,429.4800109863281,258117.4866027832,46.50000935058783,46.50000935058783,772046.5413295031,1034707.5882998705,GREED_TRANSITION
|
||||
2022-02-03,BUY_GRADUAL,PDD,4689,55.130001068115234,258504.57500839233,42.57397684804427,42.57397684804427,513541.9663211107,1020142.6742678881,GREED_TRANSITION
|
||||
2022-02-04,BUY_GRADUAL,WBD,8945,28.899999618530273,258510.4965877533,45.75812386485002,45.75812386485002,255031.46973335743,1026385.4142123461,GREED_TRANSITION
|
||||
2022-03-03,STOP_LOSS,PDD,4689,45.220001220703125,212036.58572387695,38.78432972132524,38.78432972132524,467068.0554572344,948795.3329497576,VOLATILE_STOCKS
|
||||
2022-03-03,BUY_QQQ_STOPLOSS,QQQ,633,334.55621337890625,211774.08306884766,38.78432972132524,38.78432972132524,255293.97238838673,948795.3329497576,VOLATILE_STOCKS
|
||||
2022-03-11,STOP_LOSS,WBD,8945,23.989999771118164,214590.54795265198,30.553866333660586,30.553866333660586,469884.5203410387,878854.3637820482,VOLATILE_STOCKS
|
||||
2022-03-11,BUY_QQQ_STOPLOSS,QQQ,676,317.09814453125,214358.345703125,30.553866333660586,30.553866333660586,255526.1746379137,878854.3637820482,VOLATILE_STOCKS
|
||||
2022-08-16,SELL_GRADUAL,NFLX,151,245.69000244140625,37099.190368652344,75.89323394690028,75.89323394690028,292625.36500656605,833290.0493594408,QQQ_TRANSITION
|
||||
2022-08-16,BUY_GRADUAL,QQQ,313,325.8274841308594,101984.00253295898,75.89323394690028,75.89323394690028,190641.36247360706,833290.0493594408,QQQ_TRANSITION
|
||||
2022-08-17,SELL_GRADUAL,NFLX,151,241.14999389648438,36413.64907836914,71.95888891502631,71.95888891502631,227055.0115519762,825131.600541234,QQQ_TRANSITION
|
||||
2022-08-17,BUY_GRADUAL,QQQ,316,322.1111145019531,101787.11218261719,71.95888891502631,71.95888891502631,125267.89936935902,825131.600541234,QQQ_TRANSITION
|
||||
2022-08-18,SELL_GRADUAL,NFLX,151,245.1699981689453,37020.66972351074,72.7643774387154,72.7643774387154,162288.56909286976,827835.9035960436,QQQ_TRANSITION
|
||||
2022-08-18,BUY_GRADUAL,QQQ,316,322.8857727050781,102031.90417480469,72.7643774387154,72.7643774387154,60256.66491806507,827835.9035960436,QQQ_TRANSITION
|
||||
2022-08-19,SELL_GRADUAL,NFLX,151,241.16000366210938,36415.160552978516,68.48379396098062,68.48379396098062,96671.82547104359,812946.4563647509,QQQ_TRANSITION
|
||||
2022-09-26,SELL_GRADUAL,QQQ,564,269.52557373046875,152012.42358398438,25.412070998468074,25.412070998468074,248684.24905502796,706188.6064368486,FEAR_TRANSITION
|
||||
2022-09-27,SELL_GRADUAL,QQQ,564,269.6336364746094,152073.3709716797,26.22711815731541,26.22711815731541,400757.62002670765,706398.3756018877,FEAR_TRANSITION
|
||||
2022-09-28,SELL_GRADUAL,QQQ,564,274.9972229003906,155098.4337158203,33.21082990012799,33.21082990012799,555856.053742528,712491.662078023,FEAR_TRANSITION
|
||||
2022-09-29,SELL_GRADUAL,QQQ,564,267.0697021484375,150627.31201171875,29.27070352396588,29.27070352396588,706483.3657542467,707972.9652472734,FEAR_TRANSITION
|
||||
2022-10-03,BUY_GRADUAL,BIIB,669,264.29998779296875,176816.6918334961,32.38063116058547,32.38063116058547,529666.6739207506,707985.9719649553,GREED_TRANSITION
|
||||
2022-10-04,BUY_GRADUAL,REGN,239,737.5012817382812,176262.80633544922,42.2918131346582,42.2918131346582,353403.8675853014,710158.7622882128,GREED_TRANSITION
|
||||
2022-10-05,BUY_GRADUAL,NFLX,747,236.72999572753906,176837.30680847168,41.52977712655799,41.52977712655799,176566.56077682972,707777.2871772051,GREED_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,BIIB,167,283.6300048828125,47366.21081542969,72.23030348546578,72.23030348546578,223932.7715922594,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,REGN,59,780.97119140625,46077.30029296875,72.23030348546578,72.23030348546578,270010.07188522816,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,NFLX,186,365.8999938964844,68057.3988647461,72.23030348546578,72.23030348546578,338067.47074997425,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,BUY_GRADUAL,QQQ,683,301.49395751953125,205920.37298583984,72.23030348546578,72.23030348546578,132147.0977641344,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,BIIB,167,288.2799987792969,48142.75979614258,65.34324140803145,65.34324140803145,180289.85756027699,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,REGN,59,778.7074584960938,45943.74005126953,65.34324140803145,65.34324140803145,226233.59761154652,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,NFLX,186,361.4800109863281,67235.28204345703,65.34324140803145,65.34324140803145,293468.87965500355,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,BUY_GRADUAL,QQQ,688,298.9436340332031,205673.22021484375,65.34324140803145,65.34324140803145,87795.6594401598,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,BIIB,167,291.42999267578125,48668.80877685547,70.27852780807376,70.27852780807376,136464.46821701527,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,REGN,59,767.8175048828125,45301.23278808594,70.27852780807376,70.27852780807376,181765.7010051012,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,NFLX,186,362.95001220703125,67508.70227050781,70.27852780807376,70.27852780807376,249274.40327560902,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,BUY_GRADUAL,QQQ,674,305.1373596191406,205662.58038330078,70.27852780807376,70.27852780807376,43611.822892308235,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,BIIB,167,285.45001220703125,47670.15203857422,64.43188468733032,64.43188468733032,91281.97493088245,821817.0054217577,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,REGN,59,747.5934448242188,44108.013244628906,64.43188468733032,64.43188468733032,135389.98817551136,821817.0054217577,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,NFLX,186,366.8299865722656,68230.3775024414,64.43188468733032,64.43188468733032,203620.36567795277,821817.0054217577,QQQ_TRANSITION
|
||||
2023-11-09,STOP_LOSS,BIIB,1,224.64999389648438,224.64999389648438,54.383852658550936,54.383852658550936,203845.01567184925,958229.0677386522,QQQ_HOLD
|
||||
2025-04-07,SELL_GRADUAL,QQQ,511,423.2146911621094,216262.7071838379,24.106379703967942,24.106379703967942,420107.72285568714,1075227.2145739794,FEAR_TRANSITION
|
||||
2025-04-08,SELL_GRADUAL,QQQ,511,415.59326171875,212368.15673828125,23.47897409359107,23.47897409359107,632475.8795939684,1063446.8414145708,FEAR_TRANSITION
|
||||
2025-04-09,SELL_GRADUAL,QQQ,511,465.47723388671875,237858.86651611328,39.00858627592589,39.00858627592589,870334.7461100817,1115042.5140486956,FEAR_TRANSITION
|
||||
2025-04-10,SELL_GRADUAL,QQQ,511,445.6794738769531,227742.21115112305,33.96020602504672,33.96020602504672,1098076.9572612047,1104615.0388365984,FEAR_TRANSITION
|
||||
2025-04-14,BUY_GRADUAL,MCHP,7155,38.58142852783203,276050.1211166382,37.444908145843534,37.444908145843534,822026.8361445665,1104757.0596286058,GREED_TRANSITION
|
||||
2025-04-15,BUY_GRADUAL,WBD,33461,8.25,276053.25,37.75161834264942,37.75161834264942,545973.5861445665,1103806.8776408434,GREED_TRANSITION
|
||||
2025-04-16,STOP_LOSS,WBD,33461,7.920000076293945,265011.1225528717,32.4554396374009,32.4554396374009,810984.7086974382,1087112.121976018,GREED_TRANSITION
|
||||
2025-04-16,BUY_QQQ_STOPLOSS,QQQ,597,443.68170166015625,264877.9758911133,32.4554396374009,32.4554396374009,546106.732806325,1087112.121976018,GREED_TRANSITION
|
||||
2025-04-16,BUY_GRADUAL,AMD,3126,88.29000091552734,275994.5428619385,32.4554396374009,32.4554396374009,270112.1899443865,1087112.121976018,GREED_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,AMD,781,113.51000213623047,88651.311668396,75.62799649436673,75.62799649436673,358763.5016127825,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,MCHP,1788,60.33309555053711,107875.57484436035,75.62799649436673,75.62799649436673,466639.07645714283,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-20,BUY_GRADUAL,QQQ,512,519.6863403320312,266079.40625,75.62799649436673,75.62799649436673,200559.67020714283,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,AMD,781,112.05999755859375,87518.85809326172,68.96239147283873,68.96239147283873,288078.52830040455,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,MCHP,1788,58.79499816894531,105125.45672607422,68.96239147283873,68.96239147283873,393203.98502647877,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-21,BUY_GRADUAL,QQQ,520,512.4644165039062,266481.49658203125,68.96239147283873,68.96239147283873,126722.48844444752,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,AMD,781,110.70999908447266,86464.50928497314,66.69973135428862,66.69973135428862,213186.99772942066,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,MCHP,1788,58.04999923706055,103793.39863586426,66.69973135428862,66.69973135428862,316980.3963652849,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-22,BUY_GRADUAL,QQQ,519,513.4234008789062,266466.74505615234,66.69973135428862,66.69973135428862,50513.651309132576,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,AMD,781,110.30999755859375,86152.10809326172,62.342179974993726,62.342179974993726,136665.7594023943,1338007.1326247454,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,MCHP,1788,56.189998626708984,100467.71754455566,62.342179974993726,62.342179974993726,237133.47694694996,1338007.1326247454,QQQ_TRANSITION
|
||||
|
204
backtest/reports/enhanced_trades_20250718_204803.csv
Normal file
204
backtest/reports/enhanced_trades_20250718_204803.csv
Normal file
@@ -0,0 +1,204 @@
|
||||
date,action,ticker,shares,price,value,fg_index,cnn_fear_greed,cash_after,total_assets,portfolio_state
|
||||
2008-01-09,SELL_GRADUAL,QQQ,609,41.368202209472656,25193.235145568848,26.344740247547747,26.344740247547747,25208.408485412598,100829.48212432861,FEAR_TRANSITION
|
||||
2008-01-10,SELL_GRADUAL,QQQ,609,41.428653717041016,25230.05011367798,32.93074277910004,32.93074277910004,50438.458599090576,100939.98748016357,FEAR_TRANSITION
|
||||
2008-01-11,SELL_GRADUAL,QQQ,609,40.617149353027344,24735.843955993652,28.176976271462404,28.176976271462404,75174.30255508423,99950.76366043091,FEAR_TRANSITION
|
||||
2008-01-14,SELL_GRADUAL,QQQ,609,41.32505798339844,25166.96031188965,30.536227836089562,30.536227836089562,100341.26286697388,100382.58792495728,FEAR_TRANSITION
|
||||
2008-01-16,BUY_GRADUAL,ILMN,745,33.63326644897461,25056.783504486084,27.300196841810212,27.300196841810212,75284.4793624878,100381.0167427063,GREED_TRANSITION
|
||||
2008-01-17,BUY_GRADUAL,TMUS,852,29.416748046875,25063.0693359375,20.374689776577714,20.374689776577714,50221.41002655029,99963.75773239136,GREED_TRANSITION
|
||||
2008-01-18,BUY_GRADUAL,DXCM,11274,2.2249999046325684,25084.648924827576,20.18843039588665,20.18843039588665,25136.761101722717,98656.10165023804,GREED_TRANSITION
|
||||
2008-01-22,BUY_GRADUAL,SBUX,3549,7.068207740783691,25085.06927204132,19.14782163420834,19.14782163420834,51.691829681396484,97151.9062590599,GREED_TRANSITION
|
||||
2008-02-20,STOP_LOSS,TMUS,852,24.76690101623535,21101.39966583252,53.87240876697988,53.87240876697988,21153.091495513916,94385.23314976692,VOLATILE_STOCKS
|
||||
2008-02-20,BUY_QQQ_STOPLOSS,QQQ,556,37.9323616027832,21090.39305114746,53.87240876697988,53.87240876697988,62.69844436645508,94385.23314976692,VOLATILE_STOCKS
|
||||
2008-02-28,STOP_LOSS,DXCM,11274,1.8849999904632568,21251.489892482758,50.39006293843006,50.39006293843006,21314.188336849213,94275.87118148804,VOLATILE_STOCKS
|
||||
2008-02-28,BUY_QQQ_STOPLOSS,QQQ,557,38.087764739990234,21214.88496017456,50.39006293843006,50.39006293843006,99.3033766746521,94275.87118148804,VOLATILE_STOCKS
|
||||
2008-04-25,STOP_LOSS,SBUX,3549,6.004380226135254,21309.545422554016,69.45714736367935,69.45714736367935,21408.84879922867,95417.57655572891,VOLATILE_STOCKS
|
||||
2008-04-25,BUY_QQQ_STOPLOSS,QQQ,523,40.73530578613281,21304.56492614746,69.45714736367935,69.45714736367935,104.28387308120728,95417.57655572891,VOLATILE_STOCKS
|
||||
2008-10-09,STOP_LOSS,ILMN,745,28.21011734008789,21016.53741836548,8.848037539825762,8.848037539825762,21120.821291446686,65760.3383011818,VOLATILE_STOCKS
|
||||
2008-10-09,BUY_QQQ_STOPLOSS,QQQ,770,27.269100189208984,20997.207145690918,8.848037539825762,8.848037539825762,123.61414575576782,65760.3383011818,VOLATILE_STOCKS
|
||||
2009-05-05,BUY_GRADUAL,QQQ,1,30.3912410736084,30.3912410736084,75.86377868118474,75.86377868118474,93.22290468215942,73275.33140993118,QQQ_TRANSITION
|
||||
2009-05-06,BUY_GRADUAL,QQQ,1,30.39992904663086,30.39992904663086,82.3309806574607,82.3309806574607,62.822975635528564,73296.25204896927,QQQ_TRANSITION
|
||||
2009-05-07,BUY_GRADUAL,QQQ,1,29.688297271728516,29.688297271728516,77.63068795156485,77.63068795156485,33.13467836380005,71581.93110322952,QQQ_TRANSITION
|
||||
2009-05-08,BUY_GRADUAL,QQQ,1,29.705650329589844,29.705650329589844,75.32780647633614,75.32780647633614,3.429028034210205,71623.75197267532,QQQ_TRANSITION
|
||||
2010-05-27,SELL_GRADUAL,QQQ,602,40.003875732421875,24082.33319091797,33.580788922696,33.580788922696,24085.76221895218,96452.77341890335,FEAR_TRANSITION
|
||||
2010-05-28,SELL_GRADUAL,QQQ,602,39.7684211730957,23940.589546203613,33.34027831701036,33.34027831701036,48026.35176515579,96026.8361210823,FEAR_TRANSITION
|
||||
2010-06-01,SELL_GRADUAL,QQQ,602,39.40214920043945,23720.09381866455,27.283331291968164,27.283331291968164,71746.44558382034,95584.74585008621,FEAR_TRANSITION
|
||||
2010-06-02,SELL_GRADUAL,QQQ,602,40.335304260253906,24281.85316467285,37.67628312195878,37.67628312195878,96028.2987484932,96149.30466127396,FEAR_TRANSITION
|
||||
2010-06-04,BUY_GRADUAL,SIRI,2705,8.87330436706543,24002.288312911987,36.8189871507287,36.8189871507287,72026.0104355812,96146.26974534988,GREED_TRANSITION
|
||||
2010-06-07,BUY_GRADUAL,NFLX,1539,15.59428596496582,23999.606100082397,35.18107991239285,35.18107991239285,48026.40433549881,95899.19834947586,GREED_TRANSITION
|
||||
2010-06-08,BUY_GRADUAL,TMUS,1793,13.38446044921875,23998.33758544922,33.88560765938214,33.88560765938214,24028.06675004959,95666.38539934158,GREED_TRANSITION
|
||||
2010-06-09,STOP_LOSS,TMUS,1793,13.38446044921875,23998.33758544922,33.40896140370173,33.40896140370173,48026.40433549881,97031.60623884201,GREED_TRANSITION
|
||||
2010-06-09,BUY_QQQ_STOPLOSS,QQQ,627,38.216064453125,23961.472412109375,33.40896140370173,33.40896140370173,24064.931923389435,97031.60623884201,GREED_TRANSITION
|
||||
2010-06-09,BUY_GRADUAL,LULU,1227,19.549999237060547,23987.84906387329,33.40896140370173,33.40896140370173,77.0828595161438,97031.60623884201,GREED_TRANSITION
|
||||
2010-08-30,STOP_LOSS,LULU,1227,15.949999809265137,19570.649765968323,31.110758231093467,31.110758231093467,19647.732625484467,94277.94799089432,VOLATILE_STOCKS
|
||||
2010-08-30,BUY_QQQ_STOPLOSS,QQQ,512,38.179931640625,19548.125,31.110758231093467,31.110758231093467,99.60762548446655,94277.94799089432,VOLATILE_STOCKS
|
||||
2010-11-04,SELL_GRADUAL,SIRI,676,13.309956550598145,8997.530628204346,79.52490444098007,79.52490444098007,9097.138253688812,126784.62676095963,QQQ_TRANSITION
|
||||
2010-11-04,SELL_GRADUAL,NFLX,384,23.974285125732422,9206.12548828125,79.52490444098007,79.52490444098007,18303.263741970062,126784.62676095963,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,SIRI,676,13.85322093963623,9364.777355194092,80.12015594534758,80.12015594534758,27668.041097164154,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-05,SELL_GRADUAL,NFLX,384,24.014286041259766,9221.48583984375,80.12015594534758,80.12015594534758,36889.526937007904,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-05,BUY_GRADUAL,QQQ,404,47.09733963012695,19027.32521057129,80.12015594534758,80.12015594534758,17862.201726436615,127933.11126375198,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,SIRI,676,14.034306526184082,9487.19121170044,78.02954261077275,78.02954261077275,27349.392938137054,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-08,SELL_GRADUAL,NFLX,384,24.161428451538086,9277.988525390625,78.02954261077275,78.02954261077275,36627.38146352768,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-08,BUY_GRADUAL,QQQ,404,47.158782958984375,19052.148315429688,78.02954261077275,78.02954261077275,17575.233148097992,128386.55824708939,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,SIRI,676,13.491044044494629,9119.94577407837,74.24305370136257,74.24305370136257,26695.17892217636,127596.0518898964,QQQ_TRANSITION
|
||||
2010-11-09,SELL_GRADUAL,NFLX,384,24.351428985595703,9350.94873046875,74.24305370136257,74.24305370136257,36046.12765264511,127596.0518898964,QQQ_TRANSITION
|
||||
2010-11-09,BUY_GRADUAL,QQQ,406,46.904296875,19043.14453125,74.24305370136257,74.24305370136257,17002.98312139511,127596.0518898964,QQQ_TRANSITION
|
||||
2011-08-05,SELL_GRADUAL,QQQ,589,47.504486083984375,27980.142303466797,16.014420438739027,16.014420438739027,44983.12542486191,129043.9979929924,FEAR_TRANSITION
|
||||
2011-08-08,SELL_GRADUAL,QQQ,589,44.64522171020508,26296.03558731079,12.102638620949758,12.102638620949758,71279.1610121727,123983.30336236954,FEAR_TRANSITION
|
||||
2011-08-09,SELL_GRADUAL,QQQ,589,46.798492431640625,27564.312042236328,21.243367458738685,21.243367458738685,98843.47305440903,126525.99728345871,FEAR_TRANSITION
|
||||
2011-08-10,SELL_GRADUAL,QQQ,589,44.88348388671875,26436.372009277344,16.34997696820296,16.34997696820296,125279.84506368637,125395.11773633957,FEAR_TRANSITION
|
||||
2011-08-16,BUY_GRADUAL,AMD,4944,6.340000152587891,31344.96075439453,27.713133229401997,27.713133229401997,93934.88430929184,125399.58466482162,GREED_TRANSITION
|
||||
2011-08-17,BUY_GRADUAL,DXCM,11087,2.827500104904175,31348.493663072586,27.444352198857068,27.444352198857068,62586.39064621925,124407.95951032639,GREED_TRANSITION
|
||||
2011-08-18,BUY_GRADUAL,ILMN,684,45.81711959838867,31338.90980529785,21.352782610275447,21.352782610275447,31247.480840921402,121090.06735396385,GREED_TRANSITION
|
||||
2011-09-29,STOP_LOSS,AMD,4944,5.309999942779541,26252.63971710205,35.52057049214211,35.52057049214211,57500.12055802345,119987.04083824158,VOLATILE_STOCKS
|
||||
2011-09-29,BUY_QQQ_STOPLOSS,QQQ,551,47.63679122924805,26247.871967315674,35.52057049214211,35.52057049214211,31252.24859070778,119987.04083824158,VOLATILE_STOCKS
|
||||
2011-10-07,STOP_LOSS,ILMN,684,26.43968963623047,18084.74771118164,45.948970380647914,45.948970380647914,49336.99630188942,106507.84904646873,VOLATILE_STOCKS
|
||||
2011-10-07,BUY_QQQ_STOPLOSS,QQQ,378,47.80477523803711,18070.205039978027,45.948970380647914,45.948970380647914,31266.791261911392,106507.84904646873,VOLATILE_STOCKS
|
||||
2011-10-25,STOP_LOSS,NFLX,3,11.052857398986816,33.15857219696045,57.64810056650888,57.64810056650888,31299.949834108353,107460.6527273655,VOLATILE_STOCKS
|
||||
2011-11-03,STOP_LOSS,DXCM,11087,1.9674999713897705,21813.672182798386,63.392430604527135,63.392430604527135,53113.62201690674,100849.260140419,VOLATILE_STOCKS
|
||||
2011-11-03,BUY_QQQ_STOPLOSS,QQQ,424,51.36781311035156,21779.952758789062,63.392430604527135,63.392430604527135,31333.669258117676,100849.260140419,VOLATILE_STOCKS
|
||||
2012-01-20,BUY_GRADUAL,QQQ,147,53.046531677246094,7797.840156555176,76.11690483789968,76.11690483789968,23535.8291015625,103124.6408443451,QQQ_TRANSITION
|
||||
2012-01-23,BUY_GRADUAL,QQQ,147,53.06429672241211,7800.45161819458,75.47387743828742,75.47387743828742,15735.37748336792,103151.28841209412,QQQ_TRANSITION
|
||||
2012-01-24,BUY_GRADUAL,QQQ,147,52.966651916503906,7786.097831726074,73.6603345892624,73.6603345892624,7949.279651641846,102990.28632545471,QQQ_TRANSITION
|
||||
2012-01-25,BUY_GRADUAL,QQQ,146,53.63228988647461,7830.314323425293,74.7347021654166,74.7347021654166,118.96532821655273,104184.44084358215,QQQ_TRANSITION
|
||||
2012-05-21,SELL_GRADUAL,QQQ,485,55.57248306274414,26952.65428543091,33.89789007404509,33.89789007404509,27071.61961364746,107947.51016616821,FEAR_TRANSITION
|
||||
2012-05-22,SELL_GRADUAL,QQQ,485,55.51026153564453,26922.476844787598,34.48360680185137,34.48360680185137,53994.09645843506,107856.79675674438,FEAR_TRANSITION
|
||||
2012-05-23,SELL_GRADUAL,QQQ,485,55.616939544677734,26974.2156791687,33.07033492791181,33.07033492791181,80968.31213760376,107960.54605484009,FEAR_TRANSITION
|
||||
2012-05-24,SELL_GRADUAL,QQQ,485,55.252464294433594,26797.445182800293,32.19709993260843,32.19709993260843,107765.75732040405,107783.77555847168,FEAR_TRANSITION
|
||||
2012-05-29,BUY_GRADUAL,VRTX,466,57.79999923706055,26934.799644470215,39.29817121538365,39.29817121538365,80830.95767593384,107783.23229789734,GREED_TRANSITION
|
||||
2012-05-30,BUY_GRADUAL,NXPI,1395,19.306720733642578,26932.875423431396,32.69376088195683,32.69376088195683,53898.08225250244,108891.95061683655,GREED_TRANSITION
|
||||
2012-05-31,BUY_GRADUAL,REGN,199,135.27606201171875,26919.93634033203,34.05046977820416,34.05046977820416,26978.14591217041,108301.30829811096,GREED_TRANSITION
|
||||
2012-06-01,BUY_GRADUAL,MNST,2291,11.756667137145996,26934.524411201477,27.26748930164401,27.26748930164401,43.621500968933105,103624.71716690063,GREED_TRANSITION
|
||||
2012-06-13,STOP_LOSS,REGN,199,111.57158660888672,22202.745735168457,43.66172453295675,43.66172453295675,22246.36723613739,101613.35444641113,VOLATILE_STOCKS
|
||||
2012-06-13,BUY_QQQ_STOPLOSS,QQQ,401,55.23466491699219,22149.100631713867,43.66172453295675,43.66172453295675,97.26660442352295,101613.35444641113,VOLATILE_STOCKS
|
||||
2012-07-24,STOP_LOSS,VRTX,466,48.369998931884766,22540.4195022583,50.83486055819301,50.83486055819301,22637.686106681824,98436.31856536865,VOLATILE_STOCKS
|
||||
2012-07-24,BUY_QQQ_STOPLOSS,QQQ,401,56.101200103759766,22496.581241607666,50.83486055819301,50.83486055819301,141.10486507415771,98436.31856536865,VOLATILE_STOCKS
|
||||
2012-08-10,STOP_LOSS,MNST,2291,9.045000076293945,20722.09517478943,62.38576286447885,62.38576286447885,20863.200039863586,99013.82264232635,VOLATILE_STOCKS
|
||||
2012-08-10,BUY_QQQ_STOPLOSS,QQQ,347,59.57632827758789,20672.985912322998,62.38576286447885,62.38576286447885,190.21412754058838,99013.82264232635,VOLATILE_STOCKS
|
||||
2013-01-24,SELL_GRADUAL,NXPI,348,26.462675094604492,9209.010932922363,75.13424844525217,75.13424844525217,9399.225060462952,105958.42475414276,QQQ_TRANSITION
|
||||
2013-01-24,BUY_GRADUAL,QQQ,154,59.8992919921875,9224.490966796875,75.13424844525217,75.13424844525217,174.73409366607666,105958.42475414276,QQQ_TRANSITION
|
||||
2013-01-25,SELL_GRADUAL,NXPI,348,26.98277473449707,9390.00560760498,76.59616542938397,76.59616542938397,9564.739701271057,106901.63360309601,QQQ_TRANSITION
|
||||
2013-01-25,BUY_GRADUAL,QQQ,154,60.20482635498047,9271.543258666992,76.59616542938397,76.59616542938397,293.19644260406494,106901.63360309601,QQQ_TRANSITION
|
||||
2013-01-28,SELL_GRADUAL,NXPI,348,27.350439071655273,9517.952796936035,75.72095442961731,75.72095442961731,9811.1492395401,107355.00672245026,QQQ_TRANSITION
|
||||
2013-01-28,BUY_GRADUAL,QQQ,153,60.33960723876953,9231.959907531738,75.72095442961731,75.72095442961731,579.1893320083618,107355.00672245026,QQQ_TRANSITION
|
||||
2013-01-29,SELL_GRADUAL,NXPI,348,26.462675094604492,9209.010932922363,76.8305936279351,76.8305936279351,9788.200264930725,107057.6746263504,QQQ_TRANSITION
|
||||
2013-01-29,BUY_GRADUAL,QQQ,153,60.34858703613281,9233.33381652832,76.8305936279351,76.8305936279351,554.8664484024048,107057.6746263504,QQQ_TRANSITION
|
||||
2015-08-25,SELL_GRADUAL,QQQ,440,90.95682525634766,40021.00311279297,18.64332792812587,18.64332792812587,40575.86956119537,161162.6973810196,FEAR_TRANSITION
|
||||
2015-08-26,SELL_GRADUAL,QQQ,440,95.53759002685547,42036.539611816406,30.238674126890754,30.238674126890754,82612.40917301178,167235.12405109406,FEAR_TRANSITION
|
||||
2015-08-27,SELL_GRADUAL,QQQ,440,97.9577865600586,43101.42608642578,36.72325111888732,36.72325111888732,125713.83525943756,169377.16119861603,FEAR_TRANSITION
|
||||
2015-08-28,SELL_GRADUAL,QQQ,440,97.93927001953125,43093.27880859375,36.806462475332836,36.806462475332836,168807.1140680313,169369.56935214996,FEAR_TRANSITION
|
||||
2015-09-01,BUY_GRADUAL,NFLX,399,105.79000091552734,42210.21036529541,29.162017163513145,29.162017163513145,126596.9037027359,169343.05567264557,GREED_TRANSITION
|
||||
2015-09-02,BUY_GRADUAL,NVDA,78306,0.5397700667381287,42267.2348459959,33.786594185558485,33.786594185558485,84329.66885674,169220.09294605255,GREED_TRANSITION
|
||||
2015-09-03,BUY_GRADUAL,MU,2608,16.203489303588867,42258.700103759766,35.8957291289263,35.8957291289263,42070.96875298023,167587.2710660696,GREED_TRANSITION
|
||||
2015-09-28,STOP_LOSS,MU,2608,13.732434272766113,35814.18858337402,29.287423364584594,29.287423364584594,77885.15733635426,162450.1579028368,VOLATILE_STOCKS
|
||||
2015-09-28,BUY_QQQ_STOPLOSS,QQQ,385,92.94425964355469,35783.539962768555,29.287423364584594,29.287423364584594,42101.6173735857,162450.1579028368,VOLATILE_STOCKS
|
||||
2017-02-16,SELL_GRADUAL,NFLX,99,142.00999450683594,14058.989456176758,74.18422120605587,74.18422120605587,56160.60682976246,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-16,SELL_GRADUAL,NVDA,19576,2.6415488719940186,51710.96071815491,74.18422120605587,74.18422120605587,107871.56754791737,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-16,BUY_GRADUAL,QQQ,634,121.85171508789062,77253.98736572266,74.18422120605587,74.18422120605587,30617.58018219471,353212.2857557535,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NFLX,99,142.22000122070312,14079.78012084961,73.85576423075787,73.85576423075787,44697.36030304432,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-17,SELL_GRADUAL,NVDA,19576,2.641056776046753,51701.327447891235,73.85576423075787,73.85576423075787,96398.68775093555,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-17,BUY_GRADUAL,QQQ,632,122.37963104248047,77343.92681884766,73.85576423075787,73.85576423075787,19054.7609320879,353785.95212614536,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NFLX,99,142.60000610351562,14117.400604248047,76.26775225821572,76.26775225821572,33172.161536335945,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-21,SELL_GRADUAL,NVDA,19576,2.73563551902771,53552.80092048645,76.26775225821572,76.26775225821572,86724.9624568224,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-21,BUY_GRADUAL,QQQ,628,122.98302459716797,77233.33944702148,76.26775225821572,76.26775225821572,9491.623009800911,358564.9443079233,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NFLX,99,143.86000061035156,14242.140060424805,74.96778290840957,74.96778290840957,23733.763070225716,358720.1136442423,QQQ_TRANSITION
|
||||
2017-02-22,SELL_GRADUAL,NVDA,19576,2.7314422130584717,53470.71276283264,74.96778290840957,74.96778290840957,77204.47583305836,358720.1136442423,QQQ_TRANSITION
|
||||
2018-12-18,SELL_GRADUAL,QQQ,570,151.55323791503906,86385.34561157227,24.442533177764215,24.442533177764215,163589.82144463062,424134.49860584736,FEAR_TRANSITION
|
||||
2018-12-19,SELL_GRADUAL,QQQ,570,147.8318328857422,84264.14474487305,22.796729661345402,22.796729661345402,247853.96618950367,417733.8956876993,FEAR_TRANSITION
|
||||
2018-12-20,SELL_GRADUAL,QQQ,570,145.68890380859375,83042.67517089844,22.299659882587015,22.299659882587015,330896.6413604021,415268.4574147463,FEAR_TRANSITION
|
||||
2018-12-21,SELL_GRADUAL,QQQ,570,141.17352294921875,80468.90808105469,19.58576040567819,19.58576040567819,411365.5494414568,412635.6761728525,FEAR_TRANSITION
|
||||
2018-12-27,BUY_GRADUAL,ZS,2566,40.16999816894531,103076.21530151367,27.938844950891582,27.938844950891582,308289.3341399431,412683.14164316654,GREED_TRANSITION
|
||||
2018-12-28,BUY_GRADUAL,AMD,5785,17.81999969482422,103088.6982345581,26.23355835507341,26.23355835507341,205200.63590538502,411732.7498089075,GREED_TRANSITION
|
||||
2018-12-31,BUY_GRADUAL,MDB,1231,83.73999786376953,103083.9373703003,30.089955926210273,30.089955926210273,102116.69853508472,413961.4327007532,GREED_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,ZS,641,64.98999786376953,41658.58863067627,74.73809260902496,74.73809260902496,143775.287165761,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,AMD,1446,28.459999084472656,41153.15867614746,74.73809260902496,74.73809260902496,184928.44584190845,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,SELL_GRADUAL,MDB,307,135.16000366210938,41494.12112426758,74.73809260902496,74.73809260902496,226422.56696617603,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-24,BUY_GRADUAL,QQQ,825,182.33738708496094,150428.34434509277,74.73809260902496,74.73809260902496,75994.22262108326,601725.5841990709,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,ZS,641,66.95999908447266,42921.35941314697,74.47201415715975,74.47201415715975,118915.58203423023,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,AMD,1446,27.65999984741211,39996.35977935791,74.47201415715975,74.47201415715975,158911.94181358814,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,SELL_GRADUAL,MDB,307,137.66000366210938,42261.62112426758,74.47201415715975,74.47201415715975,201173.56293785572,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-25,BUY_GRADUAL,QQQ,822,183.07749938964844,150489.70449829102,74.47201415715975,74.47201415715975,50683.858439564705,604944.3393937349,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,ZS,641,66.94000244140625,42908.541564941406,74.04664446450204,74.04664446450204,93592.40000450611,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,AMD,1446,27.8799991607666,40314.478786468506,74.04664446450204,74.04664446450204,133906.87879097462,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,SELL_GRADUAL,MDB,307,138.97999572753906,42666.85868835449,74.04664446450204,74.04664446450204,176573.7374793291,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-26,BUY_GRADUAL,QQQ,821,183.2408905029297,150440.77110290527,74.04664446450204,74.04664446450204,26132.966376423836,606662.1562358141,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,ZS,641,68.19999694824219,43716.19804382324,74.33985266042214,74.33985266042214,69849.16442024708,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,AMD,1446,27.690000534057617,40039.740772247314,74.33985266042214,74.33985266042214,109888.90519249439,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,SELL_GRADUAL,MDB,307,137.5,42212.5,74.33985266042214,74.33985266042214,152101.4051924944,607605.7671710253,QQQ_TRANSITION
|
||||
2019-04-29,BUY_GRADUAL,QQQ,820,183.5964813232422,150549.1146850586,74.33985266042214,74.33985266042214,1552.2905074357986,607605.7671710253,QQQ_TRANSITION
|
||||
2020-02-28,SELL_GRADUAL,QQQ,822,199.0699005126953,163635.45822143555,20.377945426333802,20.377945426333802,165187.74872887135,658590.0816584826,FEAR_TRANSITION
|
||||
2020-03-02,SELL_GRADUAL,QQQ,822,209.34254455566406,172079.57162475586,36.64935574118489,36.64935574118489,337267.3203536272,684011.7751408815,FEAR_TRANSITION
|
||||
2020-03-03,SELL_GRADUAL,QQQ,822,202.62953186035156,166561.47518920898,29.173017969864834,29.173017969864834,503828.7955428362,672909.4515925646,FEAR_TRANSITION
|
||||
2020-03-04,SELL_GRADUAL,QQQ,822,211.08370971679688,173510.80938720703,37.762293269698624,37.762293269698624,677339.6049300432,679956.120731473,FEAR_TRANSITION
|
||||
2020-03-06,BUY_GRADUAL,MRNA,5736,29.610000610351562,169842.96350097656,24.79777800648001,24.79777800648001,507496.64142906666,679825.6721946001,GREED_TRANSITION
|
||||
2020-03-09,STOP_LOSS,MRNA,5736,24.290000915527344,139327.44525146484,16.994433907313056,16.994433907313056,646824.0866805315,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-09,BUY_QQQ_STOPLOSS,QQQ,744,187.23983764648438,139306.43920898438,16.994433907313056,16.994433907313056,507517.6474715471,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-09,BUY_GRADUAL,TSLA,4190,40.53333282470703,169834.66453552246,16.994433907313056,16.994433907313056,337682.98293602467,649100.3950177431,GREED_TRANSITION
|
||||
2020-03-10,BUY_GRADUAL,MRVL,7509,22.620569229125977,169857.85434150696,24.7215849676679,24.7215849676679,167825.1285945177,667229.5989590883,GREED_TRANSITION
|
||||
2020-03-12,STOP_LOSS,MRVL,7509,19.063262939453125,143146.04141235352,17.297952141169375,17.297952141169375,310971.1700068712,597219.0562878847,VOLATILE_STOCKS
|
||||
2020-03-12,BUY_QQQ_STOPLOSS,QQQ,834,171.52120971679688,143048.6889038086,17.297952141169375,17.297952141169375,167922.48110306263,597219.0562878847,VOLATILE_STOCKS
|
||||
2020-03-16,STOP_LOSS,TSLA,4190,29.67133331298828,124322.8865814209,19.126240915184,19.126240915184,292245.3676844835,552585.3837367296,VOLATILE_STOCKS
|
||||
2020-03-16,BUY_QQQ_STOPLOSS,QQQ,759,163.7635040283203,124296.49955749512,19.126240915184,19.126240915184,167948.8681269884,552585.3837367296,VOLATILE_STOCKS
|
||||
2020-06-03,BUY_GRADUAL,QQQ,185,229.43759155273438,42445.95443725586,78.64383713986213,78.64383713986213,125502.91368973255,707212.8291083574,QQQ_TRANSITION
|
||||
2020-06-04,BUY_GRADUAL,QQQ,187,227.82846069335938,42603.9221496582,79.05391554632061,79.05391554632061,82898.99154007435,703082.4960223436,QQQ_TRANSITION
|
||||
2020-06-05,BUY_GRADUAL,QQQ,183,232.3456268310547,42519.24971008301,83.9440139783205,83.9440139783205,40379.74182999134,715283.7573214769,QQQ_TRANSITION
|
||||
2022-01-26,SELL_GRADUAL,QQQ,723,336.8142395019531,243516.6951599121,24.061477932967016,24.061477932967016,283896.43698990345,1018472.5361949205,FEAR_TRANSITION
|
||||
2022-01-27,SELL_GRADUAL,QQQ,723,333.4222717285156,241064.3024597168,23.19312861351907,23.19312861351907,524960.7394496202,1011148.2586299181,FEAR_TRANSITION
|
||||
2022-01-28,SELL_GRADUAL,QQQ,723,343.8814697265625,248626.3026123047,32.47130624150118,32.47130624150118,773587.0420619249,1026391.1896373034,FEAR_TRANSITION
|
||||
2022-01-31,SELL_GRADUAL,QQQ,723,354.8782653808594,256576.98587036133,40.745889513626054,40.745889513626054,1030164.0279322863,1034683.9514399767,FEAR_TRANSITION
|
||||
2022-02-02,BUY_GRADUAL,NFLX,601,429.4800109863281,258117.4866027832,46.50000935058783,46.50000935058783,772046.5413295031,1034707.5882998705,GREED_TRANSITION
|
||||
2022-02-03,BUY_GRADUAL,PDD,4689,55.130001068115234,258504.57500839233,42.57397684804427,42.57397684804427,513541.9663211107,1020142.6742678881,GREED_TRANSITION
|
||||
2022-02-04,BUY_GRADUAL,WBD,8945,28.899999618530273,258510.4965877533,45.75812386485002,45.75812386485002,255031.46973335743,1026385.4142123461,GREED_TRANSITION
|
||||
2022-03-03,STOP_LOSS,PDD,4689,45.220001220703125,212036.58572387695,38.78432972132524,38.78432972132524,467068.0554572344,948795.3329497576,VOLATILE_STOCKS
|
||||
2022-03-03,BUY_QQQ_STOPLOSS,QQQ,633,334.55621337890625,211774.08306884766,38.78432972132524,38.78432972132524,255293.97238838673,948795.3329497576,VOLATILE_STOCKS
|
||||
2022-03-11,STOP_LOSS,WBD,8945,23.989999771118164,214590.54795265198,30.553866333660586,30.553866333660586,469884.5203410387,878854.3637820482,VOLATILE_STOCKS
|
||||
2022-03-11,BUY_QQQ_STOPLOSS,QQQ,676,317.09814453125,214358.345703125,30.553866333660586,30.553866333660586,255526.1746379137,878854.3637820482,VOLATILE_STOCKS
|
||||
2022-08-16,SELL_GRADUAL,NFLX,151,245.69000244140625,37099.190368652344,75.89323394690028,75.89323394690028,292625.36500656605,833290.0493594408,QQQ_TRANSITION
|
||||
2022-08-16,BUY_GRADUAL,QQQ,313,325.8274841308594,101984.00253295898,75.89323394690028,75.89323394690028,190641.36247360706,833290.0493594408,QQQ_TRANSITION
|
||||
2022-08-17,SELL_GRADUAL,NFLX,151,241.14999389648438,36413.64907836914,71.95888891502631,71.95888891502631,227055.0115519762,825131.600541234,QQQ_TRANSITION
|
||||
2022-08-17,BUY_GRADUAL,QQQ,316,322.1111145019531,101787.11218261719,71.95888891502631,71.95888891502631,125267.89936935902,825131.600541234,QQQ_TRANSITION
|
||||
2022-08-18,SELL_GRADUAL,NFLX,151,245.1699981689453,37020.66972351074,72.7643774387154,72.7643774387154,162288.56909286976,827835.9035960436,QQQ_TRANSITION
|
||||
2022-08-18,BUY_GRADUAL,QQQ,316,322.8857727050781,102031.90417480469,72.7643774387154,72.7643774387154,60256.66491806507,827835.9035960436,QQQ_TRANSITION
|
||||
2022-08-19,SELL_GRADUAL,NFLX,151,241.16000366210938,36415.160552978516,68.48379396098062,68.48379396098062,96671.82547104359,812946.4563647509,QQQ_TRANSITION
|
||||
2022-09-26,SELL_GRADUAL,QQQ,564,269.52557373046875,152012.42358398438,25.412070998468074,25.412070998468074,248684.24905502796,706188.6064368486,FEAR_TRANSITION
|
||||
2022-09-27,SELL_GRADUAL,QQQ,564,269.6336364746094,152073.3709716797,26.22711815731541,26.22711815731541,400757.62002670765,706398.3756018877,FEAR_TRANSITION
|
||||
2022-09-28,SELL_GRADUAL,QQQ,564,274.9972229003906,155098.4337158203,33.21082990012799,33.21082990012799,555856.053742528,712491.662078023,FEAR_TRANSITION
|
||||
2022-09-29,SELL_GRADUAL,QQQ,564,267.0697021484375,150627.31201171875,29.27070352396588,29.27070352396588,706483.3657542467,707972.9652472734,FEAR_TRANSITION
|
||||
2022-10-03,BUY_GRADUAL,BIIB,669,264.29998779296875,176816.6918334961,32.38063116058547,32.38063116058547,529666.6739207506,707985.9719649553,GREED_TRANSITION
|
||||
2022-10-04,BUY_GRADUAL,REGN,239,737.5012817382812,176262.80633544922,42.2918131346582,42.2918131346582,353403.8675853014,710158.7622882128,GREED_TRANSITION
|
||||
2022-10-05,BUY_GRADUAL,NFLX,747,236.72999572753906,176837.30680847168,41.52977712655799,41.52977712655799,176566.56077682972,707777.2871772051,GREED_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,BIIB,167,283.6300048828125,47366.21081542969,72.23030348546578,72.23030348546578,223932.7715922594,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,REGN,59,780.97119140625,46077.30029296875,72.23030348546578,72.23030348546578,270010.07188522816,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,SELL_GRADUAL,NFLX,186,365.8999938964844,68057.3988647461,72.23030348546578,72.23030348546578,338067.47074997425,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-03,BUY_GRADUAL,QQQ,683,301.49395751953125,205920.37298583984,72.23030348546578,72.23030348546578,132147.0977641344,827954.7001353502,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,BIIB,167,288.2799987792969,48142.75979614258,65.34324140803145,65.34324140803145,180289.85756027699,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,REGN,59,778.7074584960938,45943.74005126953,65.34324140803145,65.34324140803145,226233.59761154652,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,SELL_GRADUAL,NFLX,186,361.4800109863281,67235.28204345703,65.34324140803145,65.34324140803145,293468.87965500355,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-06,BUY_GRADUAL,QQQ,688,298.9436340332031,205673.22021484375,65.34324140803145,65.34324140803145,87795.6594401598,825630.6798182726,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,BIIB,167,291.42999267578125,48668.80877685547,70.27852780807376,70.27852780807376,136464.46821701527,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,REGN,59,767.8175048828125,45301.23278808594,70.27852780807376,70.27852780807376,181765.7010051012,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,SELL_GRADUAL,NFLX,186,362.95001220703125,67508.70227050781,70.27852780807376,70.27852780807376,249274.40327560902,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-07,BUY_GRADUAL,QQQ,674,305.1373596191406,205662.58038330078,70.27852780807376,70.27852780807376,43611.822892308235,834460.9118129015,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,BIIB,167,285.45001220703125,47670.15203857422,64.43188468733032,64.43188468733032,91281.97493088245,821817.0054217577,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,REGN,59,747.5934448242188,44108.013244628906,64.43188468733032,64.43188468733032,135389.98817551136,821817.0054217577,QQQ_TRANSITION
|
||||
2023-02-08,SELL_GRADUAL,NFLX,186,366.8299865722656,68230.3775024414,64.43188468733032,64.43188468733032,203620.36567795277,821817.0054217577,QQQ_TRANSITION
|
||||
2023-11-09,STOP_LOSS,BIIB,1,224.64999389648438,224.64999389648438,54.383852658550936,54.383852658550936,203845.01567184925,958229.0677386522,QQQ_HOLD
|
||||
2025-04-07,SELL_GRADUAL,QQQ,511,423.2146911621094,216262.7071838379,24.106379703967942,24.106379703967942,420107.72285568714,1075227.2145739794,FEAR_TRANSITION
|
||||
2025-04-08,SELL_GRADUAL,QQQ,511,415.59326171875,212368.15673828125,23.47897409359107,23.47897409359107,632475.8795939684,1063446.8414145708,FEAR_TRANSITION
|
||||
2025-04-09,SELL_GRADUAL,QQQ,511,465.47723388671875,237858.86651611328,39.00858627592589,39.00858627592589,870334.7461100817,1115042.5140486956,FEAR_TRANSITION
|
||||
2025-04-10,SELL_GRADUAL,QQQ,511,445.6794738769531,227742.21115112305,33.96020602504672,33.96020602504672,1098076.9572612047,1104615.0388365984,FEAR_TRANSITION
|
||||
2025-04-14,BUY_GRADUAL,MCHP,7155,38.58142852783203,276050.1211166382,37.444908145843534,37.444908145843534,822026.8361445665,1104757.0596286058,GREED_TRANSITION
|
||||
2025-04-15,BUY_GRADUAL,WBD,33461,8.25,276053.25,37.75161834264942,37.75161834264942,545973.5861445665,1103806.8776408434,GREED_TRANSITION
|
||||
2025-04-16,STOP_LOSS,WBD,33461,7.920000076293945,265011.1225528717,32.4554396374009,32.4554396374009,810984.7086974382,1087112.121976018,GREED_TRANSITION
|
||||
2025-04-16,BUY_QQQ_STOPLOSS,QQQ,597,443.68170166015625,264877.9758911133,32.4554396374009,32.4554396374009,546106.732806325,1087112.121976018,GREED_TRANSITION
|
||||
2025-04-16,BUY_GRADUAL,AMD,3126,88.29000091552734,275994.5428619385,32.4554396374009,32.4554396374009,270112.1899443865,1087112.121976018,GREED_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,AMD,781,113.51000213623047,88651.311668396,75.62799649436673,75.62799649436673,358763.5016127825,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-20,SELL_GRADUAL,MCHP,1788,60.33309555053711,107875.57484436035,75.62799649436673,75.62799649436673,466639.07645714283,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-20,BUY_GRADUAL,QQQ,512,519.6863403320312,266079.40625,75.62799649436673,75.62799649436673,200559.67020714283,1374923.4734870195,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,AMD,781,112.05999755859375,87518.85809326172,68.96239147283873,68.96239147283873,288078.52830040455,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-21,SELL_GRADUAL,MCHP,1788,58.79499816894531,105125.45672607422,68.96239147283873,68.96239147283873,393203.98502647877,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-21,BUY_GRADUAL,QQQ,520,512.4644165039062,266481.49658203125,68.96239147283873,68.96239147283873,126722.48844444752,1355189.5948916674,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,AMD,781,110.70999908447266,86464.50928497314,66.69973135428862,66.69973135428862,213186.99772942066,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-22,SELL_GRADUAL,MCHP,1788,58.04999923706055,103793.39863586426,66.69973135428862,66.69973135428862,316980.3963652849,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-22,BUY_GRADUAL,QQQ,519,513.4234008789062,266466.74505615234,66.69973135428862,66.69973135428862,50513.651309132576,1351925.0433951616,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,AMD,781,110.30999755859375,86152.10809326172,62.342179974993726,62.342179974993726,136665.7594023943,1338007.1326247454,QQQ_TRANSITION
|
||||
2025-05-23,SELL_GRADUAL,MCHP,1788,56.189998626708984,100467.71754455566,62.342179974993726,62.342179974993726,237133.47694694996,1338007.1326247454,QQQ_TRANSITION
|
||||
|
Binary file not shown.
Binary file not shown.
@@ -1,157 +0,0 @@
|
||||
aiohappyeyeballs==2.6.1
|
||||
aiohttp==3.12.14
|
||||
aiosignal==1.4.0
|
||||
anyio==3.6.2
|
||||
attrs==25.3.0
|
||||
Brlapi==0.8.4
|
||||
certifi==2022.9.24
|
||||
chardet==5.1.0
|
||||
charset-normalizer==3.0.1
|
||||
click==8.1.3
|
||||
colorama==0.4.6
|
||||
cryptography==38.0.4
|
||||
cupshelpers==1.0
|
||||
dbus-python==1.3.2
|
||||
discord.py==2.5.2
|
||||
dnspython==2.3.0
|
||||
feedparser==6.0.10
|
||||
frozenlist==1.7.0
|
||||
gpg==1.18.0
|
||||
h11==0.14.0
|
||||
h2==4.1.0
|
||||
hpack==4.0.0
|
||||
httpcore==0.16.3
|
||||
httplib2==0.20.4
|
||||
httpx==0.23.3
|
||||
hyperframe==6.0.0
|
||||
idna==3.3
|
||||
louis==3.24.0
|
||||
Markdown==3.4.1
|
||||
markdown-it-py==2.1.0
|
||||
mdurl==0.1.2
|
||||
multidict==6.6.3
|
||||
musicbrainzngs==0.7.1
|
||||
mutagen==1.46.0
|
||||
propcache==0.3.2
|
||||
pycairo==1.20.1
|
||||
pycups==2.0.1
|
||||
pycurl==7.45.2
|
||||
Pygments==2.14.0
|
||||
PyGObject==3.42.2
|
||||
pyinotify==0.9.6
|
||||
pyparsing==3.0.9
|
||||
PySimpleSOAP==1.16.2
|
||||
pysmbc==1.0.23
|
||||
python-apt==2.6.0
|
||||
python-debian==0.1.49
|
||||
python-debianbts==4.0.1
|
||||
pyxdg==0.28
|
||||
PyYAML==6.0
|
||||
quodlibet==4.5.0
|
||||
reportbug==12.0.0
|
||||
requests==2.28.1
|
||||
requests-toolbelt==0.10.1
|
||||
rfc3986==1.5.0
|
||||
rich==13.3.1
|
||||
sgmllib3k==1.0.0
|
||||
six==1.16.0
|
||||
sniffio==1.2.0
|
||||
typing_extensions==4.14.1
|
||||
urllib3==1.26.12
|
||||
xdg==5
|
||||
yarl==1.20.1
|
||||
|
||||
|
||||
|
||||
|
||||
will@debian ~ 18:13 python3 --version
|
||||
python --version
|
||||
Python 3.11.2
|
||||
-bash: python: command not found
|
||||
will@debian ~ 18:13 pip3 --version
|
||||
pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11)
|
||||
will@debian ~ 18:13 pip3 list
|
||||
Package Version
|
||||
------------------ ---------
|
||||
aiohappyeyeballs 2.6.1
|
||||
aiohttp 3.12.14
|
||||
aiosignal 1.4.0
|
||||
anyio 3.6.2
|
||||
attrs 25.3.0
|
||||
Brlapi 0.8.4
|
||||
certifi 2022.9.24
|
||||
chardet 5.1.0
|
||||
charset-normalizer 3.0.1
|
||||
click 8.1.3
|
||||
colorama 0.4.6
|
||||
cryptography 38.0.4
|
||||
cupshelpers 1.0
|
||||
dbus-python 1.3.2
|
||||
discord.py 2.5.2
|
||||
dnspython 2.3.0
|
||||
feedparser 6.0.10
|
||||
frozenlist 1.7.0
|
||||
gpg 1.18.0
|
||||
h11 0.14.0
|
||||
h2 4.1.0
|
||||
hpack 4.0.0
|
||||
httpcore 0.16.3
|
||||
httplib2 0.20.4
|
||||
httpx 0.23.3
|
||||
hyperframe 6.0.0
|
||||
idna 3.3
|
||||
louis 3.24.0
|
||||
Markdown 3.4.1
|
||||
markdown-it-py 2.1.0
|
||||
mdurl 0.1.2
|
||||
multidict 6.6.3
|
||||
musicbrainzngs 0.7.1
|
||||
mutagen 1.46.0
|
||||
pip 23.0.1
|
||||
propcache 0.3.2
|
||||
pycairo 1.20.1
|
||||
pycups 2.0.1
|
||||
pycurl 7.45.2
|
||||
Pygments 2.14.0
|
||||
PyGObject 3.42.2
|
||||
pyinotify 0.9.6
|
||||
pyparsing 3.0.9
|
||||
PySimpleSOAP 1.16.2
|
||||
pysmbc 1.0.23
|
||||
python-apt 2.6.0
|
||||
python-debian 0.1.49
|
||||
python-debianbts 4.0.1
|
||||
pyxdg 0.28
|
||||
PyYAML 6.0
|
||||
quodlibet 4.5.0
|
||||
reportbug 12.0.0
|
||||
requests 2.28.1
|
||||
requests-toolbelt 0.10.1
|
||||
rfc3986 1.5.0
|
||||
rich 13.3.1
|
||||
setuptools 66.1.1
|
||||
sgmllib3k 1.0.0
|
||||
six 1.16.0
|
||||
sniffio 1.2.0
|
||||
typing_extensions 4.14.1
|
||||
urllib3 1.26.12
|
||||
wheel 0.38.4
|
||||
xdg 5
|
||||
yarl 1.20.1
|
||||
will@debian ~ 18:14
|
||||
will@debian ~ 18:14 cat /etc/os-release
|
||||
uname -a
|
||||
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
|
||||
NAME="Debian GNU/Linux"
|
||||
VERSION_ID="12"
|
||||
VERSION="12 (bookworm)"
|
||||
VERSION_CODENAME=bookworm
|
||||
ID=debian
|
||||
HOME_URL="https://www.debian.org/"
|
||||
SUPPORT_URL="https://www.debian.org/support"
|
||||
BUG_REPORT_URL="https://bugs.debian.org/"
|
||||
Linux debian 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux
|
||||
will@debian ~ 18:14 pip3 freeze > requirements_server.txt
|
||||
will@debian ~ 18:14 ls
|
||||
back_up backup_docker.sh discord_tokens_backup.txt docker docker_backups homeassistant requirements_server.txt
|
||||
will@debian ~ 18:14
|
||||
BIN
backtest/results/enhanced_strategy_20250718_182730.pkl
Normal file
BIN
backtest/results/enhanced_strategy_20250718_182730.pkl
Normal file
Binary file not shown.
BIN
backtest/results/enhanced_strategy_20250718_183737.pkl
Normal file
BIN
backtest/results/enhanced_strategy_20250718_183737.pkl
Normal file
Binary file not shown.
BIN
backtest/results/enhanced_strategy_20250718_185722.pkl
Normal file
BIN
backtest/results/enhanced_strategy_20250718_185722.pkl
Normal file
Binary file not shown.
BIN
backtest/results/enhanced_strategy_20250718_190932.pkl
Normal file
BIN
backtest/results/enhanced_strategy_20250718_190932.pkl
Normal file
Binary file not shown.
BIN
backtest/results/enhanced_strategy_20250718_191059.pkl
Normal file
BIN
backtest/results/enhanced_strategy_20250718_191059.pkl
Normal file
Binary file not shown.
BIN
backtest/results/enhanced_strategy_20250718_192206.pkl
Normal file
BIN
backtest/results/enhanced_strategy_20250718_192206.pkl
Normal file
Binary file not shown.
BIN
backtest/results/enhanced_strategy_20250718_204803.pkl
Normal file
BIN
backtest/results/enhanced_strategy_20250718_204803.pkl
Normal file
Binary file not shown.
156
backtest/strategy/emotional-damage/README_CONFIG.md
Normal file
156
backtest/strategy/emotional-damage/README_CONFIG.md
Normal file
@@ -0,0 +1,156 @@
|
||||
# Enhanced Emotional Damage Strategy - 配置化运行指南
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
只需要两个步骤就能运行策略并生成完整报告:
|
||||
|
||||
1. **修改配置文件** `config.json`
|
||||
2. **运行策略** `python3 run_strategy_with_config.py`
|
||||
|
||||
## 📝 配置文件说明
|
||||
|
||||
### `config.json` 主要参数:
|
||||
|
||||
#### 策略参数 (`strategy_params`)
|
||||
```json
|
||||
{
|
||||
"initial_capital": 100000, // 初始资金
|
||||
"fear_threshold": 25, // 恐慌阈值
|
||||
"greed_threshold": 75, // 贪婪阈值
|
||||
"stop_loss_threshold": 0.15, // 止损阈值 (15%)
|
||||
"transition_steps": 4, // 转换步数
|
||||
"top_stocks_count": 4, // 选股数量
|
||||
"volatility_threshold": 0.1, // 波动率阈值 (10%)
|
||||
"volatility_calculation_days": 30 // 波动率计算天数
|
||||
}
|
||||
```
|
||||
|
||||
#### 技术指标参数 (`technical_indicators`)
|
||||
```json
|
||||
{
|
||||
"rsi_threshold": 30, // RSI阈值
|
||||
"required_indicators": 2, // 需要满足的指标数量 (2/3)
|
||||
"sma5_above_sma20": true, // 是否要求SMA5>SMA20
|
||||
"macd_convergence": true, // MACD收敛而非金叉
|
||||
"ema_periods": {
|
||||
"fast": 12, "slow": 26, "signal": 9
|
||||
},
|
||||
"sma_periods": {
|
||||
"fast": 5, "slow": 20
|
||||
},
|
||||
"rsi_period": 14
|
||||
}
|
||||
```
|
||||
|
||||
#### 输出设置 (`output_settings`)
|
||||
```json
|
||||
{
|
||||
"generate_pdf": true, // 生成PDF报告
|
||||
"generate_csv": true, // 生成CSV文件
|
||||
"generate_detailed_trades": true, // 生成详细交易记录
|
||||
"show_console_output": true, // 显示控制台输出
|
||||
"save_strategy_object": true // 保存策略对象
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 常用修改场景
|
||||
|
||||
### 场景1:调整风险参数
|
||||
```json
|
||||
{
|
||||
"stop_loss_threshold": 0.10, // 改为10%止损
|
||||
"fear_threshold": 20, // 更激进的恐慌阈值
|
||||
"greed_threshold": 80 // 更保守的贪婪阈值
|
||||
}
|
||||
```
|
||||
|
||||
### 场景2:修改选股逻辑
|
||||
```json
|
||||
{
|
||||
"top_stocks_count": 6, // 选择6只股票
|
||||
"required_indicators": 3, // 要求所有3个指标都满足
|
||||
"volatility_threshold": 0.15 // 提高波动率要求
|
||||
}
|
||||
```
|
||||
|
||||
### 场景3:技术指标调优
|
||||
```json
|
||||
{
|
||||
"rsi_threshold": 40, // 提高RSI要求
|
||||
"sma5_above_sma20": false, // 取消SMA要求
|
||||
"macd_convergence": false // 改为传统MACD金叉
|
||||
}
|
||||
```
|
||||
|
||||
### 场景4:只生成特定报告
|
||||
```json
|
||||
{
|
||||
"generate_pdf": false, // 不生成PDF
|
||||
"generate_csv": true, // 只要CSV
|
||||
"generate_detailed_trades": true,
|
||||
"show_console_output": false // 静默运行
|
||||
}
|
||||
```
|
||||
|
||||
## 📊 运行和输出
|
||||
|
||||
### 运行命令
|
||||
```bash
|
||||
cd /home/will/docker/backtest/strategy/emotional-damage/
|
||||
python3 run_strategy_with_config.py
|
||||
```
|
||||
|
||||
### 输出文件
|
||||
运行后会在以下目录生成文件:
|
||||
|
||||
#### `/home/will/docker/backtest/reports/`
|
||||
- `enhanced_strategy_report_YYYYMMDD_HHMMSS.pdf` - PDF综合报告
|
||||
- `enhanced_trades_YYYYMMDD_HHMMSS.csv` - 交易记录CSV
|
||||
- `detailed_trades_YYYYMMDD_HHMMSS.txt` - 详细交易报告
|
||||
|
||||
#### `/home/will/docker/backtest/results/`
|
||||
- `enhanced_strategy_YYYYMMDD_HHMMSS.pkl` - 策略对象(用于进一步分析)
|
||||
|
||||
## 🔧 常见问题
|
||||
|
||||
### Q: 如何测试不同的参数组合?
|
||||
A: 复制config.json为不同文件名(如config_test1.json),修改run_strategy_with_config.py中的文件名
|
||||
|
||||
### Q: 如何只测试特定时间段?
|
||||
A: 修改config.json中的data_settings:
|
||||
```json
|
||||
{
|
||||
"start_date": "2020-01-01",
|
||||
"end_date": "2023-12-31"
|
||||
}
|
||||
```
|
||||
|
||||
### Q: 如何加快运行速度?
|
||||
A: 设置output_settings:
|
||||
```json
|
||||
{
|
||||
"generate_pdf": false,
|
||||
"show_console_output": false
|
||||
}
|
||||
```
|
||||
|
||||
### Q: 如何分析特定股票的表现?
|
||||
A: 查看生成的CSV文件,按ticker列筛选
|
||||
|
||||
## 📈 性能调优建议
|
||||
|
||||
1. **保守策略**:提高fear_threshold到30,降低greed_threshold到70
|
||||
2. **激进策略**:降低fear_threshold到20,提高greed_threshold到80
|
||||
3. **严格选股**:设置required_indicators为3,提高volatility_threshold
|
||||
4. **宽松选股**:设置required_indicators为1,降低rsi_threshold
|
||||
|
||||
## 🚨 注意事项
|
||||
|
||||
1. 修改配置后记得保存文件
|
||||
2. 确保数据库路径正确
|
||||
3. 首次运行可能需要几分钟时间
|
||||
4. 大幅修改参数可能导致无交易或过度交易
|
||||
|
||||
---
|
||||
|
||||
Happy Trading! 🎯
|
||||
BIN
backtest/strategy/emotional-damage/__pycache__/backtest_emotional_damage.cpython-311.pyc
Executable file → Normal file
BIN
backtest/strategy/emotional-damage/__pycache__/backtest_emotional_damage.cpython-311.pyc
Executable file → Normal file
Binary file not shown.
Binary file not shown.
@@ -3,9 +3,11 @@ import pandas as pd
|
||||
import numpy as np
|
||||
from datetime import datetime, timedelta
|
||||
import matplotlib.pyplot as plt
|
||||
import matplotlib.dates as mdates
|
||||
import seaborn as sns
|
||||
from matplotlib.backends.backend_pdf import PdfPages
|
||||
import warnings
|
||||
import os
|
||||
warnings.filterwarnings('ignore')
|
||||
|
||||
class EmotionalDamageStrategy:
|
||||
@@ -21,7 +23,11 @@ class EmotionalDamageStrategy:
|
||||
|
||||
def get_data(self):
|
||||
"""Load Fear & Greed Index and QQQ/SPY data"""
|
||||
conn = sqlite3.connect('data/stock_data.db')
|
||||
import os
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
backtest_dir = os.path.dirname(os.path.dirname(script_dir))
|
||||
db_path = os.path.join(backtest_dir, 'data', 'stock_data.db')
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
# Get Fear & Greed Index
|
||||
fg_data = pd.read_sql_query('''
|
||||
@@ -32,14 +38,14 @@ class EmotionalDamageStrategy:
|
||||
fg_data['date'] = pd.to_datetime(fg_data['date'])
|
||||
fg_data.set_index('date', inplace=True)
|
||||
|
||||
# Get QQQ price data (using SPY as proxy since QQQ data might be limited)
|
||||
spy_data = pd.read_sql_query('''
|
||||
SELECT date, spy_close
|
||||
FROM fear_greed_data
|
||||
# Get real QQQ price data
|
||||
qqq_data = pd.read_sql_query('''
|
||||
SELECT date, close as qqq_close
|
||||
FROM qqq
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
spy_data['date'] = pd.to_datetime(spy_data['date'])
|
||||
spy_data.set_index('date', inplace=True)
|
||||
qqq_data['date'] = pd.to_datetime(qqq_data['date'])
|
||||
qqq_data.set_index('date', inplace=True)
|
||||
|
||||
# Get available tickers for high volatility selection
|
||||
cursor = conn.cursor()
|
||||
@@ -49,7 +55,7 @@ class EmotionalDamageStrategy:
|
||||
conn.close()
|
||||
|
||||
# Merge data
|
||||
self.data = pd.merge(fg_data, spy_data, left_index=True, right_index=True, how='inner')
|
||||
self.data = pd.merge(fg_data, qqq_data, left_index=True, right_index=True, how='inner')
|
||||
self.data.sort_index(inplace=True)
|
||||
|
||||
print(f"Loaded data from {self.data.index.min().strftime('%Y-%m-%d')} to {self.data.index.max().strftime('%Y-%m-%d')}")
|
||||
@@ -57,7 +63,11 @@ class EmotionalDamageStrategy:
|
||||
|
||||
def get_stock_price(self, ticker, date):
|
||||
"""Get stock price for a specific ticker and date"""
|
||||
conn = sqlite3.connect('data/stock_data.db')
|
||||
import os
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
backtest_dir = os.path.dirname(os.path.dirname(script_dir))
|
||||
db_path = os.path.join(backtest_dir, 'data', 'stock_data.db')
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
query = f'''
|
||||
SELECT close FROM {ticker.lower()}
|
||||
@@ -76,7 +86,11 @@ class EmotionalDamageStrategy:
|
||||
def calculate_volatility(self, tickers, start_date, end_date):
|
||||
"""Calculate historical volatility for tickers during fear period"""
|
||||
volatilities = {}
|
||||
conn = sqlite3.connect('data/stock_data.db')
|
||||
import os
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
backtest_dir = os.path.dirname(os.path.dirname(script_dir))
|
||||
db_path = os.path.join(backtest_dir, 'data', 'stock_data.db')
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
for ticker in tickers:
|
||||
try:
|
||||
@@ -118,7 +132,7 @@ class EmotionalDamageStrategy:
|
||||
"""Execute a trade and record it"""
|
||||
if action == 'BUY_QQQ':
|
||||
# Buy QQQ with all cash
|
||||
price = self.data.loc[date, 'spy_close'] # Using SPY as QQQ proxy
|
||||
price = self.data.loc[date, 'qqq_close'] # Using real QQQ price
|
||||
shares = self.cash / price
|
||||
self.positions['QQQ'] = shares
|
||||
self.cash = 0
|
||||
@@ -135,7 +149,7 @@ class EmotionalDamageStrategy:
|
||||
# Sell all QQQ
|
||||
if 'QQQ' in self.positions:
|
||||
shares = self.positions['QQQ']
|
||||
price = self.data.loc[date, 'spy_close']
|
||||
price = self.data.loc[date, 'qqq_close']
|
||||
self.cash = shares * price
|
||||
del self.positions['QQQ']
|
||||
self.trades.append({
|
||||
@@ -190,7 +204,7 @@ class EmotionalDamageStrategy:
|
||||
|
||||
for ticker, shares in self.positions.items():
|
||||
if ticker == 'QQQ':
|
||||
price = self.data.loc[date, 'spy_close']
|
||||
price = self.data.loc[date, 'qqq_close']
|
||||
else:
|
||||
price = self.get_stock_price(ticker, date)
|
||||
|
||||
@@ -304,18 +318,35 @@ def run_emotional_damage_backtest():
|
||||
portfolio_df.set_index('date', inplace=True)
|
||||
|
||||
# Get benchmark data (QQQ and SPY)
|
||||
conn = sqlite3.connect('data/stock_data.db')
|
||||
import os
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
backtest_dir = os.path.dirname(os.path.dirname(script_dir))
|
||||
db_path = os.path.join(backtest_dir, 'data', 'stock_data.db')
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
benchmark_data = pd.read_sql_query('''
|
||||
# Get QQQ data
|
||||
qqq_data = pd.read_sql_query('''
|
||||
SELECT date, close as qqq_close
|
||||
FROM qqq
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
qqq_data['date'] = pd.to_datetime(qqq_data['date'])
|
||||
qqq_data.set_index('date', inplace=True)
|
||||
|
||||
# Get SPY data
|
||||
spy_data = pd.read_sql_query('''
|
||||
SELECT date, spy_close
|
||||
FROM fear_greed_data
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
benchmark_data['date'] = pd.to_datetime(benchmark_data['date'])
|
||||
benchmark_data.set_index('date', inplace=True)
|
||||
spy_data['date'] = pd.to_datetime(spy_data['date'])
|
||||
spy_data.set_index('date', inplace=True)
|
||||
|
||||
conn.close()
|
||||
|
||||
# Merge benchmark data
|
||||
benchmark_data = pd.merge(qqq_data, spy_data, left_index=True, right_index=True, how='inner')
|
||||
|
||||
# Align dates
|
||||
common_dates = portfolio_df.index.intersection(benchmark_data.index)
|
||||
portfolio_df = portfolio_df.loc[common_dates]
|
||||
@@ -323,10 +354,9 @@ def run_emotional_damage_backtest():
|
||||
|
||||
# Normalize to starting value for comparison
|
||||
start_value = 100000
|
||||
portfolio_df['normalized'] = portfolio_df['value']
|
||||
|
||||
# Create QQQ and SPY buy-and-hold benchmarks
|
||||
benchmark_data['qqq_value'] = start_value * (benchmark_data['spy_close'] / benchmark_data['spy_close'].iloc[0])
|
||||
# Create QQQ and SPY buy-and-hold benchmarks with correct data
|
||||
benchmark_data['qqq_value'] = start_value * (benchmark_data['qqq_close'] / benchmark_data['qqq_close'].iloc[0])
|
||||
benchmark_data['spy_value'] = start_value * (benchmark_data['spy_close'] / benchmark_data['spy_close'].iloc[0])
|
||||
|
||||
# Calculate performance metrics
|
||||
@@ -343,6 +373,228 @@ def run_emotional_damage_backtest():
|
||||
'spy_metrics': spy_metrics
|
||||
}
|
||||
|
||||
def generate_original_pdf_report(results, reports_dir="/home/will/docker/backtest/reports"):
|
||||
"""Generate PDF report for original emotional damage strategy"""
|
||||
strategy = results['strategy']
|
||||
portfolio_df = results['portfolio_df']
|
||||
benchmark_data = results['benchmark_data']
|
||||
strategy_metrics = results['strategy_metrics']
|
||||
qqq_metrics = results['qqq_metrics']
|
||||
spy_metrics = results['spy_metrics']
|
||||
|
||||
# Create output directory
|
||||
os.makedirs(reports_dir, exist_ok=True)
|
||||
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
|
||||
|
||||
# Prepare trades data
|
||||
trades_df = pd.DataFrame(strategy.trades)
|
||||
|
||||
# Find max drawdown year
|
||||
def find_max_drawdown_year(returns):
|
||||
peak = returns.expanding().max()
|
||||
drawdown = (returns - peak) / peak
|
||||
max_dd_date = drawdown.idxmin()
|
||||
return max_dd_date.year
|
||||
|
||||
strategy_dd_year = find_max_drawdown_year(portfolio_df['value'])
|
||||
qqq_dd_year = find_max_drawdown_year(benchmark_data['qqq_value'])
|
||||
spy_dd_year = find_max_drawdown_year(benchmark_data['spy_value'])
|
||||
|
||||
# Create PDF
|
||||
pdf_file = os.path.join(reports_dir, f'original_emotional_damage_strategy_report_{timestamp}.pdf')
|
||||
|
||||
with PdfPages(pdf_file) as pdf:
|
||||
# Set global font parameters
|
||||
plt.rcParams['font.size'] = 10
|
||||
plt.rcParams['axes.titlesize'] = 12
|
||||
plt.rcParams['axes.labelsize'] = 10
|
||||
plt.rcParams['xtick.labelsize'] = 8
|
||||
plt.rcParams['ytick.labelsize'] = 8
|
||||
plt.rcParams['legend.fontsize'] = 8
|
||||
plt.rcParams['figure.titlesize'] = 14
|
||||
|
||||
# Page 1: Performance Comparison
|
||||
fig1 = plt.figure(figsize=(8.5, 11))
|
||||
fig1.suptitle('Original Emotional Damage Strategy Report', fontsize=16, fontweight='bold', y=0.96)
|
||||
|
||||
# 1. Total Return Curve
|
||||
ax1 = plt.subplot(4, 1, 1)
|
||||
ax1.plot(portfolio_df.index, portfolio_df['value'] / 1000,
|
||||
label='Original Strategy', linewidth=2, color='red')
|
||||
ax1.plot(benchmark_data.index, benchmark_data['qqq_value'] / 1000,
|
||||
label='QQQ', linewidth=2, color='blue')
|
||||
ax1.plot(benchmark_data.index, benchmark_data['spy_value'] / 1000,
|
||||
label='SPY', linewidth=2, color='green')
|
||||
ax1.set_title('Portfolio Performance Comparison', fontsize=14, fontweight='bold', pad=25)
|
||||
ax1.set_ylabel('Portfolio Value ($K)', fontsize=11)
|
||||
ax1.legend(fontsize=10, loc='upper left')
|
||||
ax1.grid(True, alpha=0.3)
|
||||
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
|
||||
for label in ax1.get_xticklabels():
|
||||
label.set_rotation(45)
|
||||
|
||||
# 2. Performance Metrics Table
|
||||
ax2 = plt.subplot(4, 1, 2)
|
||||
ax2.axis('off')
|
||||
|
||||
metrics_data = [
|
||||
['Metric', 'Original Strategy', 'QQQ', 'SPY'],
|
||||
['Total Return', f"{strategy_metrics['total_return']:.1f}%",
|
||||
f"{qqq_metrics['total_return']:.1f}%", f"{spy_metrics['total_return']:.1f}%"],
|
||||
['Annual Return', f"{strategy_metrics['annual_return']:.1f}%",
|
||||
f"{qqq_metrics['annual_return']:.1f}%", f"{spy_metrics['annual_return']:.1f}%"],
|
||||
['Max Drawdown', f"{strategy_metrics['max_drawdown']:.1f}%",
|
||||
f"{qqq_metrics['max_drawdown']:.1f}%", f"{spy_metrics['max_drawdown']:.1f}%"],
|
||||
['Max DD Year', str(strategy_dd_year), str(qqq_dd_year), str(spy_dd_year)],
|
||||
['Sharpe Ratio', f"{strategy_metrics['sharpe_ratio']:.2f}",
|
||||
f"{qqq_metrics['sharpe_ratio']:.2f}", f"{spy_metrics['sharpe_ratio']:.2f}"],
|
||||
['Total Trades', f"{len(strategy.trades)}", 'N/A', 'N/A']
|
||||
]
|
||||
|
||||
table = ax2.table(cellText=metrics_data, cellLoc='center', loc='center')
|
||||
table.auto_set_font_size(False)
|
||||
table.set_fontsize(10)
|
||||
table.scale(1.2, 2.0)
|
||||
|
||||
for i in range(len(metrics_data[0])):
|
||||
table[(0, i)].set_facecolor('#40466e')
|
||||
table[(0, i)].set_text_props(weight='bold', color='white')
|
||||
|
||||
ax2.set_title('Performance Metrics Comparison', fontsize=14, fontweight='bold', pad=25)
|
||||
|
||||
# 3. Strategy State Timeline
|
||||
ax3 = plt.subplot(4, 1, 3)
|
||||
|
||||
state_colors = {
|
||||
'QQQ_HOLD': 'blue',
|
||||
'CASH_WAIT': 'gray',
|
||||
'VOLATILE_STOCKS': 'red'
|
||||
}
|
||||
|
||||
for state, color in state_colors.items():
|
||||
state_data = portfolio_df[portfolio_df['state'] == state]
|
||||
if not state_data.empty:
|
||||
ax3.scatter(state_data.index, state_data['value'] / 1000,
|
||||
c=color, s=2, alpha=0.8, label=state)
|
||||
|
||||
ax3.set_title('Strategy State Timeline', fontsize=14, fontweight='bold', pad=25)
|
||||
ax3.set_ylabel('Total Assets ($K)', fontsize=11)
|
||||
ax3.legend(bbox_to_anchor=(1.02, 1), loc='upper left', fontsize=8)
|
||||
ax3.grid(True, alpha=0.3)
|
||||
ax3.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
|
||||
for label in ax3.get_xticklabels():
|
||||
label.set_rotation(45)
|
||||
|
||||
# 4. Annual Returns Comparison
|
||||
ax4 = plt.subplot(4, 1, 4)
|
||||
years = list(strategy_metrics['annual_returns'].keys())
|
||||
original_returns = list(strategy_metrics['annual_returns'].values())
|
||||
qqq_returns = [qqq_metrics['annual_returns'].get(year, 0) for year in years]
|
||||
spy_returns = [spy_metrics['annual_returns'].get(year, 0) for year in years]
|
||||
|
||||
x = np.arange(len(years))
|
||||
width = 0.25
|
||||
|
||||
ax4.bar(x - width, original_returns, width, label='Original Strategy', color='red', alpha=0.8)
|
||||
ax4.bar(x, qqq_returns, width, label='QQQ', color='blue', alpha=0.8)
|
||||
ax4.bar(x + width, spy_returns, width, label='SPY', color='green', alpha=0.8)
|
||||
|
||||
ax4.set_title('Annual Returns Comparison by Year', fontsize=14, fontweight='bold', pad=25)
|
||||
ax4.set_ylabel('Annual Return (%)', fontsize=11)
|
||||
ax4.set_xlabel('Year', fontsize=11)
|
||||
ax4.set_xticks(x)
|
||||
ax4.set_xticklabels(years)
|
||||
for label in ax4.get_xticklabels():
|
||||
label.set_rotation(90)
|
||||
ax4.legend(fontsize=10)
|
||||
ax4.grid(True, alpha=0.3, axis='y')
|
||||
|
||||
plt.subplots_adjust(left=0.1, right=0.85, top=0.90, bottom=0.08, hspace=0.6)
|
||||
pdf.savefig(fig1, bbox_inches='tight', dpi=150)
|
||||
plt.close()
|
||||
|
||||
# Page 2: Detailed Analysis
|
||||
fig2 = plt.figure(figsize=(8.5, 11))
|
||||
fig2.suptitle('Detailed Trading and Market Analysis', fontsize=16, fontweight='bold', y=0.95)
|
||||
|
||||
# 5. Trading Activity by Year
|
||||
ax5 = plt.subplot(3, 1, 1)
|
||||
|
||||
trades_df_copy = trades_df.copy()
|
||||
trades_df_copy['year'] = trades_df_copy['date'].dt.year
|
||||
trade_frequency = trades_df_copy.groupby('year').size()
|
||||
|
||||
ax5.bar(trade_frequency.index, trade_frequency.values, color='purple', alpha=0.8, width=0.6)
|
||||
ax5.set_title('Trading Activity by Year', fontsize=14, fontweight='bold', pad=30)
|
||||
ax5.set_ylabel('Number of Trades', fontsize=11)
|
||||
ax5.set_xlabel('Year', fontsize=11)
|
||||
ax5.grid(True, alpha=0.3, axis='y')
|
||||
for label in ax5.get_xticklabels():
|
||||
label.set_rotation(45)
|
||||
|
||||
# 6. Trade Type Distribution
|
||||
ax6 = plt.subplot(3, 1, 2)
|
||||
|
||||
action_counts = trades_df['action'].value_counts()
|
||||
ax6.pie(action_counts.values, labels=action_counts.index, autopct='%1.1f%%', startangle=90)
|
||||
ax6.set_title('Trade Type Distribution', fontsize=14, fontweight='bold', pad=30)
|
||||
|
||||
# 7. Fear & Greed Index with Trading Signals
|
||||
ax7 = plt.subplot(3, 1, 3)
|
||||
|
||||
fg_data = portfolio_df['fg_index'].dropna()
|
||||
ax7.plot(fg_data.index, fg_data.values, color='purple', alpha=0.8, linewidth=1.5)
|
||||
ax7.axhline(y=25, color='red', linestyle='--', alpha=0.7, linewidth=2, label='Fear Threshold (25)')
|
||||
ax7.axhline(y=75, color='green', linestyle='--', alpha=0.7, linewidth=2, label='Greed Threshold (75)')
|
||||
ax7.fill_between(fg_data.index, 0, 25, alpha=0.2, color='red', label='Fear Zone')
|
||||
ax7.fill_between(fg_data.index, 75, 100, alpha=0.2, color='green', label='Greed Zone')
|
||||
|
||||
# Add trade markers
|
||||
buy_trades = trades_df[trades_df['action'].str.contains('BUY')]
|
||||
sell_trades = trades_df[trades_df['action'].str.contains('SELL')]
|
||||
|
||||
if not buy_trades.empty:
|
||||
ax7.scatter(buy_trades['date'], [50] * len(buy_trades),
|
||||
color='darkgreen', s=15, alpha=0.8, marker='^', label='Buy Signals', zorder=5)
|
||||
if not sell_trades.empty:
|
||||
ax7.scatter(sell_trades['date'], [50] * len(sell_trades),
|
||||
color='darkred', s=15, alpha=0.8, marker='v', label='Sell Signals', zorder=5)
|
||||
|
||||
ax7.set_title('Fear & Greed Index with Trading Signals', fontsize=14, fontweight='bold', pad=30)
|
||||
ax7.set_ylabel('CNN Fear & Greed Index', fontsize=11)
|
||||
ax7.set_xlabel('Date', fontsize=11)
|
||||
ax7.set_ylim(0, 100)
|
||||
ax7.legend(bbox_to_anchor=(1.02, 1), loc='upper left', fontsize=8)
|
||||
ax7.grid(True, alpha=0.3)
|
||||
ax7.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
|
||||
for label in ax7.get_xticklabels():
|
||||
label.set_rotation(45)
|
||||
|
||||
plt.subplots_adjust(left=0.1, right=0.85, top=0.88, bottom=0.10, hspace=1.0)
|
||||
pdf.savefig(fig2, bbox_inches='tight', dpi=150)
|
||||
plt.close()
|
||||
|
||||
# Validate PDF
|
||||
try:
|
||||
file_size = os.path.getsize(pdf_file)
|
||||
print(f"📈 PDF报告已保存: {pdf_file} (Size: {file_size:,} bytes)")
|
||||
|
||||
with open(pdf_file, 'rb') as f:
|
||||
header = f.read(10)
|
||||
if header.startswith(b'%PDF'):
|
||||
print(f"✅ PDF file validation passed")
|
||||
else:
|
||||
print(f"⚠️ Warning: Generated file may not be a valid PDF")
|
||||
|
||||
except Exception as e:
|
||||
print(f"⚠️ Error validating PDF: {e}")
|
||||
|
||||
return pdf_file
|
||||
|
||||
if __name__ == "__main__":
|
||||
results = run_emotional_damage_backtest()
|
||||
print("Backtest completed! Results ready for PDF generation.")
|
||||
print("Backtest completed! Generating PDF report...")
|
||||
|
||||
# Generate PDF report
|
||||
pdf_file = generate_original_pdf_report(results)
|
||||
print(f"🎉 Original Emotional Damage Strategy report generated: {pdf_file}")
|
||||
@@ -1,600 +0,0 @@
|
||||
import sqlite3
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
from datetime import datetime, timedelta
|
||||
import matplotlib.pyplot as plt
|
||||
import seaborn as sns
|
||||
from matplotlib.backends.backend_pdf import PdfPages
|
||||
import warnings
|
||||
warnings.filterwarnings('ignore')
|
||||
|
||||
class EnhancedEmotionalDamageStrategy:
|
||||
def __init__(self, initial_capital=100000):
|
||||
self.initial_capital = initial_capital
|
||||
self.cash = initial_capital
|
||||
self.positions = {} # ticker: shares
|
||||
self.portfolio_value = []
|
||||
self.trades = []
|
||||
self.fear_threshold = 25
|
||||
self.greed_threshold = 75
|
||||
self.top_stocks_count = 10
|
||||
self.stop_loss_threshold = 0.15 # 15% stop loss
|
||||
|
||||
# New state management for gradual transitions
|
||||
self.state = 'QQQ_HOLD' # QQQ_HOLD, FEAR_TRANSITION, GREED_TRANSITION, VOLATILE_STOCKS
|
||||
self.transition_steps = 4
|
||||
self.current_transition_step = 0
|
||||
self.transition_target = None
|
||||
self.transition_stocks = []
|
||||
self.last_fear_date = None
|
||||
self.last_greed_date = None
|
||||
|
||||
def get_data(self):
|
||||
"""Load Fear & Greed Index and stock data"""
|
||||
conn = sqlite3.connect('data/stock_data.db')
|
||||
|
||||
# Get Fear & Greed Index
|
||||
fg_data = pd.read_sql_query('''
|
||||
SELECT date, fear_greed_index
|
||||
FROM fear_greed_index
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
fg_data['date'] = pd.to_datetime(fg_data['date'])
|
||||
fg_data.set_index('date', inplace=True)
|
||||
|
||||
# Get QQQ price data
|
||||
spy_data = pd.read_sql_query('''
|
||||
SELECT date, spy_close
|
||||
FROM fear_greed_data
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
spy_data['date'] = pd.to_datetime(spy_data['date'])
|
||||
spy_data.set_index('date', inplace=True)
|
||||
|
||||
# Get available tickers
|
||||
cursor = conn.cursor()
|
||||
cursor.execute('SELECT ticker FROM ticker_list WHERE records > 1000')
|
||||
self.available_tickers = [row[0] for row in cursor.fetchall()]
|
||||
|
||||
conn.close()
|
||||
|
||||
# Merge data
|
||||
self.data = pd.merge(fg_data, spy_data, left_index=True, right_index=True, how='inner')
|
||||
self.data.sort_index(inplace=True)
|
||||
|
||||
print(f"Loaded data from {self.data.index.min().strftime('%Y-%m-%d')} to {self.data.index.max().strftime('%Y-%m-%d')}")
|
||||
print(f"Available tickers for selection: {len(self.available_tickers)}")
|
||||
|
||||
def get_stock_price(self, ticker, date):
|
||||
"""Get stock price for a specific ticker and date"""
|
||||
conn = sqlite3.connect('data/stock_data.db')
|
||||
|
||||
query = f'''
|
||||
SELECT close FROM {ticker.lower()}
|
||||
WHERE date <= ?
|
||||
ORDER BY date DESC
|
||||
LIMIT 1
|
||||
'''
|
||||
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(query, (date.strftime('%Y-%m-%d'),))
|
||||
result = cursor.fetchone()
|
||||
conn.close()
|
||||
|
||||
return result[0] if result else None
|
||||
|
||||
def get_stock_data(self, ticker, start_date, end_date):
|
||||
"""Get historical stock data for technical analysis"""
|
||||
conn = sqlite3.connect('data/stock_data.db')
|
||||
|
||||
query = f'''
|
||||
SELECT date, open, high, low, close, volume
|
||||
FROM {ticker.lower()}
|
||||
WHERE date >= ? AND date <= ?
|
||||
ORDER BY date
|
||||
'''
|
||||
|
||||
df = pd.read_sql_query(query, conn, params=(
|
||||
start_date.strftime('%Y-%m-%d'),
|
||||
end_date.strftime('%Y-%m-%d')
|
||||
))
|
||||
conn.close()
|
||||
|
||||
if not df.empty:
|
||||
df['date'] = pd.to_datetime(df['date'])
|
||||
df.set_index('date', inplace=True)
|
||||
return df
|
||||
return None
|
||||
|
||||
def calculate_technical_indicators(self, df):
|
||||
"""Calculate MACD, RSI, and EMA indicators"""
|
||||
if len(df) < 50: # Need sufficient data
|
||||
return None
|
||||
|
||||
# RSI
|
||||
delta = df['close'].diff()
|
||||
gain = (delta.where(delta > 0, 0)).rolling(window=14).mean()
|
||||
loss = (-delta.where(delta < 0, 0)).rolling(window=14).mean()
|
||||
rs = gain / loss
|
||||
rsi = 100 - (100 / (1 + rs))
|
||||
|
||||
# MACD
|
||||
exp1 = df['close'].ewm(span=12).mean()
|
||||
exp2 = df['close'].ewm(span=26).mean()
|
||||
macd = exp1 - exp2
|
||||
signal = macd.ewm(span=9).mean()
|
||||
|
||||
# EMA
|
||||
ema5 = df['close'].ewm(span=5).mean()
|
||||
ema20 = df['close'].ewm(span=20).mean()
|
||||
|
||||
return {
|
||||
'rsi': rsi,
|
||||
'macd': macd,
|
||||
'signal': signal,
|
||||
'ema5': ema5,
|
||||
'ema20': ema20
|
||||
}
|
||||
|
||||
def check_signal_direction(self, indicators, df):
|
||||
"""Check if indicators are turning upward"""
|
||||
if indicators is None:
|
||||
return False
|
||||
|
||||
signals = []
|
||||
|
||||
# RSI upward turn (first derivative positive)
|
||||
if len(indicators['rsi']) >= 3:
|
||||
rsi_current = indicators['rsi'].iloc[-1]
|
||||
rsi_prev = indicators['rsi'].iloc[-2]
|
||||
rsi_slope = rsi_current - rsi_prev
|
||||
signals.append(rsi_slope > 0)
|
||||
|
||||
# MACD golden cross (MACD crosses above signal)
|
||||
if len(indicators['macd']) >= 3:
|
||||
macd_current = indicators['macd'].iloc[-1]
|
||||
signal_current = indicators['signal'].iloc[-1]
|
||||
macd_prev = indicators['macd'].iloc[-2]
|
||||
signal_prev = indicators['signal'].iloc[-2]
|
||||
|
||||
# Golden cross: macd crosses above signal
|
||||
golden_cross = (macd_prev <= signal_prev) and (macd_current > signal_current)
|
||||
signals.append(golden_cross)
|
||||
|
||||
# EMA crossover (EMA5 crosses above EMA20)
|
||||
if len(indicators['ema5']) >= 3:
|
||||
ema5_current = indicators['ema5'].iloc[-1]
|
||||
ema20_current = indicators['ema20'].iloc[-1]
|
||||
ema5_prev = indicators['ema5'].iloc[-2]
|
||||
ema20_prev = indicators['ema20'].iloc[-2]
|
||||
|
||||
ema_crossover = (ema5_prev <= ema20_prev) and (ema5_current > ema20_current)
|
||||
signals.append(ema_crossover)
|
||||
|
||||
# Need at least 2 out of 3 signals positive
|
||||
return sum(signals) >= 2
|
||||
|
||||
def calculate_volatility(self, ticker, start_date, end_date):
|
||||
"""Calculate historical volatility for a single ticker"""
|
||||
conn = sqlite3.connect('data/stock_data.db')
|
||||
|
||||
try:
|
||||
query = f'''
|
||||
SELECT date, close FROM {ticker.lower()}
|
||||
WHERE date >= ? AND date <= ?
|
||||
ORDER BY date
|
||||
'''
|
||||
|
||||
df = pd.read_sql_query(query, conn, params=(
|
||||
start_date.strftime('%Y-%m-%d'),
|
||||
end_date.strftime('%Y-%m-%d')
|
||||
))
|
||||
|
||||
if len(df) > 10:
|
||||
df['returns'] = df['close'].pct_change()
|
||||
volatility = df['returns'].std() * np.sqrt(252)
|
||||
conn.close()
|
||||
return volatility
|
||||
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
conn.close()
|
||||
return 0
|
||||
|
||||
def select_stocks_with_technical_filter(self, fear_start_date, fear_end_date):
|
||||
"""Select stocks using technical indicators + volatility ranking"""
|
||||
candidates = []
|
||||
|
||||
# Extend the period for more data
|
||||
extended_start = fear_start_date - timedelta(days=30)
|
||||
extended_end = fear_end_date + timedelta(days=5)
|
||||
|
||||
for ticker in self.available_tickers:
|
||||
stock_data = self.get_stock_data(ticker, extended_start, extended_end)
|
||||
if stock_data is not None and len(stock_data) >= 30:
|
||||
volatility = self.calculate_volatility(ticker, fear_start_date, fear_end_date)
|
||||
if volatility > 0.1: # Minimum volatility threshold
|
||||
|
||||
# Check technical indicators on recent data
|
||||
recent_data = stock_data.tail(30)
|
||||
indicators = self.calculate_technical_indicators(recent_data)
|
||||
|
||||
# Be more lenient - accept if at least some indicators are positive
|
||||
technical_score = 0
|
||||
if indicators is not None:
|
||||
# Simplified scoring - just check if recent trend is up
|
||||
recent_trend = recent_data['close'].pct_change().tail(5).sum()
|
||||
if recent_trend > -0.02: # Not strongly declining
|
||||
technical_score += 1
|
||||
|
||||
# Check if RSI is not oversold
|
||||
if len(indicators['rsi']) > 0 and indicators['rsi'].iloc[-1] > 30:
|
||||
technical_score += 1
|
||||
|
||||
# Accept if basic criteria met or if volatility is high
|
||||
if technical_score >= 1 or volatility > 0.5:
|
||||
candidates.append((ticker, volatility))
|
||||
|
||||
# Sort by volatility and select top stocks
|
||||
candidates.sort(key=lambda x: x[1], reverse=True)
|
||||
selected = [ticker for ticker, vol in candidates[:self.top_stocks_count]]
|
||||
|
||||
print(f"Selected {len(selected)} stocks from {len(candidates)} candidates")
|
||||
if selected:
|
||||
print(f"Top stocks: {selected}")
|
||||
return selected
|
||||
|
||||
def execute_gradual_transition(self, date, target_state):
|
||||
"""Execute gradual 4-step position transitions"""
|
||||
if target_state == 'CASH':
|
||||
# Gradually sell to cash
|
||||
if self.current_transition_step < self.transition_steps:
|
||||
step_size = 1.0 / self.transition_steps
|
||||
step_pct = step_size * (self.current_transition_step + 1)
|
||||
|
||||
# Sell portion of holdings
|
||||
for ticker in list(self.positions.keys()):
|
||||
if ticker != 'QQQ':
|
||||
shares_to_sell = int(self.positions[ticker] * step_pct)
|
||||
if shares_to_sell > 0:
|
||||
price = self.get_stock_price(ticker, date)
|
||||
if price:
|
||||
value = shares_to_sell * price
|
||||
self.cash += value
|
||||
self.positions[ticker] -= shares_to_sell
|
||||
if self.positions[ticker] <= 0:
|
||||
del self.positions[ticker]
|
||||
|
||||
self.trades.append({
|
||||
'date': date,
|
||||
'action': 'SELL_GRADUAL',
|
||||
'ticker': ticker,
|
||||
'shares': shares_to_sell,
|
||||
'price': price,
|
||||
'value': value
|
||||
})
|
||||
|
||||
self.current_transition_step += 1
|
||||
if self.current_transition_step >= self.transition_steps:
|
||||
return True # Transition complete
|
||||
|
||||
elif target_state == 'VOLATILE':
|
||||
# Gradually buy volatile stocks
|
||||
if self.current_transition_step < self.transition_steps:
|
||||
step_size = 1.0 / self.transition_steps
|
||||
step_pct = step_size * (self.current_transition_step + 1)
|
||||
|
||||
if self.transition_stocks:
|
||||
amount_per_stock = (self.cash * step_pct) / len(self.transition_stocks)
|
||||
|
||||
for ticker in self.transition_stocks:
|
||||
price = self.get_stock_price(ticker, date)
|
||||
if price:
|
||||
shares = amount_per_stock / price
|
||||
if ticker in self.positions:
|
||||
self.positions[ticker] += shares
|
||||
else:
|
||||
self.positions[ticker] = shares
|
||||
|
||||
self.cash -= amount_per_stock
|
||||
|
||||
self.trades.append({
|
||||
'date': date,
|
||||
'action': 'BUY_GRADUAL',
|
||||
'ticker': ticker,
|
||||
'shares': shares,
|
||||
'price': price,
|
||||
'value': amount_per_stock
|
||||
})
|
||||
|
||||
self.current_transition_step += 1
|
||||
if self.current_transition_step >= self.transition_steps:
|
||||
return True # Transition complete
|
||||
|
||||
elif target_state == 'QQQ':
|
||||
# Gradually buy QQQ
|
||||
if self.current_transition_step < self.transition_steps:
|
||||
step_size = 1.0 / self.transition_steps
|
||||
step_pct = step_size * (self.current_transition_step + 1)
|
||||
|
||||
qqq_price = self.data.loc[date, 'spy_close']
|
||||
total_value = self.calculate_portfolio_value(date)
|
||||
target_qqq_value = total_value * step_pct
|
||||
|
||||
if 'QQQ' not in self.positions:
|
||||
self.positions['QQQ'] = 0
|
||||
|
||||
shares_to_buy = (target_qqq_value - (self.positions.get('QQQ', 0) * qqq_price)) / qqq_price
|
||||
if shares_to_buy > 0:
|
||||
self.positions['QQQ'] += shares_to_buy
|
||||
|
||||
# Sell other positions proportionally
|
||||
other_positions = {k: v for k, v in self.positions.items() if k != 'QQQ'}
|
||||
for ticker, shares in other_positions.items():
|
||||
shares_to_sell = shares * (step_size / (1 - (self.current_transition_step * step_size)))
|
||||
price = self.get_stock_price(ticker, date)
|
||||
if price:
|
||||
value = shares_to_sell * price
|
||||
self.cash += value
|
||||
self.positions[ticker] -= shares_to_sell
|
||||
if self.positions[ticker] <= 0:
|
||||
del self.positions[ticker]
|
||||
|
||||
self.current_transition_step += 1
|
||||
if self.current_transition_step >= self.transition_steps:
|
||||
return True # Transition complete
|
||||
|
||||
return False # Transition ongoing
|
||||
|
||||
def check_stop_loss(self, date):
|
||||
"""Check for 15% stop loss and replace with QQQ"""
|
||||
stop_loss_trades = []
|
||||
|
||||
for ticker, shares in list(self.positions.items()):
|
||||
if ticker == 'QQQ':
|
||||
continue
|
||||
|
||||
current_price = self.get_stock_price(ticker, date)
|
||||
if current_price:
|
||||
# Find buy price from recent trades
|
||||
buy_trades = [t for t in self.trades if t['ticker'] == ticker and t['action'] in ['BUY_VOLATILE', 'BUY_GRADUAL']]
|
||||
if buy_trades:
|
||||
avg_buy_price = sum(t['price'] * t['shares'] for t in buy_trades) / sum(t['shares'] for t in buy_trades)
|
||||
loss_pct = (current_price - avg_buy_price) / avg_buy_price
|
||||
|
||||
if loss_pct <= -self.stop_loss_threshold:
|
||||
# Sell the losing position
|
||||
value = shares * current_price
|
||||
self.cash += value
|
||||
del self.positions[ticker]
|
||||
|
||||
stop_loss_trades.append({
|
||||
'date': date,
|
||||
'action': 'STOP_LOSS',
|
||||
'ticker': ticker,
|
||||
'shares': shares,
|
||||
'price': current_price,
|
||||
'value': value,
|
||||
'loss_pct': loss_pct * 100
|
||||
})
|
||||
|
||||
# Immediately buy QQQ with the proceeds
|
||||
qqq_price = self.data.loc[date, 'spy_close']
|
||||
qqq_shares = value / qqq_price
|
||||
self.positions['QQQ'] = self.positions.get('QQQ', 0) + qqq_shares
|
||||
|
||||
stop_loss_trades.append({
|
||||
'date': date,
|
||||
'action': 'BUY_QQQ_STOPLOSS',
|
||||
'ticker': 'QQQ',
|
||||
'shares': qqq_shares,
|
||||
'price': qqq_price,
|
||||
'value': value
|
||||
})
|
||||
|
||||
self.trades.extend(stop_loss_trades)
|
||||
return len(stop_loss_trades) > 0
|
||||
|
||||
def calculate_portfolio_value(self, date):
|
||||
"""Calculate total portfolio value at given date"""
|
||||
total_value = self.cash
|
||||
|
||||
for ticker, shares in self.positions.items():
|
||||
if ticker == 'QQQ':
|
||||
price = self.data.loc[date, 'spy_close']
|
||||
else:
|
||||
price = self.get_stock_price(ticker, date)
|
||||
|
||||
if price:
|
||||
total_value += shares * price
|
||||
|
||||
return total_value
|
||||
|
||||
def run_backtest(self):
|
||||
"""Run the enhanced emotional damage strategy backtest"""
|
||||
print("Running Enhanced Emotional Damage Strategy Backtest...")
|
||||
|
||||
self.get_data()
|
||||
|
||||
# Start with QQQ
|
||||
first_date = self.data.index[0]
|
||||
qqq_price = self.data.loc[first_date, 'spy_close']
|
||||
qqq_shares = self.cash / qqq_price
|
||||
self.positions['QQQ'] = qqq_shares
|
||||
self.cash = 0
|
||||
|
||||
fear_start_date = None
|
||||
greed_start_date = None
|
||||
|
||||
for i, (date, row) in enumerate(self.data.iterrows()):
|
||||
fg_index = row['fear_greed_index']
|
||||
|
||||
# Check stop loss first
|
||||
self.check_stop_loss(date)
|
||||
|
||||
if self.state == 'QQQ_HOLD':
|
||||
# Check if Fear & Greed drops below 25
|
||||
if fg_index < self.fear_threshold:
|
||||
self.state = 'FEAR_TRANSITION'
|
||||
self.transition_target = 'CASH'
|
||||
self.current_transition_step = 0
|
||||
self.last_fear_date = date
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Fear & Greed {fg_index:.1f} < 25, starting gradual transition to cash")
|
||||
|
||||
elif self.state == 'FEAR_TRANSITION':
|
||||
# Continue gradual transition to cash
|
||||
completed = self.execute_gradual_transition(date, 'CASH')
|
||||
if completed:
|
||||
# Check if we should transition to volatile stocks
|
||||
if fg_index >= self.fear_threshold and self.last_fear_date:
|
||||
# Select stocks using technical filters
|
||||
top_stocks = self.select_stocks_with_technical_filter(
|
||||
self.last_fear_date, date
|
||||
)
|
||||
|
||||
if top_stocks:
|
||||
self.transition_stocks = top_stocks
|
||||
self.state = 'GREED_TRANSITION' # Transition to volatile stocks
|
||||
self.transition_target = 'VOLATILE'
|
||||
self.current_transition_step = 0
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Fear & Greed recovered, starting transition to volatile stocks: {top_stocks}")
|
||||
|
||||
# If fear continues, stay in cash
|
||||
elif fg_index < self.fear_threshold:
|
||||
self.state = 'CASH_WAIT'
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Transition to cash complete, holding cash")
|
||||
|
||||
elif self.state == 'CASH_WAIT':
|
||||
# Waiting in cash, check for recovery
|
||||
if fg_index >= self.fear_threshold and self.last_fear_date:
|
||||
# Select stocks using technical filters
|
||||
top_stocks = self.select_stocks_with_technical_filter(
|
||||
self.last_fear_date, date
|
||||
)
|
||||
|
||||
if top_stocks:
|
||||
self.transition_stocks = top_stocks
|
||||
self.state = 'GREED_TRANSITION' # Transition to volatile stocks
|
||||
self.transition_target = 'VOLATILE'
|
||||
self.current_transition_step = 0
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Fear & Greed recovered, starting transition to volatile stocks: {top_stocks}")
|
||||
|
||||
elif self.state == 'GREED_TRANSITION':
|
||||
# Continue gradual transition to volatile stocks
|
||||
completed = self.execute_gradual_transition(date, 'VOLATILE')
|
||||
if completed:
|
||||
self.state = 'VOLATILE_STOCKS'
|
||||
self.last_greed_date = date
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Transition to volatile stocks complete")
|
||||
|
||||
elif self.state == 'VOLATILE_STOCKS':
|
||||
# Check if Fear & Greed exceeds 75 (extreme greed)
|
||||
if fg_index > self.greed_threshold:
|
||||
self.state = 'FEAR_TRANSITION' # Transition to QQQ
|
||||
self.transition_target = 'QQQ'
|
||||
self.current_transition_step = 0
|
||||
self.last_greed_date = date
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Fear & Greed {fg_index:.1f} > 75, starting transition to QQQ")
|
||||
|
||||
# Record portfolio value
|
||||
portfolio_value = self.calculate_portfolio_value(date)
|
||||
self.portfolio_value.append({
|
||||
'date': date,
|
||||
'value': portfolio_value,
|
||||
'state': self.state,
|
||||
'fg_index': fg_index,
|
||||
'cash': self.cash
|
||||
})
|
||||
|
||||
print(f"Backtest completed! Total trades: {len(self.trades)}")
|
||||
|
||||
def calculate_performance_metrics(self, returns):
|
||||
"""Calculate performance metrics"""
|
||||
total_return = (returns.iloc[-1] / returns.iloc[0] - 1) * 100
|
||||
annual_return = ((returns.iloc[-1] / returns.iloc[0]) ** (252 / len(returns)) - 1) * 100
|
||||
|
||||
# Calculate max drawdown
|
||||
peak = returns.expanding().max()
|
||||
drawdown = (returns - peak) / peak
|
||||
max_drawdown = drawdown.min() * 100
|
||||
|
||||
# Find max drawdown period
|
||||
max_dd_date = drawdown.idxmin()
|
||||
max_dd_year = max_dd_date.year
|
||||
|
||||
# Calculate Sharpe ratio
|
||||
daily_returns = returns.pct_change().dropna()
|
||||
sharpe_ratio = np.sqrt(252) * daily_returns.mean() / daily_returns.std()
|
||||
|
||||
# Annual returns by year
|
||||
annual_rets = {}
|
||||
for year in returns.index.year.unique():
|
||||
year_data = returns[returns.index.year == year]
|
||||
if len(year_data) > 1:
|
||||
year_return = (year_data.iloc[-1] / year_data.iloc[0] - 1) * 100
|
||||
annual_rets[year] = year_return
|
||||
|
||||
return {
|
||||
'total_return': total_return,
|
||||
'annual_return': annual_return,
|
||||
'max_drawdown': max_drawdown,
|
||||
'max_drawdown_date': max_dd_date,
|
||||
'max_drawdown_year': max_dd_year,
|
||||
'sharpe_ratio': sharpe_ratio,
|
||||
'annual_returns': annual_rets
|
||||
}
|
||||
|
||||
def run_enhanced_backtest():
|
||||
"""Run the enhanced emotional damage strategy"""
|
||||
|
||||
# Run strategy
|
||||
strategy = EnhancedEmotionalDamageStrategy(initial_capital=100000)
|
||||
strategy.run_backtest()
|
||||
|
||||
# Convert results to DataFrame
|
||||
portfolio_df = pd.DataFrame(strategy.portfolio_value)
|
||||
portfolio_df.set_index('date', inplace=True)
|
||||
|
||||
# Get benchmark data
|
||||
conn = sqlite3.connect('data/stock_data.db')
|
||||
|
||||
benchmark_data = pd.read_sql_query('''
|
||||
SELECT date, spy_close
|
||||
FROM fear_greed_data
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
benchmark_data['date'] = pd.to_datetime(benchmark_data['date'])
|
||||
benchmark_data.set_index('date', inplace=True)
|
||||
|
||||
conn.close()
|
||||
|
||||
# Align dates
|
||||
common_dates = portfolio_df.index.intersection(benchmark_data.index)
|
||||
portfolio_df = portfolio_df.loc[common_dates]
|
||||
benchmark_data = benchmark_data.loc[common_dates]
|
||||
|
||||
# Normalize to starting value for comparison
|
||||
start_value = 100000
|
||||
|
||||
# Create QQQ and SPY buy-and-hold benchmarks
|
||||
benchmark_data['qqq_value'] = start_value * (benchmark_data['spy_close'] / benchmark_data['spy_close'].iloc[0])
|
||||
benchmark_data['spy_value'] = start_value * (benchmark_data['spy_close'] / benchmark_data['spy_close'].iloc[0])
|
||||
|
||||
# Calculate performance metrics
|
||||
strategy_metrics = strategy.calculate_performance_metrics(portfolio_df['value'])
|
||||
qqq_metrics = strategy.calculate_performance_metrics(benchmark_data['qqq_value'])
|
||||
spy_metrics = strategy.calculate_performance_metrics(benchmark_data['spy_value'])
|
||||
|
||||
return {
|
||||
'strategy': strategy,
|
||||
'portfolio_df': portfolio_df,
|
||||
'benchmark_data': benchmark_data,
|
||||
'strategy_metrics': strategy_metrics,
|
||||
'qqq_metrics': qqq_metrics,
|
||||
'spy_metrics': spy_metrics
|
||||
}
|
||||
|
||||
if __name__ == "__main__":
|
||||
results = run_enhanced_backtest()
|
||||
print("Enhanced backtest completed! Results ready for PDF generation.")
|
||||
@@ -46,14 +46,14 @@ class EnhancedEmotionalDamageStrategy:
|
||||
fg_data['date'] = pd.to_datetime(fg_data['date'])
|
||||
fg_data.set_index('date', inplace=True)
|
||||
|
||||
# Get SPY price data as QQQ proxy
|
||||
spy_data = pd.read_sql_query('''
|
||||
SELECT date, spy_close
|
||||
FROM fear_greed_data
|
||||
# Get real QQQ price data
|
||||
qqq_data = pd.read_sql_query('''
|
||||
SELECT date, close as qqq_close
|
||||
FROM qqq
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
spy_data['date'] = pd.to_datetime(spy_data['date'])
|
||||
spy_data.set_index('date', inplace=True)
|
||||
qqq_data['date'] = pd.to_datetime(qqq_data['date'])
|
||||
qqq_data.set_index('date', inplace=True)
|
||||
|
||||
# Get available tickers
|
||||
cursor = conn.cursor()
|
||||
@@ -63,7 +63,7 @@ class EnhancedEmotionalDamageStrategy:
|
||||
conn.close()
|
||||
|
||||
# Merge data
|
||||
self.data = pd.merge(fg_data, spy_data, left_index=True, right_index=True, how='inner')
|
||||
self.data = pd.merge(fg_data, qqq_data, left_index=True, right_index=True, how='inner')
|
||||
self.data.sort_index(inplace=True)
|
||||
|
||||
print(f"Loaded data from {self.data.index.min().strftime('%Y-%m-%d')} to {self.data.index.max().strftime('%Y-%m-%d')}")
|
||||
@@ -91,15 +91,19 @@ class EnhancedEmotionalDamageStrategy:
|
||||
|
||||
return result[0] if result else None
|
||||
|
||||
def calculate_volatility(self, ticker, start_date, end_date):
|
||||
"""Calculate historical volatility"""
|
||||
def calculate_volatility(self, ticker, current_date):
|
||||
"""Calculate historical volatility over the past month"""
|
||||
import os
|
||||
from datetime import timedelta
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
backtest_dir = os.path.dirname(os.path.dirname(script_dir))
|
||||
db_path = os.path.join(backtest_dir, 'data', 'stock_data.db')
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
try:
|
||||
# Calculate volatility for the past 30 days
|
||||
start_date = current_date - timedelta(days=30)
|
||||
|
||||
query = f'''
|
||||
SELECT date, close FROM {ticker.lower()}
|
||||
WHERE date >= ? AND date <= ?
|
||||
@@ -108,7 +112,7 @@ class EnhancedEmotionalDamageStrategy:
|
||||
|
||||
df = pd.read_sql_query(query, conn, params=(
|
||||
start_date.strftime('%Y-%m-%d'),
|
||||
end_date.strftime('%Y-%m-%d')
|
||||
current_date.strftime('%Y-%m-%d')
|
||||
))
|
||||
|
||||
if len(df) > 10:
|
||||
@@ -123,30 +127,119 @@ class EnhancedEmotionalDamageStrategy:
|
||||
conn.close()
|
||||
return 0
|
||||
|
||||
def check_technical_indicators(self, ticker, date):
|
||||
"""Check RSI, MACD, and SMA technical indicators"""
|
||||
import os
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
backtest_dir = os.path.dirname(os.path.dirname(script_dir))
|
||||
db_path = os.path.join(backtest_dir, 'data', 'stock_data.db')
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
try:
|
||||
# Get 50 days of data for technical analysis
|
||||
query = f'''
|
||||
SELECT date, close FROM {ticker.lower()}
|
||||
WHERE date <= ?
|
||||
ORDER BY date DESC
|
||||
LIMIT 50
|
||||
'''
|
||||
|
||||
df = pd.read_sql_query(query, conn, params=(date.strftime('%Y-%m-%d'),))
|
||||
|
||||
if len(df) < 20:
|
||||
conn.close()
|
||||
return False
|
||||
|
||||
df = df.sort_values('date')
|
||||
df.reset_index(drop=True, inplace=True)
|
||||
|
||||
# Calculate RSI
|
||||
delta = df['close'].diff()
|
||||
gain = (delta.where(delta > 0, 0)).rolling(window=14).mean()
|
||||
loss = (-delta.where(delta < 0, 0)).rolling(window=14).mean()
|
||||
rs = gain / loss
|
||||
rsi = 100 - (100 / (1 + rs))
|
||||
|
||||
# Calculate MACD
|
||||
ema12 = df['close'].ewm(span=12).mean()
|
||||
ema26 = df['close'].ewm(span=26).mean()
|
||||
macd = ema12 - ema26
|
||||
signal = macd.ewm(span=9).mean()
|
||||
|
||||
# Calculate SMA
|
||||
sma5 = df['close'].rolling(window=5).mean()
|
||||
sma20 = df['close'].rolling(window=20).mean()
|
||||
|
||||
# Check conditions (use latest values)
|
||||
latest_rsi = rsi.iloc[-1]
|
||||
latest_macd = macd.iloc[-1]
|
||||
latest_signal = signal.iloc[-1]
|
||||
latest_sma5 = sma5.iloc[-1]
|
||||
latest_sma20 = sma20.iloc[-1]
|
||||
|
||||
# RSI should be above 30 (not oversold)
|
||||
rsi_ok = latest_rsi > 30
|
||||
|
||||
# MACD convergence: MACD and Signal lines are converging
|
||||
# Check if MACD is getting closer to signal line (momentum improving)
|
||||
if len(macd) >= 2 and len(signal) >= 2:
|
||||
prev_macd = macd.iloc[-2]
|
||||
prev_signal = signal.iloc[-2]
|
||||
prev_diff = abs(prev_macd - prev_signal)
|
||||
current_diff = abs(latest_macd - latest_signal)
|
||||
macd_ok = current_diff < prev_diff # Lines are converging
|
||||
else:
|
||||
macd_ok = latest_macd > latest_signal # Fallback to original condition
|
||||
|
||||
# SMA5 should be above SMA20 (uptrend)
|
||||
sma_ok = latest_sma5 > latest_sma20
|
||||
|
||||
# Need at least 2 out of 3 indicators to be positive
|
||||
score = sum([rsi_ok, macd_ok, sma_ok])
|
||||
|
||||
conn.close()
|
||||
return score >= 2
|
||||
|
||||
except Exception as e:
|
||||
conn.close()
|
||||
return False
|
||||
|
||||
def select_volatile_stocks(self, fear_start_date, fear_end_date):
|
||||
"""Select top volatile stocks"""
|
||||
volatilities = {}
|
||||
"""Select stocks using technical indicators, then sort by volatility"""
|
||||
qualified_stocks = []
|
||||
|
||||
# Filter stocks using technical indicators
|
||||
for ticker in self.available_tickers:
|
||||
vol = self.calculate_volatility(ticker, fear_start_date, fear_end_date)
|
||||
if vol > 0.2: # Minimum volatility threshold
|
||||
volatilities[ticker] = vol
|
||||
if self.check_technical_indicators(ticker, fear_end_date):
|
||||
vol = self.calculate_volatility(ticker, fear_end_date) # Calculate past month volatility
|
||||
|
||||
# Sort by volatility and select top N
|
||||
sorted_vol = sorted(volatilities.items(), key=lambda x: x[1], reverse=True)
|
||||
top_stocks = [ticker for ticker, vol in sorted_vol[:self.top_stocks_count]]
|
||||
if vol > 0.1: # Normal volatility threshold
|
||||
qualified_stocks.append((ticker, vol))
|
||||
|
||||
# Sort by volatility and select top 4
|
||||
qualified_stocks.sort(key=lambda x: x[1], reverse=True)
|
||||
top_stocks = [ticker for ticker, vol in qualified_stocks[:4]]
|
||||
|
||||
return top_stocks
|
||||
|
||||
def execute_trade(self, date, action, ticker=None, shares=None, price=None, value=None):
|
||||
"""Record a trade"""
|
||||
"""Execute and record a trade"""
|
||||
# Note: In enhanced strategy, actual execution is handled by gradual_transition
|
||||
# This method is only for recording trades
|
||||
|
||||
# Get F&G index for this date
|
||||
fg_index = self.data.loc[date, 'fear_greed_index'] if date in self.data.index else None
|
||||
|
||||
self.trades.append({
|
||||
'date': date,
|
||||
'action': action,
|
||||
'ticker': ticker,
|
||||
'shares': shares,
|
||||
'price': price,
|
||||
'value': value
|
||||
'value': value,
|
||||
'fg_index': fg_index,
|
||||
'cash_after': self.cash,
|
||||
'portfolio_state': self.state
|
||||
})
|
||||
|
||||
def calculate_portfolio_value(self, date):
|
||||
@@ -155,7 +248,7 @@ class EnhancedEmotionalDamageStrategy:
|
||||
|
||||
for ticker, shares in self.positions.items():
|
||||
if ticker == 'QQQ':
|
||||
price = self.data.loc[date, 'spy_close']
|
||||
price = self.data.loc[date, 'qqq_close']
|
||||
else:
|
||||
price = self.get_stock_price(ticker, date)
|
||||
|
||||
@@ -176,7 +269,7 @@ class EnhancedEmotionalDamageStrategy:
|
||||
|
||||
# Find average buy price
|
||||
buy_trades = [t for t in self.trades
|
||||
if t['ticker'] == ticker and t['action'] in ['BUY_VOLATILE']]
|
||||
if t['ticker'] == ticker and t['action'] in ['BUY_GRADUAL']]
|
||||
if buy_trades:
|
||||
total_cost = sum(t['price'] * t['shares'] for t in buy_trades)
|
||||
total_shares = sum(t['shares'] for t in buy_trades)
|
||||
@@ -192,12 +285,15 @@ class EnhancedEmotionalDamageStrategy:
|
||||
|
||||
self.execute_trade(date, 'STOP_LOSS', ticker, shares, current_price, value)
|
||||
|
||||
# Buy QQQ
|
||||
qqq_price = self.data.loc[date, 'spy_close']
|
||||
qqq_shares = value / qqq_price
|
||||
self.positions['QQQ'] = self.positions.get('QQQ', 0) + qqq_shares
|
||||
# Buy QQQ with integer shares
|
||||
qqq_price = self.data.loc[date, 'qqq_close']
|
||||
qqq_shares = int(value / qqq_price)
|
||||
|
||||
self.execute_trade(date, 'BUY_QQQ_STOPLOSS', 'QQQ', qqq_shares, qqq_price, value)
|
||||
if qqq_shares > 0:
|
||||
actual_qqq_value = qqq_shares * qqq_price
|
||||
self.positions['QQQ'] = self.positions.get('QQQ', 0) + qqq_shares
|
||||
self.cash -= actual_qqq_value # Subtract the actual QQQ purchase value
|
||||
self.execute_trade(date, 'BUY_QQQ_STOPLOSS', 'QQQ', qqq_shares, qqq_price, actual_qqq_value)
|
||||
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Stop loss triggered for {ticker}, loss: {loss_pct*100:.1f}%")
|
||||
|
||||
@@ -206,10 +302,9 @@ class EnhancedEmotionalDamageStrategy:
|
||||
self.transition_plan = {'type': target_type, 'stocks': stocks}
|
||||
|
||||
if target_type == 'CASH':
|
||||
# Plan to sell all non-QQQ positions over 4 steps
|
||||
# Plan to sell ALL positions (including QQQ) over 4 steps
|
||||
self.transition_plan['positions_to_sell'] = {}
|
||||
for ticker in self.positions:
|
||||
if ticker != 'QQQ':
|
||||
self.transition_plan['positions_to_sell'][ticker] = self.positions[ticker]
|
||||
|
||||
elif target_type == 'QQQ':
|
||||
@@ -232,7 +327,16 @@ class EnhancedEmotionalDamageStrategy:
|
||||
|
||||
elif target_type == 'VOLATILE' and stocks:
|
||||
# Plan to invest available cash in volatile stocks
|
||||
self.transition_plan['total_cash_to_invest'] = self.cash
|
||||
# Include cash from any remaining positions (should be mostly cash by now)
|
||||
cash_from_positions = 0
|
||||
for ticker in self.positions:
|
||||
if ticker != 'QQQ':
|
||||
price = self.get_stock_price(ticker, date)
|
||||
if price:
|
||||
cash_from_positions += self.positions[ticker] * price
|
||||
|
||||
total_available_cash = self.cash + cash_from_positions
|
||||
self.transition_plan['total_cash_to_invest'] = total_available_cash
|
||||
|
||||
def gradual_transition(self, date, target_type, stocks=None):
|
||||
"""Handle 4-step gradual transitions with fixed allocation"""
|
||||
@@ -256,19 +360,23 @@ class EnhancedEmotionalDamageStrategy:
|
||||
self.execute_trade(date, 'SELL_GRADUAL', ticker, shares_to_sell, price, value)
|
||||
|
||||
elif target_type == 'VOLATILE' and stocks:
|
||||
# Buy volatile stocks gradually using fixed cash allocation
|
||||
# Buy only the most volatile stock each step (up to 4 different stocks)
|
||||
total_cash = self.transition_plan.get('total_cash_to_invest', 0)
|
||||
cash_this_step = total_cash * step_size
|
||||
|
||||
if cash_this_step > 0 and self.cash >= cash_this_step:
|
||||
amount_per_stock = cash_this_step / len(stocks)
|
||||
for ticker in stocks:
|
||||
# Buy only the most volatile stock this step
|
||||
current_step_index = min(self.current_step, len(stocks) - 1)
|
||||
ticker = stocks[current_step_index] # stocks are already sorted by volatility
|
||||
|
||||
price = self.get_stock_price(ticker, date)
|
||||
if price and amount_per_stock > 0:
|
||||
shares = amount_per_stock / price
|
||||
if price and cash_this_step > 0:
|
||||
shares = int(cash_this_step / price) # Integer shares only
|
||||
if shares > 0:
|
||||
actual_value = shares * price
|
||||
self.positions[ticker] = self.positions.get(ticker, 0) + shares
|
||||
self.cash -= amount_per_stock
|
||||
self.execute_trade(date, 'BUY_GRADUAL', ticker, shares, price, amount_per_stock)
|
||||
self.cash -= actual_value
|
||||
self.execute_trade(date, 'BUY_GRADUAL', ticker, shares, price, actual_value)
|
||||
|
||||
elif target_type == 'QQQ':
|
||||
# Sell positions gradually and buy QQQ with fixed allocation
|
||||
@@ -293,12 +401,14 @@ class EnhancedEmotionalDamageStrategy:
|
||||
cash_this_step = total_cash * step_size
|
||||
|
||||
if cash_this_step > 0 and self.cash >= cash_this_step:
|
||||
qqq_price = self.data.loc[date, 'spy_close']
|
||||
qqq_shares = cash_this_step / qqq_price
|
||||
qqq_price = self.data.loc[date, 'qqq_close']
|
||||
qqq_shares = int(cash_this_step / qqq_price) # Integer shares only
|
||||
|
||||
if qqq_shares > 0:
|
||||
actual_value = qqq_shares * qqq_price
|
||||
self.positions['QQQ'] = self.positions.get('QQQ', 0) + qqq_shares
|
||||
self.cash -= cash_this_step
|
||||
self.execute_trade(date, 'BUY_GRADUAL', 'QQQ', qqq_shares, qqq_price, cash_this_step)
|
||||
self.cash -= actual_value
|
||||
self.execute_trade(date, 'BUY_GRADUAL', 'QQQ', qqq_shares, qqq_price, actual_value)
|
||||
|
||||
def run_backtest(self):
|
||||
"""Run the enhanced strategy backtest"""
|
||||
@@ -308,9 +418,10 @@ class EnhancedEmotionalDamageStrategy:
|
||||
|
||||
# Start with 100% QQQ
|
||||
first_date = self.data.index[0]
|
||||
qqq_price = self.data.loc[first_date, 'spy_close']
|
||||
qqq_shares = self.initial_capital / qqq_price
|
||||
qqq_price = self.data.loc[first_date, 'qqq_close']
|
||||
qqq_shares = int(self.initial_capital / qqq_price) # Integer shares only
|
||||
self.positions['QQQ'] = qqq_shares
|
||||
self.cash = self.initial_capital - (qqq_shares * qqq_price) # Remaining cash after buying integer shares
|
||||
|
||||
fear_start_date = None
|
||||
|
||||
@@ -438,21 +549,36 @@ def run_enhanced_backtest():
|
||||
portfolio_df = pd.DataFrame(strategy.portfolio_value)
|
||||
portfolio_df.set_index('date', inplace=True)
|
||||
|
||||
# Get benchmark data
|
||||
# Get benchmark data (both QQQ and SPY)
|
||||
import os
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
backtest_dir = os.path.dirname(os.path.dirname(script_dir))
|
||||
db_path = os.path.join(backtest_dir, 'data', 'stock_data.db')
|
||||
conn = sqlite3.connect(db_path)
|
||||
benchmark_data = pd.read_sql_query('''
|
||||
|
||||
# Get QQQ data
|
||||
qqq_data = pd.read_sql_query('''
|
||||
SELECT date, close as qqq_close
|
||||
FROM qqq
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
qqq_data['date'] = pd.to_datetime(qqq_data['date'])
|
||||
qqq_data.set_index('date', inplace=True)
|
||||
|
||||
# Get SPY data
|
||||
spy_data = pd.read_sql_query('''
|
||||
SELECT date, spy_close
|
||||
FROM fear_greed_data
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
benchmark_data['date'] = pd.to_datetime(benchmark_data['date'])
|
||||
benchmark_data.set_index('date', inplace=True)
|
||||
spy_data['date'] = pd.to_datetime(spy_data['date'])
|
||||
spy_data.set_index('date', inplace=True)
|
||||
|
||||
conn.close()
|
||||
|
||||
# Merge benchmark data
|
||||
benchmark_data = pd.merge(qqq_data, spy_data, left_index=True, right_index=True, how='inner')
|
||||
|
||||
# Align dates
|
||||
common_dates = portfolio_df.index.intersection(benchmark_data.index)
|
||||
portfolio_df = portfolio_df.loc[common_dates]
|
||||
@@ -460,7 +586,7 @@ def run_enhanced_backtest():
|
||||
|
||||
# Normalize benchmarks
|
||||
start_value = 100000
|
||||
benchmark_data['qqq_value'] = start_value * (benchmark_data['spy_close'] / benchmark_data['spy_close'].iloc[0])
|
||||
benchmark_data['qqq_value'] = start_value * (benchmark_data['qqq_close'] / benchmark_data['qqq_close'].iloc[0])
|
||||
benchmark_data['spy_value'] = start_value * (benchmark_data['spy_close'] / benchmark_data['spy_close'].iloc[0])
|
||||
|
||||
# Calculate metrics
|
||||
|
||||
45
backtest/strategy/emotional-damage/config.json
Normal file
45
backtest/strategy/emotional-damage/config.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"strategy_params": {
|
||||
"initial_capital": 100000,
|
||||
"fear_threshold": 25,
|
||||
"greed_threshold": 75,
|
||||
"stop_loss_threshold": 0.15,
|
||||
"transition_steps": 4,
|
||||
"top_stocks_count": 4,
|
||||
"volatility_threshold": 0.1,
|
||||
"volatility_calculation_days": 30
|
||||
},
|
||||
"technical_indicators": {
|
||||
"rsi_threshold": 30,
|
||||
"required_indicators": 2,
|
||||
"sma5_above_sma20": true,
|
||||
"macd_convergence": true,
|
||||
"ema_periods": {
|
||||
"fast": 12,
|
||||
"slow": 26,
|
||||
"signal": 9
|
||||
},
|
||||
"sma_periods": {
|
||||
"fast": 5,
|
||||
"slow": 20
|
||||
},
|
||||
"rsi_period": 14
|
||||
},
|
||||
"output_settings": {
|
||||
"generate_pdf": true,
|
||||
"generate_csv": true,
|
||||
"generate_detailed_trades": true,
|
||||
"show_console_output": true,
|
||||
"save_strategy_object": true
|
||||
},
|
||||
"paths": {
|
||||
"database_path": "/home/will/docker/backtest/data/stock_data.db",
|
||||
"reports_dir": "/home/will/docker/backtest/reports",
|
||||
"results_dir": "/home/will/docker/backtest/results"
|
||||
},
|
||||
"data_settings": {
|
||||
"min_ticker_records": 1000,
|
||||
"start_date": null,
|
||||
"end_date": null
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
默认状态下,100%满仓QQQ。
|
||||
|
||||
当CNN Fear & Greed 指数跌破25(极端恐惧):
|
||||
|
||||
清仓QQQ,100%现金状态等待。
|
||||
|
||||
当指数从25以下反弹回25以上时:
|
||||
|
||||
计算在指数<25期间,QQQ成分股的历史波动率。
|
||||
|
||||
选出波动性最大的前10支股票,满仓持有这10只股票。
|
||||
|
||||
一直持有,直到CNN Fear & Greed 指数突破75(极端贪婪):
|
||||
|
||||
清仓10支股票,重新100%满仓QQQ,回到初始状态。
|
||||
Binary file not shown.
@@ -1,149 +1,169 @@
|
||||
# Enhanced Emotional Damage Strategy - Algorithm Details
|
||||
# 增强版情绪伤害策略 - 算法详细说明
|
||||
|
||||
## Strategy Overview
|
||||
The Enhanced Emotional Damage Strategy is an algorithmic trading approach that uses market sentiment (Fear & Greed Index) combined with technical analysis to time market entries and exits. The strategy aims to capitalize on market fear by moving to cash during panic periods and reinvesting in volatile stocks during recovery phases.
|
||||
## 策略概述
|
||||
增强版情绪伤害策略是一种基于市场情绪指标(恐惧与贪婪指数)结合技术分析的量化交易策略。该策略通过在市场恐慌时转换为现金,在市场恢复时投资高波动性股票来获取收益。
|
||||
|
||||
## Core Algorithm Components
|
||||
## 核心算法组件
|
||||
|
||||
### 1. Fear & Greed Index-Based Market Timing
|
||||
- **Data Source**: CNN Fear & Greed Index (0-100 scale)
|
||||
- **Fear Threshold**: 25 (market panic trigger)
|
||||
- **Greed Threshold**: 75 (profit-taking trigger)
|
||||
- **Logic**:
|
||||
- When F&G < 25: Move to cash (avoid further losses)
|
||||
- When F&G recovers > 25: Select volatile stocks (recovery play)
|
||||
- When F&G > 75: Move to QQQ (safe haven)
|
||||
### 1. 基于恐惧与贪婪指数的市场择时
|
||||
- **数据源**: CNN恐惧与贪婪指数(0-100刻度)
|
||||
- **恐惧阈值**: 25(市场恐慌触发点)
|
||||
- **贪婪阈值**: 75(获利了结触发点)
|
||||
- **逻辑**:
|
||||
- 当F&G < 25时:转为现金(避免进一步损失)
|
||||
- 当F&G恢复 > 25时:选择高波动股票(恢复阶段投资)
|
||||
- 当F&G > 75时:转为QQQ(安全港)
|
||||
|
||||
### 2. Gradual Transition System (4-Step Process)
|
||||
**Critical Fix Applied**: Original algorithm had compounding error creating impossible returns.
|
||||
### 2. 渐进式调仓系统(4步调仓)
|
||||
**关键修复**: 原算法存在复利错误,产生了不可能的收益率。
|
||||
|
||||
#### Fixed Implementation:
|
||||
#### 修复后的实现:
|
||||
```python
|
||||
def start_transition(self, date, target_type, stocks=None):
|
||||
# Calculate TOTAL funds available for transition at START
|
||||
# Store fixed allocation plan to prevent compounding
|
||||
# 在开始时计算总资金,存储固定分配计划防止复利错误
|
||||
|
||||
def gradual_transition(self, date, target_type, stocks=None):
|
||||
# Execute 1/4 of predetermined allocation each step
|
||||
# NO recalculation of total value per step
|
||||
# 每步执行预定分配的1/4,不重新计算总价值
|
||||
```
|
||||
|
||||
**Transition Types**:
|
||||
- **TO_CASH**: Sell all non-QQQ positions over 4 trading days
|
||||
- **TO_VOLATILE**: Buy selected volatile stocks with available cash
|
||||
- **TO_QQQ**: Sell all positions and buy QQQ over 4 days
|
||||
**调仓类型**:
|
||||
- **转现金**: 在4个交易日内卖出所有非QQQ持仓
|
||||
- **转波动股**: 用可用现金买入选定的高波动股票
|
||||
- **转QQQ**: 在4天内卖出所有持仓并买入QQQ
|
||||
|
||||
**Why 4 Steps**: Reduces market impact and slippage from large position changes
|
||||
**为什么4步**: 减少大额仓位变化的市场冲击和滑点
|
||||
|
||||
### 3. Technical Indicator Filtering
|
||||
For volatile stock selection, requires 2 out of 3 indicators showing upward trend:
|
||||
### 3. 技术指标过滤系统
|
||||
高波动股票选择需要满足3个指标中至少2个显示上涨趋势:
|
||||
|
||||
#### MACD Golden Cross
|
||||
#### MACD黄金交叉
|
||||
```python
|
||||
macd > macd_signal # Current MACD above signal line
|
||||
macd > macd_signal # 当前MACD高于信号线
|
||||
```
|
||||
|
||||
#### RSI First Derivative Positive
|
||||
#### RSI向上趋势
|
||||
```python
|
||||
current_rsi > previous_rsi # RSI trending upward
|
||||
current_rsi > 30 # RSI大于30(避免超卖)
|
||||
```
|
||||
|
||||
#### EMA Crossover (5/20 period)
|
||||
#### 移动平均线交叉(5/20周期)
|
||||
```python
|
||||
ema_5 > ema_20 # Short-term momentum over long-term
|
||||
sma_5 > sma_20 # 短期动量超过长期
|
||||
```
|
||||
|
||||
### 4. Stop-Loss Protection (15% Rule)
|
||||
- **Trigger**: Any volatile stock position drops 15% below average purchase price
|
||||
- **Action**: Immediately sell position and buy equivalent QQQ shares
|
||||
- **Purpose**: Risk management to prevent large losses
|
||||
### 4. 止损保护(15%规则)
|
||||
- **触发条件**: 任何波动股持仓跌破平均买入价15%
|
||||
- **执行动作**: 立即卖出该持仓并买入等值QQQ
|
||||
- **目的**: 风险管理,防止大额损失
|
||||
|
||||
## State Machine Implementation
|
||||
## 状态机实现
|
||||
|
||||
```
|
||||
QQQ_HOLD → [F&G < 25] → FEAR_TRANSITION → CASH_WAIT
|
||||
↓ (4 steps)
|
||||
↓ (4步)
|
||||
CASH_WAIT → [F&G ≥ 25] → GREED_TRANSITION → VOLATILE_STOCKS
|
||||
↓ (4 steps) ↓ [F&G > 75]
|
||||
↓ (4步) ↓ [F&G > 75]
|
||||
QQQ_TRANSITION
|
||||
↓ (4 steps)
|
||||
↓ (4步)
|
||||
QQQ_HOLD
|
||||
```
|
||||
|
||||
## Key Algorithm Fixes Applied
|
||||
## 关键算法修复
|
||||
|
||||
### Original Bug: Compounding Error
|
||||
### 原始BUG: 初始化错误
|
||||
```python
|
||||
# WRONG (caused 129M% impossible returns):
|
||||
total_value = self.calculate_portfolio_value(date)
|
||||
target_qqq_value = total_value * step_size # Created money each step!
|
||||
# 错误(导致资金翻倍):
|
||||
self.cash = initial_capital # 设置现金
|
||||
self.positions['QQQ'] = qqq_shares # 买入QQQ但没有清零现金
|
||||
```
|
||||
|
||||
### Fixed Algorithm:
|
||||
### 修复后的算法:
|
||||
```python
|
||||
# CORRECT (realistic 516% over 17 years):
|
||||
def start_transition(self, date, target_type):
|
||||
self.transition_cash_pool = calculate_total_available_cash()
|
||||
|
||||
def gradual_transition(self, date, target_type):
|
||||
cash_this_step = self.transition_cash_pool * step_size # Fixed amount
|
||||
# 正确(资金正常):
|
||||
self.positions['QQQ'] = qqq_shares
|
||||
self.cash = 0 # 修复: 买入QQQ后清零现金
|
||||
```
|
||||
|
||||
## Performance Characteristics
|
||||
### 股票选择逻辑修复
|
||||
```python
|
||||
# 原来: 只使用波动率过滤(过于简单)
|
||||
if vol > 0.2: # 20%波动率阈值过高
|
||||
volatilities[ticker] = vol
|
||||
|
||||
### Risk Management Features:
|
||||
- **Maximum Drawdown Control**: Move to cash during market panic
|
||||
- **Position Sizing**: Equal-weight allocation across selected stocks
|
||||
- **Stop-Loss**: 15% maximum loss per position
|
||||
- **Gradual Execution**: 4-step transitions reduce market impact
|
||||
# 修复后: 技术指标过滤 + 波动率排序
|
||||
if self.check_technical_indicators(ticker, date): # RSI+MACD+SMA过滤
|
||||
if vol > 0.1: # 降低波动率阈值
|
||||
qualified_stocks.append((ticker, vol))
|
||||
```
|
||||
|
||||
### Expected Behavior:
|
||||
- **Bull Markets**: Moderate participation via QQQ
|
||||
- **Bear Markets**: Cash preservation during panic phases
|
||||
- **Recovery Phases**: Aggressive positioning in volatile stocks
|
||||
- **Overheated Markets**: Defensive shift back to QQQ
|
||||
### 交易逻辑修复
|
||||
```python
|
||||
# 原来: 等权重买入所有股票
|
||||
amount_per_stock = cash / len(stocks) # 分散投资
|
||||
for ticker in stocks:
|
||||
buy(ticker, amount_per_stock)
|
||||
|
||||
## Technical Implementation Details
|
||||
# 修复后: 每次买入波动性最强的1支股票
|
||||
current_step_index = min(self.current_step, len(stocks) - 1)
|
||||
ticker = stocks[current_step_index] # 按波动性排序,每次买最强的
|
||||
buy(ticker, cash_this_step) # 最多同时持有4支股票
|
||||
```
|
||||
|
||||
### Database Dependencies:
|
||||
- `fear_greed_index`: CNN F&G historical data
|
||||
- `{ticker}`: Individual stock OHLCV + technical indicators
|
||||
- `qqq`: QQQ ETF historical prices (to be added)
|
||||
- `fear_greed_data.spy_close`: SPY benchmark data
|
||||
## 性能特征
|
||||
|
||||
### Performance Metrics Calculated:
|
||||
- Total Return, Annual Return, Sharpe Ratio
|
||||
- Maximum Drawdown and recovery periods
|
||||
- Win/Loss ratio and trade frequency
|
||||
- Correlation with market benchmarks
|
||||
### 风险管理功能:
|
||||
- **最大回撤控制**: 市场恐慌时转为现金
|
||||
- **仓位管理**: 最多同时持有4支高波动股票
|
||||
- **止损保护**: 每个持仓最大损失15%
|
||||
- **渐进执行**: 4步调仓减少市场冲击
|
||||
|
||||
## Known Limitations & Future Improvements
|
||||
### 预期行为:
|
||||
- **牛市**: 通过QQQ适度参与
|
||||
- **熊市**: 恐慌阶段现金保值
|
||||
- **恢复阶段**: 高波动股票攻击性持仓
|
||||
- **过热市场**: 防御性回到QQQ
|
||||
|
||||
### Current Issues:
|
||||
1. **QQQ Data**: Currently using SPY prices for QQQ trades (unrealistic)
|
||||
2. **Network Dependency**: Requires external data feeds for F&G index
|
||||
3. **Market Regime Changes**: May not adapt to structural market shifts
|
||||
## 技术实现细节
|
||||
|
||||
### Planned Enhancements:
|
||||
1. **Real QQQ Data**: Download actual QQQ historical prices
|
||||
2. **Dynamic Thresholds**: Adjust F&G thresholds based on market volatility
|
||||
3. **Sector Rotation**: Add sector-specific volatile stock selection
|
||||
4. **Risk Scaling**: Position size based on volatility estimates
|
||||
### 数据库依赖:
|
||||
- `fear_greed_index`: CNN恐惧与贪婪历史数据
|
||||
- `{ticker}`: 个股OHLCV + 技术指标数据
|
||||
- `qqq`: QQQ ETF历史价格(真实数据)
|
||||
- `fear_greed_data.spy_close`: SPY基准数据
|
||||
|
||||
## Backtest Results (After Bug Fix)
|
||||
- **Period**: 2007-2025 (17+ years)
|
||||
- **Total Return**: 516.8% (vs impossible 129M% before fix)
|
||||
- **Annual Return**: ~11% (realistic performance)
|
||||
- **Max Drawdown**: TBD (pending QQQ data fix)
|
||||
- **Trade Count**: 4 major transitions (simple strategy behavior)
|
||||
### 计算的性能指标:
|
||||
- 总回报、年化回报、夏普比率
|
||||
- 最大回撤和恢复期
|
||||
- 胜率和交易频率
|
||||
- 与市场基准的相关性
|
||||
|
||||
## Files Structure:
|
||||
## 已知限制与未来改进
|
||||
|
||||
### 当前问题:
|
||||
1. **技术指标过滤过严**: 导致大部分恐慌期找不到合适股票
|
||||
2. **交易记录不完整**: gradual_transition中的交易未被记录
|
||||
3. **市场制度变化**: 可能无法适应结构性市场变化
|
||||
|
||||
### 计划增强:
|
||||
1. **放宽技术指标**: 降低过滤标准,提高股票选择成功率
|
||||
2. **完善交易记录**: 确保所有交易都被正确记录
|
||||
3. **动态阈值**: 根据市场波动调整F&G阈值
|
||||
4. **风险缩放**: 基于波动率估算调整仓位大小
|
||||
|
||||
## 回测结果(修复后)
|
||||
- **期间**: 2007-2025(18年)
|
||||
- **总回报**: 1258.3%(修复初始化BUG后)
|
||||
- **年化回报**: 15.7%(略低于QQQ的16.3%)
|
||||
- **最大回撤**: 待优化
|
||||
- **交易次数**: 0(技术指标过滤太严格)
|
||||
|
||||
## 文件结构:
|
||||
```
|
||||
strategy/emotional-damage/
|
||||
├── backtest_emotional_damage_enhanced_v2.py # Main strategy (fixed)
|
||||
├── generate_enhanced_pdf_report.py # Report generator
|
||||
├── enhanced_emotional_damage_strategy_report_*.pdf # Results
|
||||
└── enhanced-emotional-damage.txt # This documentation
|
||||
├── backtest_emotional_damage_enhanced_v2.py # 主策略(已修复)
|
||||
├── generate_enhanced_pdf_report.py # 报告生成器
|
||||
├── enhanced_emotional_damage_strategy_report_*.pdf # 结果报告
|
||||
└── enhanced-emotional-damage.txt # 本文档
|
||||
```
|
||||
|
||||
**Status**: Strategy logic fixed, awaiting real QQQ data for complete validation.
|
||||
**状态**: 策略逻辑已修复,但技术指标过滤需要优化以提高选股成功率。目前表现接近QQQ买入持有策略,但缺少波动股票投资机会。
|
||||
Binary file not shown.
@@ -1,440 +0,0 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import seaborn as sns
|
||||
from matplotlib.backends.backend_pdf import PdfPages
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
from datetime import datetime
|
||||
import sqlite3
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Add the strategy path
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__)))
|
||||
from backtest_emotional_damage_enhanced_v2 import EnhancedEmotionalDamageStrategy
|
||||
|
||||
def run_enhanced_backtest_local():
|
||||
"""Run enhanced strategy backtest locally"""
|
||||
|
||||
strategy = EnhancedEmotionalDamageStrategy(initial_capital=100000)
|
||||
strategy.run_backtest()
|
||||
|
||||
# Convert results to DataFrame
|
||||
portfolio_df = pd.DataFrame(strategy.portfolio_value)
|
||||
portfolio_df.set_index('date', inplace=True)
|
||||
|
||||
# Get benchmark data (QQQ and SPY)
|
||||
import os
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
backtest_dir = os.path.dirname(os.path.dirname(script_dir))
|
||||
db_path = os.path.join(backtest_dir, 'data', 'stock_data.db')
|
||||
print(f"Connecting to database at: {db_path}")
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
benchmark_data = pd.read_sql_query('''
|
||||
SELECT date, spy_close
|
||||
FROM fear_greed_data
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
benchmark_data['date'] = pd.to_datetime(benchmark_data['date'])
|
||||
benchmark_data.set_index('date', inplace=True)
|
||||
|
||||
conn.close()
|
||||
|
||||
# Align dates
|
||||
common_dates = portfolio_df.index.intersection(benchmark_data.index)
|
||||
portfolio_df = portfolio_df.loc[common_dates]
|
||||
benchmark_data = benchmark_data.loc[common_dates]
|
||||
|
||||
# Normalize to starting value for comparison
|
||||
start_value = 100000
|
||||
portfolio_df['normalized'] = portfolio_df['value']
|
||||
|
||||
# Create QQQ and SPY buy-and-hold benchmarks
|
||||
benchmark_data['qqq_value'] = start_value * (benchmark_data['spy_close'] / benchmark_data['spy_close'].iloc[0])
|
||||
benchmark_data['spy_value'] = start_value * (benchmark_data['spy_close'] / benchmark_data['spy_close'].iloc[0])
|
||||
|
||||
# Calculate performance metrics
|
||||
def calculate_performance_metrics(returns):
|
||||
"""Calculate performance metrics"""
|
||||
total_return = (returns.iloc[-1] / returns.iloc[0] - 1) * 100
|
||||
annual_return = ((returns.iloc[-1] / returns.iloc[0]) ** (252 / len(returns)) - 1) * 100
|
||||
|
||||
# Calculate max drawdown
|
||||
peak = returns.expanding().max()
|
||||
drawdown = (returns - peak) / peak
|
||||
max_drawdown = drawdown.min() * 100
|
||||
|
||||
# Find max drawdown period
|
||||
max_dd_date = drawdown.idxmin()
|
||||
max_dd_year = max_dd_date.year
|
||||
|
||||
# Calculate Sharpe ratio
|
||||
daily_returns = returns.pct_change().dropna()
|
||||
sharpe_ratio = np.sqrt(252) * daily_returns.mean() / daily_returns.std()
|
||||
|
||||
# Annual returns by year
|
||||
annual_rets = {}
|
||||
for year in returns.index.year.unique():
|
||||
year_data = returns[returns.index.year == year]
|
||||
if len(year_data) > 1:
|
||||
year_return = (year_data.iloc[-1] / year_data.iloc[0] - 1) * 100
|
||||
annual_rets[year] = year_return
|
||||
|
||||
return {
|
||||
'total_return': total_return,
|
||||
'annual_return': annual_return,
|
||||
'max_drawdown': max_drawdown,
|
||||
'max_drawdown_date': max_dd_date,
|
||||
'max_drawdown_year': max_dd_year,
|
||||
'sharpe_ratio': sharpe_ratio,
|
||||
'annual_returns': annual_rets
|
||||
}
|
||||
|
||||
strategy_metrics = calculate_performance_metrics(portfolio_df['value'])
|
||||
qqq_metrics = calculate_performance_metrics(benchmark_data['qqq_value'])
|
||||
spy_metrics = calculate_performance_metrics(benchmark_data['spy_value'])
|
||||
|
||||
return {
|
||||
'strategy': strategy,
|
||||
'portfolio_df': portfolio_df,
|
||||
'benchmark_data': benchmark_data,
|
||||
'strategy_metrics': strategy_metrics,
|
||||
'qqq_metrics': qqq_metrics,
|
||||
'spy_metrics': spy_metrics
|
||||
}
|
||||
|
||||
def generate_enhanced_pdf_report():
|
||||
"""Generate comprehensive PDF report for enhanced strategy"""
|
||||
|
||||
print("Running enhanced strategy backtest...")
|
||||
results = run_enhanced_backtest_local()
|
||||
|
||||
strategy = results['strategy']
|
||||
portfolio_df = results['portfolio_df']
|
||||
benchmark_data = results['benchmark_data']
|
||||
strategy_metrics = results['strategy_metrics']
|
||||
qqq_metrics = results['qqq_metrics']
|
||||
spy_metrics = results['spy_metrics']
|
||||
|
||||
# Create PDF report in the strategy directory
|
||||
report_filename = f"enhanced_emotional_damage_strategy_report_{datetime.now().strftime('%Y%m%d_%H%M%S')}.pdf"
|
||||
report_path = os.path.join(os.path.dirname(__file__), report_filename)
|
||||
|
||||
with PdfPages(report_path) as pdf:
|
||||
|
||||
# Page 1: Executive Summary
|
||||
fig = plt.figure(figsize=(16, 12))
|
||||
fig.suptitle('Enhanced Emotional Damage Strategy - Comprehensive Analysis', fontsize=20, fontweight='bold')
|
||||
|
||||
# Create grid layout
|
||||
gs = fig.add_gridspec(3, 3, hspace=0.3, wspace=0.3)
|
||||
|
||||
# Performance comparison table
|
||||
ax1 = fig.add_subplot(gs[0, :])
|
||||
ax1.axis('tight')
|
||||
ax1.axis('off')
|
||||
|
||||
table_data = [
|
||||
['Metric', 'Enhanced Strategy', 'QQQ Buy & Hold', 'SPY Buy & Hold'],
|
||||
[f'Total Return', f'{strategy_metrics["total_return"]:.1f}%', f'{qqq_metrics["total_return"]:.1f}%', f'{spy_metrics["total_return"]:.1f}%'],
|
||||
[f'Annual Return', f'{strategy_metrics["annual_return"]:.1f}%', f'{qqq_metrics["annual_return"]:.1f}%', f'{spy_metrics["annual_return"]:.1f}%'],
|
||||
[f'Max Drawdown', f'{strategy_metrics["max_drawdown"]:.1f}%', f'{qqq_metrics["max_drawdown"]:.1f}%', f'{spy_metrics["max_drawdown"]:.1f}%'],
|
||||
[f'Sharpe Ratio', f'{strategy_metrics["sharpe_ratio"]:.2f}', f'{qqq_metrics["sharpe_ratio"]:.2f}', f'{spy_metrics["sharpe_ratio"]:.2f}'],
|
||||
[f'Max DD Year', f'{strategy_metrics["max_drawdown_year"]}', f'{qqq_metrics.get("max_drawdown_year", "N/A")}', f'{spy_metrics.get("max_drawdown_year", "N/A")}']
|
||||
]
|
||||
|
||||
table = ax1.table(cellText=table_data[1:],
|
||||
colLabels=table_data[0],
|
||||
cellLoc='center',
|
||||
loc='upper center',
|
||||
colWidths=[0.25, 0.25, 0.25, 0.25])
|
||||
table.auto_set_font_size(False)
|
||||
table.set_fontsize(11)
|
||||
table.scale(1.2, 2.5)
|
||||
table.auto_set_column_width(col=list(range(len(table_data[0]))))
|
||||
|
||||
# Color the header row
|
||||
for i in range(len(table_data[0])):
|
||||
table[(0, i)].set_facecolor('#4CAF50')
|
||||
table[(0, i)].set_text_props(weight='bold', color='white')
|
||||
|
||||
ax1.set_title('Performance Summary (18+ Years Backtest)', fontsize=16, fontweight='bold', pad=30)
|
||||
|
||||
# Portfolio value over time
|
||||
ax2 = fig.add_subplot(gs[1, :2])
|
||||
ax2.plot(portfolio_df.index, portfolio_df['value'], label='Enhanced Strategy', linewidth=2.5, color='#2E86AB')
|
||||
ax2.plot(benchmark_data.index, benchmark_data['qqq_value'], label='QQQ', alpha=0.7, color='#A23B72')
|
||||
ax2.plot(benchmark_data.index, benchmark_data['spy_value'], label='SPY', alpha=0.7, color='#F18F01')
|
||||
ax2.set_title('Portfolio Value Over Time (Starting from $100,000)', fontsize=14, fontweight='bold')
|
||||
ax2.set_ylabel('Portfolio Value ($)', fontsize=12)
|
||||
ax2.legend(fontsize=11)
|
||||
ax2.grid(True, alpha=0.3)
|
||||
ax2.yaxis.set_major_formatter(plt.FuncFormatter(lambda x, p: f'${x/1000:.0f}K'))
|
||||
|
||||
# Fear & Greed Index with strategy states
|
||||
ax3 = fig.add_subplot(gs[1, 2])
|
||||
ax3_twin = ax3.twinx()
|
||||
|
||||
# Fear & Greed Index
|
||||
ax3.plot(portfolio_df.index, portfolio_df['fg_index'], color='red', alpha=0.7, linewidth=1)
|
||||
ax3.axhline(y=25, color='red', linestyle='--', alpha=0.5, label='Fear (25)')
|
||||
ax3.axhline(y=75, color='green', linestyle='--', alpha=0.5, label='Greed (75)')
|
||||
ax3.set_ylabel('Fear & Greed Index', color='red', fontsize=10)
|
||||
ax3.tick_params(axis='y', labelcolor='red')
|
||||
ax3.set_ylim(0, 100)
|
||||
ax3.set_title('Fear & Greed Index', fontsize=12)
|
||||
|
||||
# Strategy states as background
|
||||
state_colors = {'QQQ_HOLD': '#E8F5E8', 'FEAR_TRANSITION': '#FFE6E6',
|
||||
'CASH_WAIT': '#FFF2E6', 'GREED_TRANSITION': '#E6F3FF',
|
||||
'VOLATILE_STOCKS': '#FFE6CC', 'QQQ_TRANSITION': '#FFE6F0'}
|
||||
|
||||
current_state = None
|
||||
start_idx = 0
|
||||
for i, (idx, row) in enumerate(portfolio_df.iterrows()):
|
||||
if row['state'] != current_state:
|
||||
if current_state is not None:
|
||||
ax3.axvspan(portfolio_df.index[start_idx], idx,
|
||||
alpha=0.2, color=state_colors.get(current_state, 'gray'))
|
||||
current_state = row['state']
|
||||
start_idx = i
|
||||
|
||||
if current_state is not None:
|
||||
ax3.axvspan(portfolio_df.index[start_idx], portfolio_df.index[-1],
|
||||
alpha=0.2, color=state_colors.get(current_state, 'gray'))
|
||||
|
||||
# Annual returns comparison
|
||||
ax4 = fig.add_subplot(gs[2, :])
|
||||
years = sorted(strategy_metrics['annual_returns'].keys())
|
||||
strategy_rets = [strategy_metrics['annual_returns'][y] for y in years]
|
||||
qqq_rets = [qqq_metrics['annual_returns'][y] for y in years]
|
||||
spy_rets = [spy_metrics['annual_returns'][y] for y in years]
|
||||
|
||||
x = np.arange(len(years))
|
||||
width = 0.25
|
||||
|
||||
bars1 = ax4.bar(x - width, strategy_rets, width, label='Enhanced Strategy',
|
||||
color='#2E86AB', alpha=0.8)
|
||||
bars2 = ax4.bar(x, qqq_rets, width, label='QQQ', color='#A23B72', alpha=0.8)
|
||||
bars3 = ax4.bar(x + width, spy_rets, width, label='SPY', color='#F18F01', alpha=0.8)
|
||||
|
||||
ax4.set_xlabel('Year', fontsize=12)
|
||||
ax4.set_ylabel('Annual Return (%)', fontsize=12)
|
||||
ax4.set_title('Annual Returns Comparison', fontsize=14, fontweight='bold')
|
||||
ax4.set_xticks(x)
|
||||
ax4.set_xticklabels(years, rotation=45)
|
||||
ax4.legend(fontsize=11)
|
||||
ax4.grid(True, alpha=0.3)
|
||||
ax4.axhline(y=0, color='black', linestyle='-', alpha=0.3)
|
||||
|
||||
# Add value labels on bars
|
||||
for bars in [bars1, bars2, bars3]:
|
||||
for bar in bars:
|
||||
height = bar.get_height()
|
||||
if abs(height) > 5: # Only label significant returns
|
||||
ax4.annotate(f'{height:.0f}%',
|
||||
xy=(bar.get_x() + bar.get_width() / 2, height),
|
||||
xytext=(0, 3 if height > 0 else -15),
|
||||
textcoords="offset points",
|
||||
ha='center', va='bottom' if height > 0 else 'top',
|
||||
fontsize=9)
|
||||
|
||||
plt.suptitle('Enhanced Emotional Damage Strategy - Comprehensive Analysis', fontsize=20, fontweight='bold')
|
||||
pdf.savefig(fig, bbox_inches='tight', dpi=300)
|
||||
plt.close()
|
||||
|
||||
# Page 2: Drawdown Analysis
|
||||
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, figsize=(16, 12))
|
||||
fig.suptitle('Risk Analysis', fontsize=16, fontweight='bold')
|
||||
|
||||
# Calculate drawdowns
|
||||
def calculate_drawdown(returns):
|
||||
peak = returns.expanding().max()
|
||||
drawdown = (returns - peak) / peak
|
||||
return drawdown * 100
|
||||
|
||||
strategy_dd = calculate_drawdown(portfolio_df['value'])
|
||||
qqq_dd = calculate_drawdown(benchmark_data['qqq_value'])
|
||||
spy_dd = calculate_drawdown(benchmark_data['spy_value'])
|
||||
|
||||
# Drawdown comparison
|
||||
ax1.plot(portfolio_df.index, strategy_dd, label='Enhanced Strategy',
|
||||
linewidth=2, color='#2E86AB')
|
||||
ax1.plot(benchmark_data.index, qqq_dd, label='QQQ', alpha=0.7, color='#A23B72')
|
||||
ax1.plot(benchmark_data.index, spy_dd, label='SPY', alpha=0.7, color='#F18F01')
|
||||
ax1.axhline(y=0, color='black', linestyle='-', alpha=0.3)
|
||||
ax1.fill_between(portfolio_df.index, strategy_dd, 0, alpha=0.2, color='#2E86AB')
|
||||
ax1.set_title('Drawdown Comparison Over Time')
|
||||
ax1.set_ylabel('Drawdown (%)')
|
||||
ax1.legend()
|
||||
ax1.grid(True, alpha=0.3)
|
||||
|
||||
# Drawdown histogram
|
||||
significant_dd = strategy_dd[strategy_dd < -10] # > 10% drawdowns
|
||||
if len(significant_dd) > 0:
|
||||
ax2.hist(significant_dd, bins=20, alpha=0.7, color='#A23B72', edgecolor='black')
|
||||
ax2.axvline(x=significant_dd.min(), color='red', linestyle='--',
|
||||
label=f'Max DD: {significant_dd.min():.1f}%')
|
||||
ax2.set_title('Distribution of Significant Drawdowns')
|
||||
ax2.set_xlabel('Drawdown (%)')
|
||||
ax2.set_ylabel('Frequency')
|
||||
ax2.legend()
|
||||
ax2.grid(True, alpha=0.3)
|
||||
else:
|
||||
ax2.text(0.5, 0.5, 'No significant drawdowns > 10%',
|
||||
ha='center', va='center', transform=ax2.transAxes,
|
||||
fontsize=12)
|
||||
|
||||
# Rolling 252-day returns
|
||||
window = 252
|
||||
strategy_rolling = portfolio_df['value'].pct_change(window).rolling(window).mean() * 100
|
||||
qqq_rolling = benchmark_data['qqq_value'].pct_change(window).rolling(window).mean() * 100
|
||||
|
||||
ax3.plot(portfolio_df.index, strategy_rolling, label='Enhanced Strategy',
|
||||
linewidth=2, color='#2E86AB')
|
||||
ax3.plot(benchmark_data.index, qqq_rolling, label='QQQ', alpha=0.7, color='#A23B72')
|
||||
ax3.set_title(f'Rolling {window}-Day Annualized Returns')
|
||||
ax3.set_ylabel('Return (%)')
|
||||
ax3.legend()
|
||||
ax3.grid(True, alpha=0.3)
|
||||
|
||||
# Risk-adjusted returns scatter
|
||||
strategies = ['Enhanced Strategy', 'QQQ', 'SPY']
|
||||
returns = [strategy_metrics['annual_return'], qqq_metrics['annual_return'], spy_metrics['annual_return']]
|
||||
risks = [abs(strategy_metrics['max_drawdown']), abs(qqq_metrics['max_drawdown']), abs(spy_metrics['max_drawdown'])]
|
||||
sharpes = [strategy_metrics['sharpe_ratio'], qqq_metrics['sharpe_ratio'], spy_metrics['sharpe_ratio']]
|
||||
|
||||
colors = ['#2E86AB', '#A23B72', '#F18F01']
|
||||
|
||||
for i, (strat, ret, risk, sharpe, color) in enumerate(zip(strategies, returns, risks, sharpes, colors)):
|
||||
ax4.scatter(risk, ret, s=sharpe*100, alpha=0.7, color=color, label=f'{strat} (Sharpe: {sharpe:.2f})')
|
||||
ax4.annotate(strat, (risk, ret), xytext=(5, 5), textcoords='offset points',
|
||||
fontsize=10, fontweight='bold')
|
||||
|
||||
ax4.set_xlabel('Maximum Drawdown (%)')
|
||||
ax4.set_ylabel('Annual Return (%)')
|
||||
ax4.set_title('Risk vs Return (bubble size = Sharpe Ratio)')
|
||||
ax4.grid(True, alpha=0.3)
|
||||
ax4.legend()
|
||||
|
||||
plt.tight_layout()
|
||||
pdf.savefig(fig, bbox_inches='tight', dpi=300)
|
||||
plt.close()
|
||||
|
||||
# Page 3: Trading Activity and Strategy Features
|
||||
fig = plt.figure(figsize=(16, 12))
|
||||
gs = fig.add_gridspec(3, 2, hspace=0.3, wspace=0.3)
|
||||
fig.suptitle('Trading Activity and Enhanced Features', fontsize=16, fontweight='bold')
|
||||
|
||||
# Trading frequency
|
||||
trades_df = pd.DataFrame(strategy.trades)
|
||||
if len(trades_df) > 0:
|
||||
trades_df['date'] = pd.to_datetime(trades_df['date'])
|
||||
trades_df['year'] = trades_df['date'].dt.year
|
||||
|
||||
ax1 = fig.add_subplot(gs[0, 0])
|
||||
trades_by_year = trades_df.groupby('year').size()
|
||||
ax1.bar(trades_by_year.index, trades_by_year.values,
|
||||
color='#2E86AB', alpha=0.7, edgecolor='black')
|
||||
ax1.set_title('Trading Frequency by Year')
|
||||
ax1.set_xlabel('Year')
|
||||
ax1.set_ylabel('Number of Trades')
|
||||
ax1.grid(True, alpha=0.3)
|
||||
|
||||
# Trade types
|
||||
ax2 = fig.add_subplot(gs[0, 1])
|
||||
trade_types = trades_df['action'].value_counts()
|
||||
colors = plt.cm.Set3(np.linspace(0, 1, len(trade_types)))
|
||||
wedges, texts, autotexts = ax2.pie(trade_types.values,
|
||||
labels=trade_types.index,
|
||||
autopct='%1.1f%%',
|
||||
colors=colors)
|
||||
ax2.set_title('Trade Types Distribution')
|
||||
|
||||
# Recent trades table
|
||||
ax3 = fig.add_subplot(gs[1, :])
|
||||
ax3.axis('tight')
|
||||
ax3.axis('off')
|
||||
|
||||
recent_trades = trades_df.tail(15) if len(trades_df) > 15 else trades_df
|
||||
if len(recent_trades) > 0:
|
||||
trade_table_data = []
|
||||
for _, trade in recent_trades.iterrows():
|
||||
trade_table_data.append([
|
||||
trade['date'].strftime('%Y-%m-%d'),
|
||||
trade['action'][:15],
|
||||
trade['ticker'],
|
||||
f"{trade['shares']:.0f}",
|
||||
f"${trade['price']:.2f}",
|
||||
f"${trade['value']:,.0f}"
|
||||
])
|
||||
|
||||
trade_table = ax3.table(cellText=trade_table_data,
|
||||
colLabels=['Date', 'Action', 'Ticker', 'Shares', 'Price', 'Value'],
|
||||
cellLoc='center',
|
||||
loc='center')
|
||||
trade_table.auto_set_font_size(False)
|
||||
trade_table.set_fontsize(9)
|
||||
trade_table.scale(1.2, 1.5)
|
||||
ax3.set_title('Recent 15 Trades', fontsize=14, fontweight='bold', pad=20)
|
||||
|
||||
# Strategy features
|
||||
ax4 = fig.add_subplot(gs[2, :])
|
||||
features_text = """
|
||||
ENHANCED STRATEGY FEATURES:
|
||||
|
||||
1. 4-Step Gradual Position Transitions
|
||||
• Reduces market impact and slippage
|
||||
• Provides better entry/exit timing
|
||||
• Smooth transitions between QQQ, cash, and volatile stocks
|
||||
|
||||
2. 15% Stop-Loss Protection
|
||||
• Individual stock risk management
|
||||
• Automatic QQQ replacement on stop-loss triggers
|
||||
• Protects against significant losses
|
||||
|
||||
3. Technical Indicator Filtering
|
||||
• MACD: Identifies trend reversals and momentum shifts
|
||||
• RSI: Avoids oversold conditions (RSI > 30 filter)
|
||||
• EMA: Uses EMA5/EMA20 crossover for trend confirmation
|
||||
|
||||
4. Enhanced Volatility Selection
|
||||
• Combines technical signals with historical volatility
|
||||
• More selective stock picking process
|
||||
• Dynamic selection based on recent market conditions
|
||||
|
||||
5. Fear & Greed Based Market Timing
|
||||
• Systematic entry/exit based on CNN Fear & Greed Index
|
||||
• Counter-emotional trading biases
|
||||
• Proven market sentiment indicator
|
||||
|
||||
PERFORMANCE SUMMARY:
|
||||
"""
|
||||
|
||||
# Add performance summary to features
|
||||
perf_summary = f"""
|
||||
Backtest Period: {portfolio_df.index.min().strftime('%Y-%m-%d')} to {portfolio_df.index.max().strftime('%Y-%m-%d')}
|
||||
Total Trades: {len(strategy.trades)}
|
||||
Total Return: {strategy_metrics['total_return']:.1f}%
|
||||
Annual Return: {strategy_metrics['annual_return']:.1f}%
|
||||
Max Drawdown: {strategy_metrics['max_drawdown']:.1f}%
|
||||
Sharpe Ratio: {strategy_metrics['sharpe_ratio']:.2f}
|
||||
"""
|
||||
|
||||
full_text = features_text + perf_summary
|
||||
|
||||
ax4.text(0.05, 0.95, full_text, transform=ax4.transAxes,
|
||||
fontsize=10, verticalalignment='top', fontfamily='monospace',
|
||||
bbox=dict(boxstyle="round,pad=0.3", facecolor='lightgray', alpha=0.3))
|
||||
ax4.axis('off')
|
||||
|
||||
plt.tight_layout()
|
||||
pdf.savefig(fig, bbox_inches='tight', dpi=300)
|
||||
plt.close()
|
||||
|
||||
print(f"Enhanced PDF report generated: {report_filename}")
|
||||
return report_path
|
||||
|
||||
if __name__ == "__main__":
|
||||
filename = generate_enhanced_pdf_report()
|
||||
print(f"Report saved as: {filename}")
|
||||
960
backtest/strategy/emotional-damage/run_strategy_with_config.py
Normal file
960
backtest/strategy/emotional-damage/run_strategy_with_config.py
Normal file
@@ -0,0 +1,960 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import sqlite3
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
from datetime import datetime, timedelta
|
||||
import warnings
|
||||
import os
|
||||
import pickle
|
||||
import matplotlib.pyplot as plt
|
||||
import seaborn as sns
|
||||
warnings.filterwarnings('ignore')
|
||||
|
||||
class ConfigurableEmotionalDamageStrategy:
|
||||
def __init__(self, config_path='config.json'):
|
||||
"""Initialize strategy with config file"""
|
||||
self.load_config(config_path)
|
||||
self.cash = self.config['strategy_params']['initial_capital']
|
||||
self.positions = {}
|
||||
self.portfolio_value = []
|
||||
self.trades = []
|
||||
|
||||
# State management
|
||||
self.state = 'QQQ_HOLD'
|
||||
self.current_step = 0
|
||||
self.target_allocation = {}
|
||||
self.last_fear_date = None
|
||||
|
||||
# For gradual transitions
|
||||
self.transition_plan = {}
|
||||
self.transition_cash_pool = 0
|
||||
|
||||
def load_config(self, config_path):
|
||||
"""Load configuration from JSON file"""
|
||||
with open(config_path, 'r') as f:
|
||||
self.config = json.load(f)
|
||||
|
||||
# Set strategy parameters as attributes for easy access
|
||||
params = self.config['strategy_params']
|
||||
self.initial_capital = params['initial_capital']
|
||||
self.fear_threshold = params['fear_threshold']
|
||||
self.greed_threshold = params['greed_threshold']
|
||||
self.stop_loss_threshold = params['stop_loss_threshold']
|
||||
self.top_stocks_count = params['top_stocks_count']
|
||||
self.volatility_threshold = params['volatility_threshold']
|
||||
self.volatility_calculation_days = params['volatility_calculation_days']
|
||||
self.transition_steps = params['transition_steps']
|
||||
|
||||
# Technical indicators
|
||||
tech = self.config['technical_indicators']
|
||||
self.rsi_threshold = tech['rsi_threshold']
|
||||
self.required_indicators = tech['required_indicators']
|
||||
self.sma5_above_sma20 = tech['sma5_above_sma20']
|
||||
self.macd_convergence = tech['macd_convergence']
|
||||
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print(f"✅ 配置已加载:")
|
||||
print(f" 初始资金: ${self.initial_capital:,}")
|
||||
print(f" 恐慌阈值: {self.fear_threshold}")
|
||||
print(f" 贪婪阈值: {self.greed_threshold}")
|
||||
print(f" 止损阈值: {self.stop_loss_threshold*100}%")
|
||||
print(f" 转换步数: {self.transition_steps}")
|
||||
print(f" 选股数量: {self.top_stocks_count}")
|
||||
print("")
|
||||
|
||||
def get_data(self):
|
||||
"""Load Fear & Greed Index and stock data"""
|
||||
db_path = self.config['paths']['database_path']
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print(f"连接数据库: {db_path}")
|
||||
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
# Get Fear & Greed Index
|
||||
fg_data = pd.read_sql_query('''
|
||||
SELECT date, fear_greed_index
|
||||
FROM fear_greed_index
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
fg_data['date'] = pd.to_datetime(fg_data['date'])
|
||||
fg_data.set_index('date', inplace=True)
|
||||
|
||||
# Get real QQQ price data
|
||||
qqq_data = pd.read_sql_query('''
|
||||
SELECT date, close as qqq_close
|
||||
FROM qqq
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
qqq_data['date'] = pd.to_datetime(qqq_data['date'])
|
||||
qqq_data.set_index('date', inplace=True)
|
||||
|
||||
# Get available tickers
|
||||
min_records = self.config['data_settings']['min_ticker_records']
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(f'SELECT ticker FROM ticker_list WHERE records > {min_records}')
|
||||
self.available_tickers = [row[0] for row in cursor.fetchall()]
|
||||
|
||||
conn.close()
|
||||
|
||||
# Merge data
|
||||
self.data = pd.merge(fg_data, qqq_data, left_index=True, right_index=True, how='inner')
|
||||
|
||||
# Apply date filters if specified
|
||||
if self.config['data_settings']['start_date']:
|
||||
start_date = pd.to_datetime(self.config['data_settings']['start_date'])
|
||||
self.data = self.data[self.data.index >= start_date]
|
||||
|
||||
if self.config['data_settings']['end_date']:
|
||||
end_date = pd.to_datetime(self.config['data_settings']['end_date'])
|
||||
self.data = self.data[self.data.index <= end_date]
|
||||
|
||||
self.data.sort_index(inplace=True)
|
||||
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print(f"数据加载完成: {self.data.index.min().strftime('%Y-%m-%d')} 到 {self.data.index.max().strftime('%Y-%m-%d')}")
|
||||
print(f"可用股票数量: {len(self.available_tickers)}")
|
||||
print("")
|
||||
|
||||
def get_stock_price(self, ticker, date):
|
||||
"""Get stock price for a specific ticker and date"""
|
||||
db_path = self.config['paths']['database_path']
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
query = f'''
|
||||
SELECT close FROM {ticker.lower()}
|
||||
WHERE date <= ?
|
||||
ORDER BY date DESC
|
||||
LIMIT 1
|
||||
'''
|
||||
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(query, (date.strftime('%Y-%m-%d'),))
|
||||
result = cursor.fetchone()
|
||||
conn.close()
|
||||
|
||||
return result[0] if result else None
|
||||
|
||||
def calculate_volatility(self, ticker, current_date):
|
||||
"""Calculate historical volatility over configured period"""
|
||||
db_path = self.config['paths']['database_path']
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
try:
|
||||
start_date = current_date - timedelta(days=self.volatility_calculation_days)
|
||||
|
||||
query = f'''
|
||||
SELECT date, close FROM {ticker.lower()}
|
||||
WHERE date >= ? AND date <= ?
|
||||
ORDER BY date
|
||||
'''
|
||||
|
||||
df = pd.read_sql_query(query, conn, params=(
|
||||
start_date.strftime('%Y-%m-%d'),
|
||||
current_date.strftime('%Y-%m-%d')
|
||||
))
|
||||
|
||||
if len(df) > 10:
|
||||
df['returns'] = df['close'].pct_change()
|
||||
volatility = df['returns'].std() * np.sqrt(252)
|
||||
conn.close()
|
||||
return volatility
|
||||
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
conn.close()
|
||||
return 0
|
||||
|
||||
def check_technical_indicators(self, ticker, date):
|
||||
"""Check RSI, MACD, and SMA technical indicators"""
|
||||
db_path = self.config['paths']['database_path']
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
try:
|
||||
query = f'''
|
||||
SELECT date, close FROM {ticker.lower()}
|
||||
WHERE date <= ?
|
||||
ORDER BY date DESC
|
||||
LIMIT 50
|
||||
'''
|
||||
|
||||
df = pd.read_sql_query(query, conn, params=(date.strftime('%Y-%m-%d'),))
|
||||
|
||||
if len(df) < 20:
|
||||
conn.close()
|
||||
return False
|
||||
|
||||
df = df.sort_values('date')
|
||||
df.reset_index(drop=True, inplace=True)
|
||||
|
||||
# Calculate RSI
|
||||
rsi_period = self.config['technical_indicators']['rsi_period']
|
||||
delta = df['close'].diff()
|
||||
gain = (delta.where(delta > 0, 0)).rolling(window=rsi_period).mean()
|
||||
loss = (-delta.where(delta < 0, 0)).rolling(window=rsi_period).mean()
|
||||
rs = gain / loss
|
||||
rsi = 100 - (100 / (1 + rs))
|
||||
|
||||
# Calculate MACD
|
||||
ema_fast = self.config['technical_indicators']['ema_periods']['fast']
|
||||
ema_slow = self.config['technical_indicators']['ema_periods']['slow']
|
||||
ema_signal = self.config['technical_indicators']['ema_periods']['signal']
|
||||
|
||||
ema12 = df['close'].ewm(span=ema_fast).mean()
|
||||
ema26 = df['close'].ewm(span=ema_slow).mean()
|
||||
macd = ema12 - ema26
|
||||
signal = macd.ewm(span=ema_signal).mean()
|
||||
|
||||
# Calculate SMA
|
||||
sma_fast = self.config['technical_indicators']['sma_periods']['fast']
|
||||
sma_slow = self.config['technical_indicators']['sma_periods']['slow']
|
||||
sma5 = df['close'].rolling(window=sma_fast).mean()
|
||||
sma20 = df['close'].rolling(window=sma_slow).mean()
|
||||
|
||||
# Check conditions
|
||||
latest_rsi = rsi.iloc[-1]
|
||||
latest_macd = macd.iloc[-1]
|
||||
latest_signal = signal.iloc[-1]
|
||||
latest_sma5 = sma5.iloc[-1]
|
||||
latest_sma20 = sma20.iloc[-1]
|
||||
|
||||
# RSI condition
|
||||
rsi_ok = latest_rsi > self.rsi_threshold
|
||||
|
||||
# MACD condition
|
||||
if self.macd_convergence and len(macd) >= 2 and len(signal) >= 2:
|
||||
prev_macd = macd.iloc[-2]
|
||||
prev_signal = signal.iloc[-2]
|
||||
prev_diff = abs(prev_macd - prev_signal)
|
||||
current_diff = abs(latest_macd - latest_signal)
|
||||
macd_ok = current_diff < prev_diff # Lines are converging
|
||||
else:
|
||||
macd_ok = latest_macd > latest_signal # Traditional golden cross
|
||||
|
||||
# SMA condition
|
||||
if self.sma5_above_sma20:
|
||||
sma_ok = latest_sma5 > latest_sma20
|
||||
else:
|
||||
sma_ok = True # Skip SMA check if disabled
|
||||
|
||||
# Check if enough indicators are positive
|
||||
conditions = [rsi_ok, macd_ok, sma_ok]
|
||||
score = sum(conditions)
|
||||
|
||||
conn.close()
|
||||
return score >= self.required_indicators
|
||||
|
||||
except Exception as e:
|
||||
conn.close()
|
||||
return False
|
||||
|
||||
def select_volatile_stocks(self, fear_start_date, fear_end_date):
|
||||
"""Select stocks using technical indicators, then sort by volatility"""
|
||||
qualified_stocks = []
|
||||
|
||||
for ticker in self.available_tickers:
|
||||
if self.check_technical_indicators(ticker, fear_end_date):
|
||||
vol = self.calculate_volatility(ticker, fear_end_date)
|
||||
|
||||
if vol > self.volatility_threshold:
|
||||
qualified_stocks.append((ticker, vol))
|
||||
|
||||
# Sort by volatility and select top stocks
|
||||
qualified_stocks.sort(key=lambda x: x[1], reverse=True)
|
||||
top_stocks = [ticker for ticker, vol in qualified_stocks[:self.top_stocks_count]]
|
||||
|
||||
return top_stocks
|
||||
|
||||
def execute_trade(self, date, action, ticker=None, shares=None, price=None, value=None):
|
||||
"""Execute and record a trade"""
|
||||
fg_index = self.data.loc[date, 'fear_greed_index'] if date in self.data.index else None
|
||||
total_assets = self.calculate_portfolio_value(date)
|
||||
|
||||
self.trades.append({
|
||||
'date': date,
|
||||
'action': action,
|
||||
'ticker': ticker,
|
||||
'shares': shares,
|
||||
'price': price,
|
||||
'value': value,
|
||||
'fg_index': fg_index,
|
||||
'cnn_fear_greed': fg_index, # Same as fg_index but with clearer name
|
||||
'cash_after': self.cash,
|
||||
'total_assets': total_assets,
|
||||
'portfolio_state': self.state
|
||||
})
|
||||
|
||||
def calculate_portfolio_value(self, date):
|
||||
"""Calculate total portfolio value"""
|
||||
total_value = self.cash
|
||||
|
||||
for ticker, shares in self.positions.items():
|
||||
if ticker == 'QQQ':
|
||||
price = self.data.loc[date, 'qqq_close']
|
||||
else:
|
||||
price = self.get_stock_price(ticker, date)
|
||||
|
||||
if price:
|
||||
total_value += shares * price
|
||||
|
||||
return total_value
|
||||
|
||||
def check_stop_loss(self, date):
|
||||
"""Check stop loss threshold"""
|
||||
for ticker in list(self.positions.keys()):
|
||||
if ticker == 'QQQ':
|
||||
continue
|
||||
|
||||
current_price = self.get_stock_price(ticker, date)
|
||||
if not current_price:
|
||||
continue
|
||||
|
||||
# Find average buy price
|
||||
buy_trades = [t for t in self.trades
|
||||
if t['ticker'] == ticker and t['action'] in ['BUY_GRADUAL']]
|
||||
if buy_trades:
|
||||
total_cost = sum(t['price'] * t['shares'] for t in buy_trades)
|
||||
total_shares = sum(t['shares'] for t in buy_trades)
|
||||
avg_price = total_cost / total_shares
|
||||
|
||||
loss_pct = (current_price - avg_price) / avg_price
|
||||
if loss_pct <= -self.stop_loss_threshold:
|
||||
# Sell and buy QQQ
|
||||
shares = self.positions[ticker]
|
||||
value = shares * current_price
|
||||
self.cash += value
|
||||
del self.positions[ticker]
|
||||
|
||||
self.execute_trade(date, 'STOP_LOSS', ticker, shares, current_price, value)
|
||||
|
||||
# Buy QQQ with integer shares
|
||||
qqq_price = self.data.loc[date, 'qqq_close']
|
||||
qqq_shares = int(value / qqq_price)
|
||||
|
||||
if qqq_shares > 0:
|
||||
actual_qqq_value = qqq_shares * qqq_price
|
||||
self.positions['QQQ'] = self.positions.get('QQQ', 0) + qqq_shares
|
||||
self.cash -= actual_qqq_value
|
||||
self.execute_trade(date, 'BUY_QQQ_STOPLOSS', 'QQQ', qqq_shares, qqq_price, actual_qqq_value)
|
||||
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Stop loss triggered for {ticker}, loss: {loss_pct*100:.1f}%")
|
||||
|
||||
def start_transition(self, date, target_type, stocks=None):
|
||||
"""Initialize transition plan"""
|
||||
self.transition_plan = {'type': target_type, 'stocks': stocks}
|
||||
|
||||
if target_type == 'CASH':
|
||||
self.transition_plan['positions_to_sell'] = {}
|
||||
for ticker in self.positions:
|
||||
self.transition_plan['positions_to_sell'][ticker] = self.positions[ticker]
|
||||
|
||||
elif target_type == 'QQQ':
|
||||
cash_from_positions = 0
|
||||
for ticker in self.positions:
|
||||
if ticker != 'QQQ':
|
||||
price = self.get_stock_price(ticker, date)
|
||||
if price:
|
||||
cash_from_positions += self.positions[ticker] * price
|
||||
|
||||
self.transition_cash_pool = self.cash + cash_from_positions
|
||||
self.transition_plan['total_cash_to_invest'] = self.transition_cash_pool
|
||||
self.transition_plan['positions_to_sell'] = {}
|
||||
for ticker in self.positions:
|
||||
if ticker != 'QQQ':
|
||||
self.transition_plan['positions_to_sell'][ticker] = self.positions[ticker]
|
||||
|
||||
elif target_type == 'VOLATILE' and stocks:
|
||||
cash_from_positions = 0
|
||||
for ticker in self.positions:
|
||||
if ticker != 'QQQ':
|
||||
price = self.get_stock_price(ticker, date)
|
||||
if price:
|
||||
cash_from_positions += self.positions[ticker] * price
|
||||
|
||||
total_available_cash = self.cash + cash_from_positions
|
||||
self.transition_plan['total_cash_to_invest'] = total_available_cash
|
||||
|
||||
def gradual_transition(self, date, target_type, stocks=None):
|
||||
"""Handle gradual transitions with integer shares"""
|
||||
step_size = 1.0 / self.transition_steps
|
||||
|
||||
if target_type == 'CASH':
|
||||
for ticker in list(self.transition_plan.get('positions_to_sell', {})):
|
||||
if ticker in self.positions:
|
||||
total_shares_to_sell = self.transition_plan['positions_to_sell'][ticker]
|
||||
shares_to_sell = int(total_shares_to_sell * step_size)
|
||||
|
||||
if shares_to_sell > 0 and shares_to_sell <= self.positions[ticker]:
|
||||
price = self.get_stock_price(ticker, date)
|
||||
if price:
|
||||
value = shares_to_sell * price
|
||||
self.cash += value
|
||||
self.positions[ticker] -= shares_to_sell
|
||||
if self.positions[ticker] <= 0:
|
||||
del self.positions[ticker]
|
||||
self.execute_trade(date, 'SELL_GRADUAL', ticker, shares_to_sell, price, value)
|
||||
|
||||
elif target_type == 'VOLATILE' and stocks:
|
||||
total_cash = self.transition_plan.get('total_cash_to_invest', 0)
|
||||
cash_this_step = total_cash * step_size
|
||||
|
||||
if cash_this_step > 0 and self.cash >= cash_this_step:
|
||||
current_step_index = min(self.current_step, len(stocks) - 1)
|
||||
ticker = stocks[current_step_index]
|
||||
|
||||
price = self.get_stock_price(ticker, date)
|
||||
if price and cash_this_step > 0:
|
||||
shares = int(cash_this_step / price)
|
||||
if shares > 0:
|
||||
actual_value = shares * price
|
||||
self.positions[ticker] = self.positions.get(ticker, 0) + shares
|
||||
self.cash -= actual_value
|
||||
self.execute_trade(date, 'BUY_GRADUAL', ticker, shares, price, actual_value)
|
||||
|
||||
elif target_type == 'QQQ':
|
||||
# Sell positions gradually
|
||||
for ticker in list(self.transition_plan.get('positions_to_sell', {})):
|
||||
if ticker in self.positions:
|
||||
total_shares_to_sell = self.transition_plan['positions_to_sell'][ticker]
|
||||
shares_to_sell = int(total_shares_to_sell * step_size)
|
||||
|
||||
if shares_to_sell > 0 and shares_to_sell <= self.positions[ticker]:
|
||||
price = self.get_stock_price(ticker, date)
|
||||
if price:
|
||||
value = shares_to_sell * price
|
||||
self.cash += value
|
||||
self.positions[ticker] -= shares_to_sell
|
||||
if self.positions[ticker] <= 0:
|
||||
del self.positions[ticker]
|
||||
self.execute_trade(date, 'SELL_GRADUAL', ticker, shares_to_sell, price, value)
|
||||
|
||||
# Buy QQQ
|
||||
total_cash = self.transition_plan.get('total_cash_to_invest', 0)
|
||||
cash_this_step = total_cash * step_size
|
||||
|
||||
if cash_this_step > 0 and self.cash >= cash_this_step:
|
||||
qqq_price = self.data.loc[date, 'qqq_close']
|
||||
qqq_shares = int(cash_this_step / qqq_price)
|
||||
|
||||
if qqq_shares > 0:
|
||||
actual_value = qqq_shares * qqq_price
|
||||
self.positions['QQQ'] = self.positions.get('QQQ', 0) + qqq_shares
|
||||
self.cash -= actual_value
|
||||
self.execute_trade(date, 'BUY_GRADUAL', 'QQQ', qqq_shares, qqq_price, actual_value)
|
||||
|
||||
def run_backtest(self):
|
||||
"""Run the strategy backtest"""
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print("🚀 开始运行Enhanced Emotional Damage Strategy...")
|
||||
print("")
|
||||
|
||||
self.get_data()
|
||||
|
||||
# Start with 100% QQQ
|
||||
first_date = self.data.index[0]
|
||||
qqq_price = self.data.loc[first_date, 'qqq_close']
|
||||
qqq_shares = int(self.initial_capital / qqq_price)
|
||||
self.positions['QQQ'] = qqq_shares
|
||||
self.cash = self.initial_capital - (qqq_shares * qqq_price)
|
||||
|
||||
fear_start_date = None
|
||||
|
||||
for date, row in self.data.iterrows():
|
||||
fg_index = row['fear_greed_index']
|
||||
|
||||
# Check stop loss
|
||||
self.check_stop_loss(date)
|
||||
|
||||
if self.state == 'QQQ_HOLD':
|
||||
if fg_index < self.fear_threshold:
|
||||
fear_start_date = date
|
||||
self.state = 'FEAR_TRANSITION'
|
||||
self.current_step = 0
|
||||
self.start_transition(date, 'CASH')
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Fear threshold hit ({fg_index:.1f}), starting transition to cash")
|
||||
|
||||
elif self.state == 'FEAR_TRANSITION':
|
||||
self.gradual_transition(date, 'CASH')
|
||||
self.current_step += 1
|
||||
|
||||
if self.current_step >= self.transition_steps:
|
||||
self.state = 'CASH_WAIT'
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Transition to cash complete")
|
||||
|
||||
elif self.state == 'CASH_WAIT':
|
||||
if fg_index >= self.fear_threshold and fear_start_date:
|
||||
top_stocks = self.select_volatile_stocks(fear_start_date, date)
|
||||
|
||||
if top_stocks:
|
||||
self.state = 'GREED_TRANSITION'
|
||||
self.current_step = 0
|
||||
self.transition_stocks = top_stocks
|
||||
self.start_transition(date, 'VOLATILE', top_stocks)
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Fear recovered, starting transition to volatile stocks: {top_stocks}")
|
||||
else:
|
||||
self.state = 'QQQ_TRANSITION'
|
||||
self.current_step = 0
|
||||
self.start_transition(date, 'QQQ')
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Fear recovered, no suitable stocks, returning to QQQ")
|
||||
|
||||
elif self.state == 'GREED_TRANSITION':
|
||||
self.gradual_transition(date, 'VOLATILE', self.transition_stocks)
|
||||
self.current_step += 1
|
||||
|
||||
if self.current_step >= self.transition_steps:
|
||||
self.state = 'VOLATILE_STOCKS'
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Transition to volatile stocks complete")
|
||||
|
||||
elif self.state == 'VOLATILE_STOCKS':
|
||||
if fg_index > self.greed_threshold:
|
||||
self.state = 'QQQ_TRANSITION'
|
||||
self.current_step = 0
|
||||
self.start_transition(date, 'QQQ')
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Greed threshold hit ({fg_index:.1f}), starting transition to QQQ")
|
||||
|
||||
elif self.state == 'QQQ_TRANSITION':
|
||||
self.gradual_transition(date, 'QQQ')
|
||||
self.current_step += 1
|
||||
|
||||
if self.current_step >= self.transition_steps:
|
||||
self.state = 'QQQ_HOLD'
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print(f"{date.strftime('%Y-%m-%d')}: Transition to QQQ complete")
|
||||
|
||||
# Record portfolio value
|
||||
portfolio_value = self.calculate_portfolio_value(date)
|
||||
self.portfolio_value.append({
|
||||
'date': date,
|
||||
'value': portfolio_value,
|
||||
'state': self.state,
|
||||
'fg_index': fg_index
|
||||
})
|
||||
|
||||
if self.config['output_settings']['show_console_output']:
|
||||
print("")
|
||||
print(f"✅ 回测完成! 总交易数: {len(self.trades)}")
|
||||
print("")
|
||||
|
||||
def calculate_performance_metrics(self, returns):
|
||||
"""Calculate performance metrics"""
|
||||
total_return = (returns.iloc[-1] / returns.iloc[0] - 1) * 100
|
||||
annual_return = ((returns.iloc[-1] / returns.iloc[0]) ** (252 / len(returns)) - 1) * 100
|
||||
|
||||
# Calculate max drawdown
|
||||
peak = returns.expanding().max()
|
||||
drawdown = (returns - peak) / peak
|
||||
max_drawdown = drawdown.min() * 100
|
||||
|
||||
# Calculate Sharpe ratio
|
||||
daily_returns = returns.pct_change().dropna()
|
||||
sharpe_ratio = np.sqrt(252) * daily_returns.mean() / daily_returns.std()
|
||||
|
||||
# Annual returns by year
|
||||
annual_rets = {}
|
||||
for year in returns.index.year.unique():
|
||||
year_data = returns[returns.index.year == year]
|
||||
if len(year_data) > 1:
|
||||
year_return = (year_data.iloc[-1] / year_data.iloc[0] - 1) * 100
|
||||
annual_rets[year] = year_return
|
||||
|
||||
return {
|
||||
'total_return': total_return,
|
||||
'annual_return': annual_return,
|
||||
'max_drawdown': max_drawdown,
|
||||
'sharpe_ratio': sharpe_ratio,
|
||||
'annual_returns': annual_rets
|
||||
}
|
||||
|
||||
|
||||
def generate_reports(strategy):
|
||||
"""Generate all reports based on config settings"""
|
||||
config = strategy.config
|
||||
|
||||
# Create output directories
|
||||
reports_dir = config['paths']['reports_dir']
|
||||
results_dir = config['paths']['results_dir']
|
||||
os.makedirs(reports_dir, exist_ok=True)
|
||||
os.makedirs(results_dir, exist_ok=True)
|
||||
|
||||
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
|
||||
|
||||
# Save strategy object if requested
|
||||
if config['output_settings']['save_strategy_object']:
|
||||
strategy_file = os.path.join(results_dir, f'enhanced_strategy_{timestamp}.pkl')
|
||||
with open(strategy_file, 'wb') as f:
|
||||
pickle.dump(strategy, f)
|
||||
print(f"📦 策略对象已保存: {strategy_file}")
|
||||
|
||||
# Generate CSV reports
|
||||
if config['output_settings']['generate_csv'] or config['output_settings']['generate_detailed_trades']:
|
||||
trades_df = pd.DataFrame(strategy.trades)
|
||||
|
||||
if config['output_settings']['generate_csv']:
|
||||
csv_file = os.path.join(reports_dir, f'enhanced_trades_{timestamp}.csv')
|
||||
trades_df.to_csv(csv_file, index=False)
|
||||
print(f"📊 交易CSV已保存: {csv_file}")
|
||||
|
||||
if config['output_settings']['generate_detailed_trades']:
|
||||
detailed_file = os.path.join(reports_dir, f'detailed_trades_{timestamp}.txt')
|
||||
with open(detailed_file, 'w', encoding='utf-8') as f:
|
||||
f.write("Enhanced Emotional Damage Strategy - Detailed Trades Report\n")
|
||||
f.write("=" * 120 + "\n\n")
|
||||
|
||||
# Summary
|
||||
f.write(f"📊 交易摘要:\n")
|
||||
f.write(f"总交易数: {len(strategy.trades)}\n")
|
||||
f.write(f"交易时间: {trades_df['date'].min().strftime('%Y-%m-%d')} 到 {trades_df['date'].max().strftime('%Y-%m-%d')}\n")
|
||||
|
||||
# Trade types
|
||||
action_counts = trades_df['action'].value_counts()
|
||||
f.write(f"\n交易类型统计:\n")
|
||||
for action, count in action_counts.items():
|
||||
f.write(f" {action}: {count}\n")
|
||||
|
||||
# Detailed trades
|
||||
f.write(f"\n📋 详细交易记录:\n")
|
||||
f.write("=" * 150 + "\n")
|
||||
f.write(f"{'No':>3s} {'Date':>10s} {'Action':>15s} {'Ticker':>5s} {'Shares':>8s} {'Price':>7s} {'Value':>12s} {'F&G':>4s} {'Cash':>12s} {'Assets':>12s} {'State':>15s}\n")
|
||||
f.write("=" * 150 + "\n")
|
||||
|
||||
for i, trade in enumerate(strategy.trades, 1):
|
||||
fg_str = f"{trade.get('fg_index', 0):.0f}" if trade.get('fg_index') else "N/A"
|
||||
cash_str = f"${trade.get('cash_after', 0):,.0f}" if trade.get('cash_after') else "N/A"
|
||||
assets_str = f"${trade.get('total_assets', 0):,.0f}" if trade.get('total_assets') else "N/A"
|
||||
state_str = trade.get('portfolio_state', 'N/A')
|
||||
f.write(f"{i:3d} {trade['date'].strftime('%Y-%m-%d'):>10s} {trade['action']:>15s} {trade['ticker']:>5s} "
|
||||
f"{trade['shares']:>8.0f} ${trade['price']:>7.2f} ${trade['value']:>12,.0f} {fg_str:>4s} {cash_str:>12s} {assets_str:>12s} {state_str:>15s}\n")
|
||||
|
||||
print(f"📝 详细交易报告已保存: {detailed_file}")
|
||||
|
||||
# Generate PDF report
|
||||
if config['output_settings']['generate_pdf']:
|
||||
try:
|
||||
generate_enhanced_pdf_report(strategy, reports_dir, timestamp)
|
||||
|
||||
except Exception as e:
|
||||
print(f"⚠️ PDF生成失败: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
print("\n🎉 所有报告生成完成!")
|
||||
|
||||
|
||||
def generate_enhanced_pdf_report(strategy, reports_dir, timestamp):
|
||||
"""Generate comprehensive PDF report with enhanced layout and proper spacing"""
|
||||
import matplotlib.pyplot as plt
|
||||
import matplotlib.dates as mdates
|
||||
from matplotlib.backends.backend_pdf import PdfPages
|
||||
import seaborn as sns
|
||||
import sqlite3
|
||||
import os
|
||||
|
||||
# Prepare data
|
||||
portfolio_df = pd.DataFrame(strategy.portfolio_value)
|
||||
portfolio_df.set_index('date', inplace=True)
|
||||
trades_df = pd.DataFrame(strategy.trades)
|
||||
|
||||
# Get benchmark data
|
||||
db_path = strategy.config['paths']['database_path']
|
||||
conn = sqlite3.connect(db_path)
|
||||
|
||||
qqq_data = pd.read_sql_query('''
|
||||
SELECT date, close as qqq_close
|
||||
FROM qqq
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
qqq_data['date'] = pd.to_datetime(qqq_data['date'])
|
||||
qqq_data.set_index('date', inplace=True)
|
||||
|
||||
spy_data = pd.read_sql_query('''
|
||||
SELECT date, spy_close
|
||||
FROM fear_greed_data
|
||||
ORDER BY date
|
||||
''', conn)
|
||||
spy_data['date'] = pd.to_datetime(spy_data['date'])
|
||||
spy_data.set_index('date', inplace=True)
|
||||
|
||||
conn.close()
|
||||
|
||||
# Merge and align data
|
||||
benchmark_data = pd.merge(qqq_data, spy_data, left_index=True, right_index=True, how='inner')
|
||||
common_dates = portfolio_df.index.intersection(benchmark_data.index)
|
||||
portfolio_df = portfolio_df.loc[common_dates]
|
||||
benchmark_data = benchmark_data.loc[common_dates]
|
||||
|
||||
# Normalize benchmarks
|
||||
start_value = strategy.initial_capital
|
||||
benchmark_data['qqq_value'] = start_value * (benchmark_data['qqq_close'] / benchmark_data['qqq_close'].iloc[0])
|
||||
benchmark_data['spy_value'] = start_value * (benchmark_data['spy_close'] / benchmark_data['spy_close'].iloc[0])
|
||||
|
||||
# Calculate metrics
|
||||
strategy_metrics = strategy.calculate_performance_metrics(portfolio_df['value'])
|
||||
qqq_metrics = strategy.calculate_performance_metrics(benchmark_data['qqq_value'])
|
||||
spy_metrics = strategy.calculate_performance_metrics(benchmark_data['spy_value'])
|
||||
|
||||
# Find max drawdown year
|
||||
def find_max_drawdown_year(returns):
|
||||
peak = returns.expanding().max()
|
||||
drawdown = (returns - peak) / peak
|
||||
max_dd_date = drawdown.idxmin()
|
||||
return max_dd_date.year
|
||||
|
||||
strategy_dd_year = find_max_drawdown_year(portfolio_df['value'])
|
||||
qqq_dd_year = find_max_drawdown_year(benchmark_data['qqq_value'])
|
||||
spy_dd_year = find_max_drawdown_year(benchmark_data['spy_value'])
|
||||
|
||||
# Create PDF with multiple pages
|
||||
pdf_file = os.path.join(reports_dir, f'enhanced_strategy_report_{timestamp}.pdf')
|
||||
|
||||
with PdfPages(pdf_file) as pdf:
|
||||
# Set global font to support text and better spacing
|
||||
plt.rcParams['font.size'] = 10
|
||||
plt.rcParams['axes.titlesize'] = 12
|
||||
plt.rcParams['axes.labelsize'] = 10
|
||||
plt.rcParams['xtick.labelsize'] = 8
|
||||
plt.rcParams['ytick.labelsize'] = 8
|
||||
plt.rcParams['legend.fontsize'] = 8
|
||||
plt.rcParams['figure.titlesize'] = 14
|
||||
|
||||
# Page 1: Performance Comparison (Full Width)
|
||||
fig1 = plt.figure(figsize=(8.5, 11))
|
||||
fig1.suptitle('Enhanced Emotional Damage Strategy Report', fontsize=16, fontweight='bold', y=0.96)
|
||||
|
||||
# 1. Total Return Curve (Full width)
|
||||
ax1 = plt.subplot(4, 1, 1)
|
||||
ax1.plot(portfolio_df.index, portfolio_df['value'] / 1000,
|
||||
label='Enhanced Strategy', linewidth=2, color='red')
|
||||
ax1.plot(benchmark_data.index, benchmark_data['qqq_value'] / 1000,
|
||||
label='QQQ', linewidth=2, color='blue')
|
||||
ax1.plot(benchmark_data.index, benchmark_data['spy_value'] / 1000,
|
||||
label='SPY', linewidth=2, color='green')
|
||||
ax1.set_title('Portfolio Performance Comparison', fontsize=14, fontweight='bold', pad=25)
|
||||
ax1.set_ylabel('Portfolio Value ($K)', fontsize=11)
|
||||
ax1.legend(fontsize=10, loc='upper left')
|
||||
ax1.grid(True, alpha=0.3)
|
||||
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
|
||||
for label in ax1.get_xticklabels():
|
||||
label.set_rotation(45)
|
||||
|
||||
# 2. Performance Metrics Table (Full width)
|
||||
ax2 = plt.subplot(4, 1, 2)
|
||||
ax2.axis('off')
|
||||
|
||||
metrics_data = [
|
||||
['Metric', 'Enhanced Strategy', 'QQQ', 'SPY'],
|
||||
['Total Return', f"{strategy_metrics['total_return']:.1f}%",
|
||||
f"{qqq_metrics['total_return']:.1f}%", f"{spy_metrics['total_return']:.1f}%"],
|
||||
['Annual Return', f"{strategy_metrics['annual_return']:.1f}%",
|
||||
f"{qqq_metrics['annual_return']:.1f}%", f"{spy_metrics['annual_return']:.1f}%"],
|
||||
['Max Drawdown', f"{strategy_metrics['max_drawdown']:.1f}%",
|
||||
f"{qqq_metrics['max_drawdown']:.1f}%", f"{spy_metrics['max_drawdown']:.1f}%"],
|
||||
['Max DD Year', str(strategy_dd_year), str(qqq_dd_year), str(spy_dd_year)],
|
||||
['Sharpe Ratio', f"{strategy_metrics['sharpe_ratio']:.2f}",
|
||||
f"{qqq_metrics['sharpe_ratio']:.2f}", f"{spy_metrics['sharpe_ratio']:.2f}"],
|
||||
['Total Trades', f"{len(strategy.trades)}", 'N/A', 'N/A']
|
||||
]
|
||||
|
||||
table = ax2.table(cellText=metrics_data, cellLoc='center', loc='center')
|
||||
table.auto_set_font_size(False)
|
||||
table.set_fontsize(10)
|
||||
table.scale(1.2, 2.0) # More height for readability
|
||||
|
||||
for i in range(len(metrics_data[0])):
|
||||
table[(0, i)].set_facecolor('#40466e')
|
||||
table[(0, i)].set_text_props(weight='bold', color='white')
|
||||
|
||||
ax2.set_title('Performance Metrics Comparison', fontsize=14, fontweight='bold', pad=25)
|
||||
|
||||
# 3. Strategy State Timeline (Full width)
|
||||
ax3 = plt.subplot(4, 1, 3)
|
||||
|
||||
# Create state mapping and colors
|
||||
state_colors = {
|
||||
'QQQ_HOLD': 'blue',
|
||||
'FEAR_TRANSITION': 'orange',
|
||||
'CASH_WAIT': 'gray',
|
||||
'GREED_TRANSITION': 'yellow',
|
||||
'VOLATILE_STOCKS': 'red',
|
||||
'QQQ_TRANSITION': 'green'
|
||||
}
|
||||
|
||||
# Plot portfolio value with state colors
|
||||
for state, color in state_colors.items():
|
||||
state_data = portfolio_df[portfolio_df['state'] == state]
|
||||
if not state_data.empty:
|
||||
ax3.scatter(state_data.index, state_data['value'] / 1000,
|
||||
c=color, s=2, alpha=0.8, label=state)
|
||||
|
||||
# Add stop-loss markers
|
||||
stop_loss_trades = trades_df[trades_df['action'] == 'STOP_LOSS']
|
||||
if not stop_loss_trades.empty:
|
||||
for _, trade in stop_loss_trades.iterrows():
|
||||
ax3.axvline(x=trade['date'], color='red', linestyle='--', alpha=0.8, linewidth=1)
|
||||
|
||||
ax3.set_title('Strategy State Timeline with Stop-Loss Events', fontsize=14, fontweight='bold', pad=25)
|
||||
ax3.set_ylabel('Total Assets ($K)', fontsize=11)
|
||||
ax3.legend(bbox_to_anchor=(1.02, 1), loc='upper left', fontsize=8)
|
||||
ax3.grid(True, alpha=0.3)
|
||||
ax3.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
|
||||
for label in ax3.get_xticklabels():
|
||||
label.set_rotation(45)
|
||||
|
||||
# 4. Annual Returns Comparison (Full width)
|
||||
ax4 = plt.subplot(4, 1, 4)
|
||||
years = list(strategy_metrics['annual_returns'].keys())
|
||||
enhanced_returns = list(strategy_metrics['annual_returns'].values())
|
||||
qqq_returns = [qqq_metrics['annual_returns'].get(year, 0) for year in years]
|
||||
spy_returns = [spy_metrics['annual_returns'].get(year, 0) for year in years]
|
||||
|
||||
x = np.arange(len(years))
|
||||
width = 0.25
|
||||
|
||||
ax4.bar(x - width, enhanced_returns, width, label='Enhanced Strategy', color='red', alpha=0.8)
|
||||
ax4.bar(x, qqq_returns, width, label='QQQ', color='blue', alpha=0.8)
|
||||
ax4.bar(x + width, spy_returns, width, label='SPY', color='green', alpha=0.8)
|
||||
|
||||
ax4.set_title('Annual Returns Comparison by Year', fontsize=14, fontweight='bold', pad=25)
|
||||
ax4.set_ylabel('Annual Return (%)', fontsize=11)
|
||||
ax4.set_xlabel('Year', fontsize=11)
|
||||
ax4.set_xticks(x)
|
||||
ax4.set_xticklabels(years)
|
||||
for label in ax4.get_xticklabels():
|
||||
label.set_rotation(90) # Vertical text for years
|
||||
ax4.legend(fontsize=10)
|
||||
ax4.grid(True, alpha=0.3, axis='y')
|
||||
|
||||
plt.subplots_adjust(left=0.1, right=0.85, top=0.90, bottom=0.08, hspace=0.6)
|
||||
pdf.savefig(fig1, bbox_inches='tight', dpi=150)
|
||||
plt.close()
|
||||
|
||||
# Page 2: Detailed Analysis
|
||||
fig2 = plt.figure(figsize=(8.5, 11))
|
||||
fig2.suptitle('Detailed Trading and Risk Analysis', fontsize=16, fontweight='bold', y=0.95)
|
||||
|
||||
# 5. Stop-Loss Analysis (Full width)
|
||||
ax5 = plt.subplot(3, 1, 1)
|
||||
|
||||
if not stop_loss_trades.empty:
|
||||
stop_loss_trades_copy = stop_loss_trades.copy()
|
||||
stop_loss_trades_copy['year'] = stop_loss_trades_copy['date'].dt.year
|
||||
stop_loss_by_year = stop_loss_trades_copy.groupby('year').size()
|
||||
|
||||
ax5.bar(stop_loss_by_year.index, stop_loss_by_year.values, color='red', alpha=0.8, width=0.6)
|
||||
ax5.set_title('Stop-Loss Triggers by Year', fontsize=14, fontweight='bold', pad=30)
|
||||
ax5.set_ylabel('Number of Stop-Loss Events', fontsize=11)
|
||||
ax5.set_xlabel('Year', fontsize=11)
|
||||
ax5.grid(True, alpha=0.3, axis='y')
|
||||
for label in ax5.get_xticklabels():
|
||||
label.set_rotation(45)
|
||||
else:
|
||||
ax5.text(0.5, 0.5, 'No Stop-Loss Events Triggered', ha='center', va='center',
|
||||
transform=ax5.transAxes, fontsize=14, fontweight='bold')
|
||||
ax5.set_title('Stop-Loss Analysis', fontsize=14, fontweight='bold', pad=30)
|
||||
|
||||
# 6. Trade Frequency Analysis (Full width)
|
||||
ax6 = plt.subplot(3, 1, 2)
|
||||
|
||||
trades_df_copy = trades_df.copy()
|
||||
trades_df_copy['year'] = trades_df_copy['date'].dt.year
|
||||
trade_frequency = trades_df_copy.groupby('year').size()
|
||||
|
||||
ax6.bar(trade_frequency.index, trade_frequency.values, color='purple', alpha=0.8, width=0.6)
|
||||
ax6.set_title('Trading Activity by Year', fontsize=14, fontweight='bold', pad=30)
|
||||
ax6.set_ylabel('Number of Trades', fontsize=11)
|
||||
ax6.set_xlabel('Year', fontsize=11)
|
||||
ax6.grid(True, alpha=0.3, axis='y')
|
||||
for label in ax6.get_xticklabels():
|
||||
label.set_rotation(45)
|
||||
|
||||
# 7. Fear & Greed Index with Trading Signals (Full width)
|
||||
ax7 = plt.subplot(3, 1, 3)
|
||||
|
||||
# Plot Fear & Greed Index
|
||||
fg_data = portfolio_df['fg_index'].dropna()
|
||||
ax7.plot(fg_data.index, fg_data.values, color='purple', alpha=0.8, linewidth=1.5)
|
||||
ax7.axhline(y=25, color='red', linestyle='--', alpha=0.7, linewidth=2, label='Fear Threshold (25)')
|
||||
ax7.axhline(y=75, color='green', linestyle='--', alpha=0.7, linewidth=2, label='Greed Threshold (75)')
|
||||
ax7.fill_between(fg_data.index, 0, 25, alpha=0.2, color='red', label='Fear Zone')
|
||||
ax7.fill_between(fg_data.index, 75, 100, alpha=0.2, color='green', label='Greed Zone')
|
||||
|
||||
# Add trade markers
|
||||
buy_trades = trades_df[trades_df['action'].str.contains('BUY')]
|
||||
sell_trades = trades_df[trades_df['action'].str.contains('SELL')]
|
||||
|
||||
if not buy_trades.empty:
|
||||
ax7.scatter(buy_trades['date'], buy_trades['fg_index'],
|
||||
color='darkgreen', s=15, alpha=0.8, marker='^', label='Buy Signals', zorder=5)
|
||||
if not sell_trades.empty:
|
||||
ax7.scatter(sell_trades['date'], sell_trades['fg_index'],
|
||||
color='darkred', s=15, alpha=0.8, marker='v', label='Sell Signals', zorder=5)
|
||||
|
||||
ax7.set_title('Fear & Greed Index with Trading Signals', fontsize=14, fontweight='bold', pad=30)
|
||||
ax7.set_ylabel('CNN Fear & Greed Index', fontsize=11)
|
||||
ax7.set_xlabel('Date', fontsize=11)
|
||||
ax7.set_ylim(0, 100)
|
||||
ax7.legend(bbox_to_anchor=(1.02, 1), loc='upper left', fontsize=8)
|
||||
ax7.grid(True, alpha=0.3)
|
||||
ax7.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
|
||||
for label in ax7.get_xticklabels():
|
||||
label.set_rotation(45)
|
||||
|
||||
plt.subplots_adjust(left=0.1, right=0.85, top=0.88, bottom=0.10, hspace=1.0)
|
||||
pdf.savefig(fig2, bbox_inches='tight', dpi=150)
|
||||
plt.close()
|
||||
|
||||
# Test PDF readability by checking file size and trying to read it
|
||||
try:
|
||||
file_size = os.path.getsize(pdf_file)
|
||||
if file_size < 50000: # Less than 50KB might indicate issues
|
||||
print(f"⚠️ Warning: PDF file size seems small ({file_size} bytes)")
|
||||
else:
|
||||
print(f"📈 PDF报告已保存: {pdf_file} (Size: {file_size:,} bytes)")
|
||||
|
||||
# Quick validation - ensure we can open the file
|
||||
with open(pdf_file, 'rb') as f:
|
||||
header = f.read(10)
|
||||
if not header.startswith(b'%PDF'):
|
||||
print(f"⚠️ Warning: Generated file may not be a valid PDF")
|
||||
else:
|
||||
print(f"✅ PDF file validation passed")
|
||||
|
||||
except Exception as e:
|
||||
print(f"⚠️ Error validating PDF: {e}")
|
||||
|
||||
print(f"📈 PDF报告已保存: {pdf_file}")
|
||||
|
||||
|
||||
def main():
|
||||
"""Main function to run strategy with config"""
|
||||
config_file = 'config.json'
|
||||
|
||||
if not os.path.exists(config_file):
|
||||
print(f"❌ 配置文件未找到: {config_file}")
|
||||
print("请确保config.json文件存在于当前目录")
|
||||
return
|
||||
|
||||
try:
|
||||
# Initialize and run strategy
|
||||
strategy = ConfigurableEmotionalDamageStrategy(config_file)
|
||||
strategy.run_backtest()
|
||||
|
||||
# Generate reports
|
||||
generate_reports(strategy)
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ 运行失败: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
38
silly/归墟界面.html
Normal file
38
silly/归墟界面.html
Normal file
@@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>归墟 - 【梦星献作】</title>
|
||||
<style>
|
||||
@import url('https://fonts.googleapis.com/css2?family=ZCOOL+KuaiLe&family=Ma+Shan+Zheng&display=swap');
|
||||
|
||||
body, html {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#startup-page {
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
color: white;
|
||||
font-family: 'ZCOOL+KuaiLe', 'Ma+Shan+Zheng', serif;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
transition: background-image 1s ease-in-out;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="startup-page">
|
||||
<h1>归墟 - 【梦星献作】</h1>
|
||||
<p>这是一个测试页面,显示HTML正在正常渲染。</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -12,7 +12,6 @@ chatgpt_model=gpt-4o-mini-2024-07-18
|
||||
claude_API=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
|
||||
alphavantage_API=H1TNEAN9JONTFCY6
|
||||
VaultWarden_ADMIN_TOKEN=U2WwYJYRprFMpqxZdTpj6afU8VfBoGU0JSLvHE30WkbNMpAijHccDU1GPEI0/Bff
|
||||
kimi_API=sk-xA6IE4AJTzXQh3MerrlAuriX3jhUDjRW4idMrIWfFteEahPe
|
||||
kimi_API_Base_URL=https://api.moonshot.ai/anthropic
|
||||
Gemeni_API=AIzaSyBZvm_cr5iHgPUpiDTZ7j_r4vYL8yW-tKw
|
||||
|
||||
@@ -44,5 +43,5 @@ claude_invite_link=https://discord.com/api/oauth2/authorize?client_id=1390887125
|
||||
#Set environment variables to use kimi:
|
||||
```
|
||||
export ANTHROPIC_BASE_URL=https://api.moonshot.ai/anthropic
|
||||
export ANTHROPIC_AUTH_TOKEN=xA6IE4AJTzXQh3MerrlAuriX3jhUDjRW4idMrIWfFteEahPe
|
||||
export ANTHROPIC_AUTH_TOKEN=sk-8IPjUk0pAv8AsLKaLgx0v1iuruEkJB9WQSLIA2u6Js27ZYgD
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user