File size: 11,904 Bytes
dff4dc8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
"""AlphaForge GOAT Strategy Guide - How to Be the Greatest of All Time

This is not just code. This is your quant trading BIBLE.
Follow these rules religiously and you will compound wealth.
Break them and you will blow up. Guaranteed.
"""

from typing import Dict, List
import json

# THE GOAT MINDSET - Read This Every Morning

GOAT_MINDSET = """
THE GOAT MINDSET

1. SURVIVAL FIRST, PROFIT SECOND
   Your #1 job is NOT to make money. It's to NOT lose money.
   If you survive, compounding does the rest.

2. PROCESS OVER OUTCOME
   A bad process with a good result is LUCK.
   A good process with a bad result is VARIANCE.
   Judge yourself by your PROCESS, not your PnL today.

3. EDGE COMPOUNDS, LUCK DOESN'T
   A 0.05 IC doesn't sound like much.
   But over 252 trading days, it compounds into massive alpha.
   This is why Two Sigma and Renaissance are worth $100B+.

4. DIVERSIFICATION IS THE ONLY FREE LUNCH
   Harry Markowitz won a Nobel Prize proving this.
   Don't fight Nobel Prize winners.

5. YOU ARE YOUR OWN WORST ENEMY
   Fear makes you sell the bottom.
   Greed makes you buy the top.
   AlphaForge removes emotion. Trust the system.
"""

# THE GOAT RULES - Violate at Your Own Peril

GOAT_RULES = {
    "risk_management": {
        "title": "RISK MANAGEMENT - THE ONLY THING THAT MATTERS",
        "rules": [
            {
                "rule": "NEVER risk more than 2% of capital on a single position",
                "why": "A 2% risk means you can be wrong 50 times in a row and still have 36% left.",
                "action": "Set max_weight = 0.20 and stop-loss at 10%. 0.20 * 0.10 = 2% max loss."
            },
            {
                "rule": "NEVER risk more than 6% of capital in a single month",
                "why": "Three 2% losses in a month = 6%. That's your circuit breaker.",
                "action": "Track monthly PnL. If down 6%, reduce all positions by 50%."
            },
            {
                "rule": "ALWAYS know your maximum drawdown BEFORE you trade",
                "why": "If you can't handle a 20% drawdown, don't use a strategy with 25% historical max DD.",
                "action": "Set personal max DD threshold. AlphaForge default: 15%."
            },
            {
                "rule": "NEVER add to a losing position",
                "why": "Averaging down is how amateurs turn small losses into catastrophes.",
                "action": "Use fixed position sizes. Never increase size because you're down."
            },
            {
                "rule": "ALWAYS use the Kelly Criterion (fractionally)",
                "why": "Kelly tells you optimal bet size given your edge. Use HALF Kelly or QUARTER Kelly.",
                "action": "Kelly % = (Win Rate * Avg Win - Loss Rate * Avg Loss) / Avg Win. Use 25-50% of that."
            }
        ]
    },
    
    "position_sizing": {
        "title": "POSITION SIZING - SIZE IS MORE IMPORTANT THAN TIMING",
        "rules": [
            {
                "rule": "Size by VOLATILITY, not by conviction",
                "why": "A 'sure thing' in a volatile stock can hurt you more than a 'maybe' in a calm stock.",
                "action": "Position Size = (Target Risk %) / (Stock Volatility * Stop Loss %)."
            },
            {
                "rule": "INCREASE size when Sharpe is high, DECREASE when Sharpe is low",
                "why": "Your edge fluctuates. When metrics are hot, press the bet. When cold, shrink.",
                "action": "Base position = Base * (Current Sharpe / Target Sharpe). Target Sharpe = 1.5."
            },
            {
                "rule": "NEVER go all-in on a single signal",
                "why": "Even the best signals have drawdowns. Combine multiple uncorrelated signals.",
                "action": "Minimum 3 uncorrelated alpha sources: Price + Sentiment + Options Flow."
            },
            {
                "rule": "USE volatility targeting for the TOTAL portfolio",
                "why": "If target vol is 10% but current vol is 20%, you are 2x too risky. Scale down 50%.",
                "action": "Portfolio Leverage = Target Vol / Current Portfolio Vol. Adjust daily."
            }
        ]
    },
    
    "execution": {
        "title": "EXECUTION - THE DIFFERENCE BETWEEN THEORY AND REALITY",
        "rules": [
            {
                "rule": "ALWAYS account for transaction costs",
                "why": "At 150% annual turnover and 3bps cost, you lose 0.09% to friction. At 10bps, 0.30%.",
                "action": "Use low-cost brokers. Avoid frequent rebalancing. Batch orders."
            },
            {
                "rule": "NEVER trade during first/last 15 minutes unless you have to",
                "why": "Open and close have highest volatility and widest spreads.",
                "action": "Place orders between 10:30 AM - 3:30 PM EST. Use VWAP for large orders."
            },
            {
                "rule": "ALWAYS use limit orders, NEVER market orders",
                "why": "Market orders guarantee execution at unknown prices. Limit orders control price. Saves 5-10bps.",
                "action": "Set limit at mid-price for liquid stocks. 5bps inside spread for illiquid."
            },
            {
                "rule": "NEVER chase a move",
                "why": "If a stock already moved 2% in 5 minutes, you missed it. Chasing = buying high.",
                "action": "Set alerts at your entry price. If it never hits, move on. 10,000+ stocks exist."
            }
        ]
    },
    
    "psychology": {
        "title": "PSYCHOLOGY - THE INVISIBLE KILLER",
        "rules": [
            {
                "rule": "NEVER check PnL more than once per day",
                "why": "Intraday volatility is noise. Checking every minute creates anxiety and impulsive decisions.",
                "action": "Set a daily alarm for 4 PM. Check then. Close the app. Live your life."
            },
            {
                "rule": "NEVER trade when emotional",
                "why": "Fear, greed, anger, euphoria - all destroy edge. Your brain can't make rational decisions under strong emotion.",
                "action": "After a big loss: mandatory 24-hour cooling period. No exceptions."
            },
            {
                "rule": "ALWAYS keep a trading journal",
                "why": "You think you know why you made each trade. You don't. Writing forces clarity.",
                "action": "Log: Date, Signal, Size, Rationale, Outcome, Emotion Level (1-10). Review monthly."
            },
            {
                "rule": "NEVER compare yourself to others",
                "why": "Social media shows winners, not losers. Everyone has drawdowns.",
                "action": "Your only benchmark is your own track record. Beat your previous self."
            },
            {
                "rule": "ALWAYS sleep well at night",
                "why": "If you can't sleep because of positions, your risk is too high. Your body is telling you.",
                "action": "If you lose sleep, close 50% of the position tomorrow. Health > money."
            }
        ]
    },
    
    "strategy": {
        "title": "STRATEGY - THE SCIENCE OF EDGE",
        "rules": [
            {
                "rule": "ALWAYS have at least 3 uncorrelated alpha sources",
                "why": "Price momentum and mean reversion can be negatively correlated. When one fails, the other works.",
                "action": "AlphaForge uses: Price Technicals + Sentiment + Options Flow."
            },
            {
                "rule": "NEVER overfit to historical data",
                "why": "A strategy that perfectly fits the past will fail in the future. Markets change.",
                "action": "Use walk-forward testing. Never optimize on the test set."
            },
            {
                "rule": "ALWAYS monitor for regime changes",
                "why": "Strategies that work in bull markets often fail in bear markets.",
                "action": "Reduce beta in bear markets, increase in bull. AlphaForge detects regimes automatically."
            },
            {
                "rule": "NEVER ignore the base rate",
                "why": "If SPY goes up 55% of days, any 'long every day' strategy wins 55%. Report ALPHA, not return.",
                "action": "If alpha < 2%, you are a closet indexer. Just buy SPY."
            },
            {
                "rule": "ALWAYS diversify across time horizons",
                "why": "Short-term (1-5 days) and long-term (1-3 months) signals have different drawdown periods.",
                "action": "Run AlphaForge on 5-day, 21-day, and 63-day horizons. Blend 40/30/30."
            }
        ]
    }
}

# GOAT TIER DEFINITIONS
GOAT_TIERS = {
    "NEEDS_WORK": {
        "range": (0, 40),
        "emoji": "🔧",
        "description": "You're learning. Don't trade real money yet.",
        "advice": [
            "Paper trade for 6 months minimum",
            "Focus on risk management above all else",
            "Read 'A Random Walk Down Wall Street' by Malkiel",
            "Study the backtest metrics until you dream about Sharpe ratios"
        ]
    },
    "DEVELOPING": {
        "range": (40, 55),
        "emoji": "📈",
        "description": "You have potential. Keep grinding.",
        "advice": [
            "Trade with 10% of your intended capital",
            "Focus on one alpha source until you master it",
            "Journal every trade religiously",
            "Review your metrics weekly, not daily"
        ]
    },
    "SOLID_PRO": {
        "range": (55, 70),
        "emoji": "💪",
        "description": "You're making real money. Stay disciplined.",
        "advice": [
            "Scale to 50% of intended capital",
            "Add a second uncorrelated alpha source",
            "Implement dynamic position sizing based on Sharpe",
            "Start tracking tax efficiency"
        ]
    },
    "ELITE_QUANT": {
        "range": (70, 85),
        "emoji": "⭐",
        "description": "You're in the top 5% of active managers.",
        "advice": [
            "Scale to full capital allocation",
            "Consider managing money for friends/family",
            "Add options hedging for tail risk protection",
            "Document your process for institutional capital"
        ]
    },
    "LEGENDARY_GOAT": {
        "range": (85, 100),
        "emoji": "🐐",
        "description": "You're competing with Renaissance and Two Sigma.",
        "advice": [
            "Consider launching a hedge fund",
            "Hire a risk manager",
            "Diversify into alternative data sources",
            "Protect your IP aggressively - this edge won't last forever"
        ]
    }
}


def print_goat_mindset():
    print(GOAT_MINDSET)


def print_goat_rules():
    for section, content in GOAT_RULES.items():
        print(f"\n{'='*80}")
        print(f"  {content['title']}")
        print(f"{'='*80}\n")
        for i, rule in enumerate(content['rules'], 1):
            print(f"  {i}. {rule['rule']}")
            print(f"     WHY: {rule['why']}")
            print(f"     ACTION: {rule['action']}")
            print()


def get_tier_advice(score: float) -> dict:
    for tier_name, tier_info in GOAT_TIERS.items():
        low, high = tier_info['range']
        if low <= score < high:
            return {
                'tier': tier_name,
                'emoji': tier_info['emoji'],
                'description': tier_info['description'],
                'advice': tier_info['advice']
            }
    return GOAT_TIERS['LEGENDARY_GOAT']


if __name__ == '__main__':
    print_goat_mindset()
    print_goat_rules()
    for tier_name, tier_info in GOAT_TIERS.items():
        print(f"{tier_info['emoji']} {tier_name}: {tier_info['description']}")