@farazirfan/costar-server-executor 1.7.24 → 1.7.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +29 -0
- package/dist/web-server.js.map +1 -1
- package/package.json +1 -1
- package/public/index.html +98 -8
- package/skills/coinbase/LEARNING.md +9 -85
- package/skills/coinbase/SKILL.md +53 -76
- package/skills/trading/LEARNING.md +15 -127
- package/skills/trading/SKILL.md +136 -178
package/dist/web-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-server.d.ts","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAK9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUzD,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKtF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9F,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"web-server.d.ts","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAK9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUzD,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKtF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9F,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CA0oBxE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,aAAa,EACnB,IAAI,GAAE,MAAa,GAClB;IAAE,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAA;CAAE,CASjF"}
|
package/dist/web-server.js
CHANGED
|
@@ -397,6 +397,34 @@ export function createWebServer(deps) {
|
|
|
397
397
|
}
|
|
398
398
|
const eligible = deps.skillsManager.getEligibleSkills();
|
|
399
399
|
const isEligible = eligible.some((e) => e.name === skill.name);
|
|
400
|
+
// List all files in the skill directory
|
|
401
|
+
const files = [];
|
|
402
|
+
try {
|
|
403
|
+
if (fs.existsSync(skill.baseDir)) {
|
|
404
|
+
const entries = fs.readdirSync(skill.baseDir, { withFileTypes: true });
|
|
405
|
+
for (const entry of entries) {
|
|
406
|
+
if (entry.isFile()) {
|
|
407
|
+
const filePath = path.join(skill.baseDir, entry.name);
|
|
408
|
+
try {
|
|
409
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
410
|
+
const stat = fs.statSync(filePath);
|
|
411
|
+
files.push({
|
|
412
|
+
name: entry.name,
|
|
413
|
+
path: filePath,
|
|
414
|
+
content,
|
|
415
|
+
size: stat.size,
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
catch (err) {
|
|
419
|
+
console.warn(`[WEB] Failed to read skill file ${filePath}:`, err);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
catch (err) {
|
|
426
|
+
console.error(`[WEB] Failed to list skill directory ${skill.baseDir}:`, err);
|
|
427
|
+
}
|
|
400
428
|
res.json({
|
|
401
429
|
name: skill.name,
|
|
402
430
|
description: skill.description,
|
|
@@ -408,6 +436,7 @@ export function createWebServer(deps) {
|
|
|
408
436
|
homepage: skill.frontmatter.homepage,
|
|
409
437
|
requires: skill.metadata?.requires || null,
|
|
410
438
|
content: skill.content,
|
|
439
|
+
files,
|
|
411
440
|
});
|
|
412
441
|
});
|
|
413
442
|
// ─── Workspace Files ───────────────────────────────────────────
|
package/dist/web-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-server.js","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web-server.js","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/public/index.html
CHANGED
|
@@ -847,6 +847,46 @@
|
|
|
847
847
|
margin-top: 20px;
|
|
848
848
|
}
|
|
849
849
|
|
|
850
|
+
/* ─── File Tabs ────────────────────────────────── */
|
|
851
|
+
.file-tabs {
|
|
852
|
+
display: flex;
|
|
853
|
+
gap: 4px;
|
|
854
|
+
border-bottom: 1px solid var(--border);
|
|
855
|
+
margin-bottom: 12px;
|
|
856
|
+
overflow-x: auto;
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
.file-tab {
|
|
860
|
+
padding: 8px 14px;
|
|
861
|
+
font-size: 12px;
|
|
862
|
+
font-family: var(--mono);
|
|
863
|
+
color: var(--text-secondary);
|
|
864
|
+
background: transparent;
|
|
865
|
+
border: none;
|
|
866
|
+
border-bottom: 2px solid transparent;
|
|
867
|
+
cursor: pointer;
|
|
868
|
+
transition: all .15s;
|
|
869
|
+
white-space: nowrap;
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
.file-tab:hover {
|
|
873
|
+
color: var(--text-primary);
|
|
874
|
+
background: var(--bg-hover);
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
.file-tab.active {
|
|
878
|
+
color: var(--accent);
|
|
879
|
+
border-bottom-color: var(--accent);
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
.file-content {
|
|
883
|
+
display: none;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
.file-content.active {
|
|
887
|
+
display: block;
|
|
888
|
+
}
|
|
889
|
+
|
|
850
890
|
/* ─── Scrollbar ─────────────────────────────────── */
|
|
851
891
|
::-webkit-scrollbar { width: 6px; height: 6px; }
|
|
852
892
|
::-webkit-scrollbar-track { background: transparent; }
|
|
@@ -1245,7 +1285,7 @@
|
|
|
1245
1285
|
|
|
1246
1286
|
<!-- Skill Detail Modal -->
|
|
1247
1287
|
<div class="modal-overlay" id="skill-modal">
|
|
1248
|
-
<div class="modal" style="max-width:
|
|
1288
|
+
<div class="modal" style="max-width:800px;">
|
|
1249
1289
|
<h3 id="skill-modal-title">Skill Details</h3>
|
|
1250
1290
|
<div id="skill-modal-content"></div>
|
|
1251
1291
|
<div class="modal-actions">
|
|
@@ -2002,18 +2042,54 @@
|
|
|
2002
2042
|
<div class="config-list" style="margin-bottom:16px;">
|
|
2003
2043
|
${row('Source', skill.source)}
|
|
2004
2044
|
${row('Eligible', skill.eligible ? 'Yes' : 'No')}
|
|
2005
|
-
${row('
|
|
2045
|
+
${row('Base Directory', skill.baseDir)}
|
|
2006
2046
|
${skill.homepage ? row('Homepage', skill.homepage) : ''}
|
|
2007
2047
|
</div>
|
|
2008
2048
|
`;
|
|
2009
2049
|
|
|
2010
|
-
if
|
|
2050
|
+
// Show file tabs if there are multiple files
|
|
2051
|
+
if (skill.files && skill.files.length > 0) {
|
|
2011
2052
|
html += `<div style="margin-top:16px;">
|
|
2012
|
-
<label>
|
|
2013
|
-
<div
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2053
|
+
<label style="margin-bottom:8px;">Files</label>
|
|
2054
|
+
<div class="file-tabs" id="skill-file-tabs">`;
|
|
2055
|
+
|
|
2056
|
+
// Create tabs for each file
|
|
2057
|
+
skill.files.forEach((file, idx) => {
|
|
2058
|
+
const isActive = idx === 0 ? 'active' : '';
|
|
2059
|
+
html += `<button class="file-tab ${isActive}" onclick="switchSkillFileTab(${idx})">${esc(file.name)}</button>`;
|
|
2060
|
+
});
|
|
2061
|
+
|
|
2062
|
+
html += `</div>`;
|
|
2063
|
+
|
|
2064
|
+
// Create content for each file
|
|
2065
|
+
html += `<div id="skill-file-contents">`;
|
|
2066
|
+
|
|
2067
|
+
skill.files.forEach((file, idx) => {
|
|
2068
|
+
const isActive = idx === 0 ? 'active' : '';
|
|
2069
|
+
const sizeKB = (file.size / 1024).toFixed(2);
|
|
2070
|
+
html += `
|
|
2071
|
+
<div class="file-content ${isActive}" id="skill-file-${idx}">
|
|
2072
|
+
<div style="margin-bottom:8px;font-size:11px;color:var(--text-muted);font-family:var(--mono);">
|
|
2073
|
+
${esc(file.path)} • ${sizeKB} KB
|
|
2074
|
+
</div>
|
|
2075
|
+
<div style="background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);padding:12px;max-height:400px;overflow-y:auto;">
|
|
2076
|
+
<pre style="font-family:var(--mono);font-size:12px;white-space:pre-wrap;color:var(--text-secondary);margin:0;">${esc(file.content)}</pre>
|
|
2077
|
+
</div>
|
|
2078
|
+
</div>
|
|
2079
|
+
`;
|
|
2080
|
+
});
|
|
2081
|
+
|
|
2082
|
+
html += `</div></div>`;
|
|
2083
|
+
} else {
|
|
2084
|
+
// Fallback to showing just the main content if no files array
|
|
2085
|
+
if (skill.content) {
|
|
2086
|
+
html += `<div style="margin-top:16px;">
|
|
2087
|
+
<label>Content</label>
|
|
2088
|
+
<div style="background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);padding:12px;max-height:300px;overflow-y:auto;">
|
|
2089
|
+
<pre style="font-family:var(--mono);font-size:12px;white-space:pre-wrap;color:var(--text-secondary);">${esc(skill.content)}</pre>
|
|
2090
|
+
</div>
|
|
2091
|
+
</div>`;
|
|
2092
|
+
}
|
|
2017
2093
|
}
|
|
2018
2094
|
|
|
2019
2095
|
document.getElementById('skill-modal-content').innerHTML = html;
|
|
@@ -2023,6 +2099,20 @@
|
|
|
2023
2099
|
}
|
|
2024
2100
|
}
|
|
2025
2101
|
|
|
2102
|
+
function switchSkillFileTab(index) {
|
|
2103
|
+
// Update tab active states
|
|
2104
|
+
const tabs = document.querySelectorAll('.file-tab');
|
|
2105
|
+
tabs.forEach((tab, idx) => {
|
|
2106
|
+
tab.classList.toggle('active', idx === index);
|
|
2107
|
+
});
|
|
2108
|
+
|
|
2109
|
+
// Update content active states
|
|
2110
|
+
const contents = document.querySelectorAll('.file-content');
|
|
2111
|
+
contents.forEach((content, idx) => {
|
|
2112
|
+
content.classList.toggle('active', idx === index);
|
|
2113
|
+
});
|
|
2114
|
+
}
|
|
2115
|
+
|
|
2026
2116
|
function closeSkillModal() {
|
|
2027
2117
|
document.getElementById('skill-modal').classList.remove('open');
|
|
2028
2118
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
# Coinbase Trading
|
|
1
|
+
# Coinbase Trading Log
|
|
2
2
|
|
|
3
|
-
> **Read this before every Coinbase operation.**
|
|
3
|
+
> **Read this before every Coinbase operation.** Write freely after every trade.
|
|
4
|
+
> This is YOUR space — write whatever you think will make the next trade better.
|
|
4
5
|
> Never delete entries — mark outdated ones as `[OUTDATED]` with date and reason.
|
|
5
6
|
|
|
6
7
|
---
|
|
@@ -13,80 +14,13 @@
|
|
|
13
14
|
|
|
14
15
|
---
|
|
15
16
|
|
|
16
|
-
##
|
|
17
|
+
## Learnings
|
|
17
18
|
|
|
18
|
-
>
|
|
19
|
+
> Write freely here. Patterns you noticed, strategies that worked, execution insights,
|
|
20
|
+
> things to do differently, market observations, risk lessons, anything that will make
|
|
21
|
+
> the next trade better. No rigid format — just honest reflection.
|
|
19
22
|
|
|
20
|
-
|
|
21
|
-
2. HTTP 200 doesn't mean success — always check `order.success`
|
|
22
|
-
3. Duplicate `client_order_id` returns existing order, not error
|
|
23
|
-
|
|
24
|
-
*(Add more as you discover them)*
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Fee Insights
|
|
29
|
-
|
|
30
|
-
> Track fee rates and patterns to optimize execution.
|
|
31
|
-
|
|
32
|
-
- **Current fee tier:** *Unknown — check with `getTransactionSummary()`*
|
|
33
|
-
- **Maker rate:** *TBD*
|
|
34
|
-
- **Taker rate:** *TBD*
|
|
35
|
-
|
|
36
|
-
<!--
|
|
37
|
-
- [DATE] Fee observation. Example: post_only limit orders save 0.2% in fees vs market orders
|
|
38
|
-
-->
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## Order Patterns That Work
|
|
43
|
-
|
|
44
|
-
> Reusable patterns you've validated with real trades.
|
|
45
|
-
|
|
46
|
-
<!--
|
|
47
|
-
- [DATE] PATTERN: description. PAIR: which pair. RESULT: outcome.
|
|
48
|
-
Example:
|
|
49
|
-
- [2026-02-14] PATTERN: Limit buy 0.5% below current price with GTD 1-hour expiry. PAIR: BTC-USD. RESULT: Filled 70% of the time, saved avg $15 in slippage vs market orders.
|
|
50
|
-
-->
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Order Patterns That Failed
|
|
55
|
-
|
|
56
|
-
> Equally important — what NOT to do.
|
|
57
|
-
|
|
58
|
-
<!--
|
|
59
|
-
- [DATE] PATTERN: description. PAIR: which pair. PROBLEM: what went wrong.
|
|
60
|
-
Example:
|
|
61
|
-
- [2026-02-14] PATTERN: Market sell large SOL position ($5000). PAIR: SOL-USD. PROBLEM: 1.2% slippage due to thin order book. Should have used limit or split into smaller orders.
|
|
62
|
-
-->
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## Product-Specific Notes
|
|
67
|
-
|
|
68
|
-
> Observations about specific trading pairs.
|
|
69
|
-
|
|
70
|
-
<!--
|
|
71
|
-
- [DATE] PRODUCT: observation
|
|
72
|
-
Example:
|
|
73
|
-
- [2026-02-14] BTC-USD: min order $1, base_increment 0.00000001, quote_increment 0.01
|
|
74
|
-
- [2026-02-14] SOL-USD: wider spreads after hours, better to trade during US market hours
|
|
75
|
-
-->
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## Scripts I've Created
|
|
80
|
-
|
|
81
|
-
| Script | Purpose | Works Well? | Last Modified |
|
|
82
|
-
|--------|---------|-------------|---------------|
|
|
83
|
-
| *(None yet)* | | | |
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Mistakes to Never Repeat
|
|
88
|
-
|
|
89
|
-
1. *(Will accumulate from real trading)*
|
|
23
|
+
*(Will grow with every trade. Write what matters most to future you.)*
|
|
90
24
|
|
|
91
25
|
---
|
|
92
26
|
|
|
@@ -96,7 +30,6 @@ Example:
|
|
|
96
30
|
- **Total Trades:** 0
|
|
97
31
|
- **Total Fees Paid:** $0
|
|
98
32
|
- **Net P&L:** $0
|
|
99
|
-
- **Avg Slippage:** N/A
|
|
100
33
|
|
|
101
34
|
### Current Week
|
|
102
35
|
- **Trades:** 0
|
|
@@ -105,13 +38,4 @@ Example:
|
|
|
105
38
|
|
|
106
39
|
---
|
|
107
40
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
1. What are the actual minimum order sizes for each product?
|
|
111
|
-
2. How much slippage to expect on market orders for different pair sizes?
|
|
112
|
-
3. What's the optimal order type for different trade sizes?
|
|
113
|
-
4. When does `post_only` get rejected vs filled?
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
> Every entry makes your next trade better. Record everything.
|
|
41
|
+
> Every entry makes your next trade better. Record everything that matters.
|
package/skills/coinbase/SKILL.md
CHANGED
|
@@ -9,31 +9,20 @@ metadata:
|
|
|
9
9
|
|
|
10
10
|
# Coinbase Trading Executor
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Execute real trades on Coinbase via the Advanced Trade API. This is real money — be precise and never skip risk checks.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
## Authentication
|
|
19
|
-
|
|
20
|
-
The user's Coinbase API credentials are available as environment variables:
|
|
21
|
-
- `COINBASE_API_KEY` — format: `organizations/{org_id}/apiKeys/{key_id}`
|
|
22
|
-
- `COINBASE_API_SECRET` — EC private key in PEM format
|
|
23
|
-
|
|
24
|
-
These use **CDP (Coinbase Developer Platform) keys** with **ES256 JWT** authentication. The `coinbase-api` npm package handles JWT generation internally.
|
|
14
|
+
Coinbase is the execution layer. The Trading skill is the brain. Before ANY action, read all three:
|
|
15
|
+
1. [../trading/SKILL.md](../trading/SKILL.md) — risk rules, position sizing, market regime
|
|
16
|
+
2. [../trading/LEARNING.md](../trading/LEARNING.md) — what's working now, past lessons
|
|
17
|
+
3. [LEARNING.md](LEARNING.md) — Coinbase-specific execution learnings
|
|
25
18
|
|
|
26
19
|
## Setup
|
|
27
20
|
|
|
28
|
-
Before first use, ensure the SDK is installed in the workspace:
|
|
29
|
-
|
|
30
21
|
```bash
|
|
31
22
|
npm list coinbase-api 2>/dev/null || npm install coinbase-api
|
|
32
23
|
```
|
|
33
24
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
All Coinbase operations use TypeScript/JavaScript scripts via `execute_code` or shell commands. Use the `coinbase-api` package:
|
|
25
|
+
Auth uses CDP keys with ES256 JWT via env vars `COINBASE_API_KEY` and `COINBASE_API_SECRET`. The `coinbase-api` package handles JWT internally.
|
|
37
26
|
|
|
38
27
|
```typescript
|
|
39
28
|
import { CBAdvancedTradeClient } from 'coinbase-api';
|
|
@@ -44,19 +33,20 @@ const client = new CBAdvancedTradeClient({
|
|
|
44
33
|
});
|
|
45
34
|
```
|
|
46
35
|
|
|
47
|
-
##
|
|
36
|
+
## Workflow
|
|
48
37
|
|
|
49
38
|
```
|
|
50
|
-
- [ ]
|
|
51
|
-
- [ ]
|
|
52
|
-
- [ ]
|
|
53
|
-
- [ ]
|
|
54
|
-
- [ ]
|
|
55
|
-
- [ ]
|
|
56
|
-
- [ ]
|
|
39
|
+
- [ ] 1. Read Trading SKILL.md + both LEARNING.md files
|
|
40
|
+
- [ ] 2. Validate against risk rules
|
|
41
|
+
- [ ] 3. Check balances
|
|
42
|
+
- [ ] 4. Get price and market data
|
|
43
|
+
- [ ] 5. Preview order
|
|
44
|
+
- [ ] 6. Execute order
|
|
45
|
+
- [ ] 7. Verify fill
|
|
46
|
+
- [ ] 8. Evolve
|
|
57
47
|
```
|
|
58
48
|
|
|
59
|
-
###
|
|
49
|
+
### Check Balances
|
|
60
50
|
|
|
61
51
|
```typescript
|
|
62
52
|
const accounts = await client.getAccounts();
|
|
@@ -67,17 +57,14 @@ for (const acct of accounts.accounts) {
|
|
|
67
57
|
}
|
|
68
58
|
```
|
|
69
59
|
|
|
70
|
-
###
|
|
60
|
+
### Get Price Data
|
|
71
61
|
|
|
72
62
|
```typescript
|
|
73
|
-
// Current price
|
|
74
63
|
const product = await client.getProduct({ product_id: 'BTC-USD' });
|
|
75
64
|
console.log(`Price: $${product.price}, 24h change: ${product.price_percentage_change_24h}%`);
|
|
76
65
|
|
|
77
|
-
// Best bid/ask spread
|
|
78
66
|
const spread = await client.getBestBidAsk({ product_ids: ['BTC-USD'] });
|
|
79
67
|
|
|
80
|
-
// OHLCV candles (last 24h, 1-hour granularity)
|
|
81
68
|
const candles = await client.getProductCandles({
|
|
82
69
|
product_id: 'BTC-USD',
|
|
83
70
|
start: String(Math.floor(Date.now() / 1000) - 86400),
|
|
@@ -86,9 +73,9 @@ const candles = await client.getProductCandles({
|
|
|
86
73
|
});
|
|
87
74
|
```
|
|
88
75
|
|
|
89
|
-
###
|
|
76
|
+
### Preview Order
|
|
90
77
|
|
|
91
|
-
|
|
78
|
+
Always preview before executing:
|
|
92
79
|
|
|
93
80
|
```typescript
|
|
94
81
|
const preview = await client.previewOrder({
|
|
@@ -98,38 +85,37 @@ const preview = await client.previewOrder({
|
|
|
98
85
|
market_market_ioc: { quote_size: '100.00' },
|
|
99
86
|
},
|
|
100
87
|
});
|
|
101
|
-
// Shows: quote_size, base_size, best_bid, best_ask, total_fees, slippage
|
|
102
88
|
```
|
|
103
89
|
|
|
104
|
-
###
|
|
90
|
+
### Place Orders
|
|
105
91
|
|
|
106
|
-
See [references/order-types.md](references/order-types.md) for all
|
|
92
|
+
See [references/order-types.md](references/order-types.md) for all types.
|
|
107
93
|
|
|
108
|
-
|
|
94
|
+
Market buy (spend $100):
|
|
109
95
|
```typescript
|
|
110
96
|
const order = await client.submitOrder({
|
|
111
97
|
client_order_id: crypto.randomUUID(),
|
|
112
98
|
product_id: 'BTC-USD',
|
|
113
99
|
side: 'BUY',
|
|
114
100
|
order_configuration: {
|
|
115
|
-
market_market_ioc: { quote_size: '100.00' },
|
|
101
|
+
market_market_ioc: { quote_size: '100.00' },
|
|
116
102
|
},
|
|
117
103
|
});
|
|
118
104
|
```
|
|
119
105
|
|
|
120
|
-
|
|
106
|
+
Market sell (sell 0.001 BTC):
|
|
121
107
|
```typescript
|
|
122
108
|
const order = await client.submitOrder({
|
|
123
109
|
client_order_id: crypto.randomUUID(),
|
|
124
110
|
product_id: 'BTC-USD',
|
|
125
111
|
side: 'SELL',
|
|
126
112
|
order_configuration: {
|
|
127
|
-
market_market_ioc: { base_size: '0.001' },
|
|
113
|
+
market_market_ioc: { base_size: '0.001' },
|
|
128
114
|
},
|
|
129
115
|
});
|
|
130
116
|
```
|
|
131
117
|
|
|
132
|
-
|
|
118
|
+
Limit buy (GTC):
|
|
133
119
|
```typescript
|
|
134
120
|
const order = await client.submitOrder({
|
|
135
121
|
client_order_id: crypto.randomUUID(),
|
|
@@ -145,73 +131,64 @@ const order = await client.submitOrder({
|
|
|
145
131
|
});
|
|
146
132
|
```
|
|
147
133
|
|
|
148
|
-
###
|
|
134
|
+
### Verify Order
|
|
135
|
+
|
|
136
|
+
Coinbase returns HTTP 200 even on failure. Always check `order.success`:
|
|
149
137
|
|
|
150
138
|
```typescript
|
|
151
|
-
// Check response immediately
|
|
152
139
|
if (order.success) {
|
|
153
|
-
const
|
|
154
|
-
// Get fill details
|
|
155
|
-
const status = await client.getOrder({ order_id: orderId });
|
|
140
|
+
const status = await client.getOrder({ order_id: order.success_response.order_id });
|
|
156
141
|
console.log(`Status: ${status.status}, Filled: ${status.filled_size} @ ${status.average_filled_price}`);
|
|
157
142
|
} else {
|
|
158
143
|
console.error(`Order failed: ${order.error_response.message}`);
|
|
159
144
|
}
|
|
160
145
|
```
|
|
161
146
|
|
|
162
|
-
|
|
147
|
+
### Post-Execution Evolution
|
|
148
|
+
|
|
149
|
+
After every trade, ask: "What would make the next execution better?" Then do it.
|
|
163
150
|
|
|
164
|
-
|
|
151
|
+
- Update both [LEARNING.md](LEARNING.md) and [../trading/LEARNING.md](../trading/LEARNING.md)
|
|
152
|
+
- If you had slippage, research better order types or timing. Update references
|
|
153
|
+
- If a script could do it better, build one in `scripts/`
|
|
154
|
+
- Feed execution insights back to Trading skill references
|
|
155
|
+
- Use `web_search` and `browser` to research better execution strategies, GitHub tools, market microstructure
|
|
156
|
+
- Use `cron` to schedule portfolio snapshots, price alerts, or execution quality tracking
|
|
165
157
|
|
|
166
|
-
|
|
158
|
+
No limits. If something makes execution better, do it.
|
|
167
159
|
|
|
168
160
|
## Order Management
|
|
169
161
|
|
|
170
162
|
```typescript
|
|
171
|
-
// List open orders
|
|
172
163
|
const orders = await client.getOrders({ order_status: ['OPEN', 'PENDING'] });
|
|
173
|
-
|
|
174
|
-
// Cancel specific orders
|
|
175
164
|
const cancel = await client.cancelOrders({ order_ids: ['order-id-here'] });
|
|
176
|
-
|
|
177
|
-
// Get fills (trade executions)
|
|
178
165
|
const fills = await client.getFills({ order_id: 'order-id-here' });
|
|
179
166
|
```
|
|
180
167
|
|
|
181
|
-
## Portfolio
|
|
168
|
+
## Portfolio and Fees
|
|
182
169
|
|
|
183
170
|
```typescript
|
|
184
|
-
// Portfolio breakdown
|
|
185
171
|
const portfolios = await client.getPortfolios({});
|
|
186
172
|
const breakdown = await client.getPortfolioBreakdown({ portfolio_id: portfolios.portfolios[0].uuid });
|
|
187
|
-
|
|
188
|
-
// Fee tier info
|
|
189
173
|
const fees = await client.getTransactionSummary({});
|
|
190
|
-
// Shows: fee_tier, total_volume, maker_fee_rate, taker_fee_rate
|
|
191
174
|
```
|
|
192
175
|
|
|
193
176
|
## Critical Rules
|
|
194
177
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
8. **Never place orders in a loop without delays** — respect rate limits
|
|
203
|
-
9. **Log everything in LEARNING.md** — every trade, every error, every quirk
|
|
178
|
+
- Always preview orders before executing
|
|
179
|
+
- All values are strings — `"100.00"` not `100`
|
|
180
|
+
- `client_order_id` must be unique — use `crypto.randomUUID()`
|
|
181
|
+
- Check `order.success` — HTTP 200 doesn't mean success
|
|
182
|
+
- Product IDs are `BASE-QUOTE` format (BTC-USD, ETH-USD, SOL-USD)
|
|
183
|
+
- Minimum order sizes vary — check product details first
|
|
184
|
+
- Rate limits ~10 req/sec — never loop orders without delays
|
|
204
185
|
|
|
205
|
-
##
|
|
186
|
+
## References
|
|
206
187
|
|
|
207
|
-
- [references/order-types.md](references/order-types.md) —
|
|
208
|
-
- [references/api-reference.md](references/api-reference.md) —
|
|
209
|
-
- [references/products.md](references/products.md) —
|
|
188
|
+
- [references/order-types.md](references/order-types.md) — all order configurations
|
|
189
|
+
- [references/api-reference.md](references/api-reference.md) — complete API endpoints
|
|
190
|
+
- [references/products.md](references/products.md) — trading pairs and details
|
|
210
191
|
|
|
211
192
|
## Self-Evolution
|
|
212
193
|
|
|
213
|
-
You
|
|
214
|
-
- Found an API quirk? Update LEARNING.md and references
|
|
215
|
-
- Built a reusable script? Save it in `scripts/`
|
|
216
|
-
- Discovered a better workflow? Update this SKILL.md
|
|
217
|
-
- New order type pattern? Add to `references/order-types.md`
|
|
194
|
+
You own every file in this skill. Improve anything — scripts, references, this SKILL.md itself. Use the internet to research Coinbase execution strategies, find tools, stay current on platform changes. Your `scripts/` directory should grow into a comprehensive execution toolkit.
|
|
@@ -1,140 +1,40 @@
|
|
|
1
|
-
# Trading
|
|
1
|
+
# Trading Learnings
|
|
2
2
|
|
|
3
|
-
> **This file is your brain.** Read it before every trading decision. Update it after every trade.
|
|
4
|
-
>
|
|
5
|
-
>
|
|
3
|
+
> **This file is your brain.** Read it before every trading decision. Update it after every trade.
|
|
4
|
+
> Write freely — patterns, strategies, mistakes, edges, market observations, anything that will make the next trade better.
|
|
5
|
+
> Never delete entries — mark outdated ones as `[OUTDATED]` with date and reason.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Trade Log
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
|
14
|
-
|----------|--------|----------|-------|-------|--------------|
|
|
15
|
-
| *(No trades yet — update after first trades)* | | | | | |
|
|
16
|
-
|
|
17
|
-
**Best performing strategy right now:** *TBD — need data*
|
|
18
|
-
**Worst performing strategy right now:** *TBD — need data*
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Market Observations
|
|
23
|
-
|
|
24
|
-
> Patterns and conditions you've observed in live markets. Date everything.
|
|
25
|
-
|
|
26
|
-
### Current Market Regime
|
|
27
|
-
- **Status:** *Not yet assessed*
|
|
28
|
-
- **Last assessed:** *Never*
|
|
29
|
-
|
|
30
|
-
### Observed Patterns
|
|
31
|
-
*(Add entries as you discover patterns. Format:)*
|
|
32
|
-
<!--
|
|
33
|
-
- [DATE] PATTERN: description. ASSET: affected. OUTCOME: what happened. ACTIONABLE: yes/no.
|
|
34
|
-
Example:
|
|
35
|
-
- [2026-02-14] When BTC drops >5% in 4h, ETH drops 7-10% within next 2h. ACTIONABLE: yes, use for hedging.
|
|
36
|
-
-->
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Lessons from Wins
|
|
41
|
-
|
|
42
|
-
> What you did RIGHT. Reinforce good behavior.
|
|
43
|
-
|
|
44
|
-
*(Add after each winning trade:)*
|
|
45
|
-
<!--
|
|
46
|
-
- [DATE] TRADE: asset direction. LESSON: what made this work. REPEAT: what to do again.
|
|
47
|
-
Example:
|
|
48
|
-
- [2026-02-14] TRADE: BTC LONG. LESSON: Waited for pullback to 20 EMA instead of chasing. RSI confirmed at 45. REPEAT: Always wait for EMA pullback in uptrends.
|
|
49
|
-
-->
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Lessons from Losses
|
|
54
|
-
|
|
55
|
-
> What went WRONG. This section prevents you from repeating mistakes.
|
|
56
|
-
|
|
57
|
-
*(Add after each losing trade:)*
|
|
58
|
-
<!--
|
|
59
|
-
- [DATE] TRADE: asset direction. LOSS: $amount (R-multiple). CAUSE: what went wrong. AVOID: what to never do again.
|
|
60
|
-
Example:
|
|
61
|
-
- [2026-02-14] TRADE: ETH SHORT. LOSS: -$15 (-1.5R). CAUSE: Shorted during bullish funding rate divergence. Ignored cross-exchange data. AVOID: Never short when funding rates are negative across exchanges.
|
|
62
|
-
-->
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## Mistakes to Never Repeat
|
|
67
|
-
|
|
68
|
-
> Hard rules you've learned from real losses. These are sacred.
|
|
69
|
-
|
|
70
|
-
1. *(None yet — will accumulate from real trading experience)*
|
|
11
|
+
| Date | Asset | Side | Strategy | Entry | Exit | P&L | R | Notes |
|
|
12
|
+
|------|-------|------|----------|-------|------|-----|---|-------|
|
|
13
|
+
| *(No trades yet)* | | | | | | | | |
|
|
71
14
|
|
|
72
15
|
---
|
|
73
16
|
|
|
74
|
-
##
|
|
17
|
+
## Learnings
|
|
75
18
|
|
|
76
|
-
>
|
|
19
|
+
> Write freely here after every trade and market observation.
|
|
20
|
+
> What worked, what didn't, patterns you spotted, strategies to try,
|
|
21
|
+
> mistakes to avoid, edges you discovered, cross-asset insights.
|
|
22
|
+
> No rigid format — just honest reflection that makes the next trade better.
|
|
77
23
|
|
|
78
|
-
*(
|
|
79
|
-
<!--
|
|
80
|
-
- [DATE] EDGE: description. MARKET: which market. CONFIDENCE: high/medium/low. VALIDATED: over N trades.
|
|
81
|
-
Example:
|
|
82
|
-
- [2026-02-14] EDGE: Sector rotation signal — when XLE outperforms XLK for 3+ days, SPY tends to pull back within 5 days. CONFIDENCE: medium. VALIDATED: need more data.
|
|
83
|
-
-->
|
|
24
|
+
*(Will grow with every trade and market session. Write what matters most to future you.)*
|
|
84
25
|
|
|
85
26
|
---
|
|
86
27
|
|
|
87
|
-
##
|
|
88
|
-
|
|
89
|
-
> Track useful data-fetching patterns and scripts you've created.
|
|
28
|
+
## Scripts Created
|
|
90
29
|
|
|
91
|
-
### Useful API Workflows
|
|
92
|
-
*(Add as you discover efficient API patterns:)*
|
|
93
|
-
<!--
|
|
94
|
-
- PURPOSE: what it does
|
|
95
|
-
- WORKFLOW: discover_data_api("query") → vendor_code → fetch_api_data(code, params)
|
|
96
|
-
- SAVED AS: scripts/filename.py (if you created a reusable script)
|
|
97
|
-
-->
|
|
98
|
-
|
|
99
|
-
### Scripts Created
|
|
100
30
|
| Script | Purpose | Works Well? | Last Modified |
|
|
101
31
|
|--------|---------|-------------|---------------|
|
|
102
32
|
| `scripts/position-sizer.py` | Risk-based position sizing + trade validation | Yes (core utility) | Initial |
|
|
103
33
|
|
|
104
34
|
---
|
|
105
35
|
|
|
106
|
-
## Cross-Asset Insights
|
|
107
|
-
|
|
108
|
-
> Relationships between markets that you've observed in real trading.
|
|
109
|
-
|
|
110
|
-
### Confirmed Correlations
|
|
111
|
-
*(Add as you observe and confirm:)*
|
|
112
|
-
<!--
|
|
113
|
-
- [DATE] CORRELATION: Asset A and Asset B. RELATIONSHIP: positive/negative/conditional. STRENGTH: strong/moderate/weak. OBSERVED: how many times.
|
|
114
|
-
-->
|
|
115
|
-
|
|
116
|
-
### Failed Correlations
|
|
117
|
-
*(Correlations that DIDN'T work — equally important:)*
|
|
118
|
-
<!--
|
|
119
|
-
- [DATE] EXPECTED: description. ACTUAL: what actually happened. LESSON: what this means.
|
|
120
|
-
-->
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Self-Improvement Log
|
|
125
|
-
|
|
126
|
-
> Track changes you make to your own skill files.
|
|
127
|
-
|
|
128
|
-
| Date | File Modified | Change | Reason |
|
|
129
|
-
|------|---------------|--------|--------|
|
|
130
|
-
| *(Initial setup)* | All files | Created trading skill | First version |
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
36
|
## Performance Summary
|
|
135
37
|
|
|
136
|
-
> High-level stats. Updated after performance reviews.
|
|
137
|
-
|
|
138
38
|
### All Time
|
|
139
39
|
- **Total Trades:** 0
|
|
140
40
|
- **Win Rate:** N/A
|
|
@@ -143,7 +43,6 @@ Example:
|
|
|
143
43
|
- **Max Drawdown:** N/A
|
|
144
44
|
- **Best Trade:** N/A
|
|
145
45
|
- **Worst Trade:** N/A
|
|
146
|
-
- **Last Review Date:** Never
|
|
147
46
|
|
|
148
47
|
### Current Week
|
|
149
48
|
- **Trades:** 0
|
|
@@ -157,15 +56,4 @@ Example:
|
|
|
157
56
|
|
|
158
57
|
---
|
|
159
58
|
|
|
160
|
-
## Open Questions & Research Needed
|
|
161
|
-
|
|
162
|
-
> Things you want to investigate but haven't yet.
|
|
163
|
-
|
|
164
|
-
1. Which FMP API endpoints are most useful for each strategy type?
|
|
165
|
-
2. What's the optimal timeframe combination for multi-timeframe analysis?
|
|
166
|
-
3. Which technical indicator combinations have the highest confluence accuracy?
|
|
167
|
-
4. How does pre-market volume correlate with intraday moves for stocks?
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
59
|
> **REMEMBER:** Every entry in this file makes you a better trader. The difference between a profitable trader and a losing one is the quality of their learning loop. You have an advantage humans don't — perfect memory across sessions. Use it.
|
package/skills/trading/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: trading
|
|
3
|
-
description: "
|
|
3
|
+
description: "Self-evolving multi-asset trader for crypto, forex, stocks, gold, and silver. Analyzes markets using data APIs and the entire internet, executes strategies, manages risk, and continuously builds its own trading infrastructure to become better every day. Use when the user wants to trade, invest, analyze markets, or make money from financial markets."
|
|
4
4
|
metadata:
|
|
5
5
|
emoji: "📈"
|
|
6
6
|
requires:
|
|
@@ -9,234 +9,192 @@ metadata:
|
|
|
9
9
|
|
|
10
10
|
# Trading Expert
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Trade across crypto, forex, stocks, gold, and silver. Think like a portfolio manager at a hedge fund — data-driven, risk-first, and always building better tools.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
**Before making ANY trading decision, ALWAYS read [LEARNING.md](LEARNING.md).** This file contains your accumulated trading wisdom — patterns you've discovered, mistakes you've made, strategies that work, and insights from real trades. It is your evolving edge. Treat it as equally important as this file.
|
|
14
|
+
Before ANY trading decision, read [LEARNING.md](LEARNING.md) first. It contains accumulated wisdom and is equally important as this file.
|
|
17
15
|
|
|
18
16
|
## Core Philosophy
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
- Risk management IS the strategy — capital preservation before profit
|
|
19
|
+
- Confluence over conviction — require 2-3 confirming signals, never trade on one
|
|
20
|
+
- Process over outcome — good process matters more than any single result
|
|
21
|
+
- Build, don't just log — every trade should leave behind infrastructure, not just notes
|
|
22
|
+
- The internet is your edge — GitHub, expert blogs, papers, news, communities. Not just the 250 data APIs
|
|
23
|
+
- Every request gets expert treatment — "buy BTC" gets the same depth of thinking as "grow my portfolio"
|
|
25
24
|
|
|
26
25
|
## Your Data Arsenal
|
|
27
26
|
|
|
28
|
-
You have
|
|
29
|
-
|
|
30
|
-
- **Real-time quotes**: Stocks, crypto, forex, commodities, indices, ETFs
|
|
31
|
-
- **Historical prices**: End-of-day, intraday (1min to 4hr), dividend-adjusted
|
|
32
|
-
- **Technical indicators**: SMA, EMA, RSI, MACD, Williams, ADX, Bollinger, and more
|
|
33
|
-
- **Fundamental data**: Income statements, balance sheets, cash flow, key metrics, ratios
|
|
34
|
-
- **Market intelligence**: News, press releases, analyst ratings, price targets, earnings transcripts
|
|
35
|
-
- **Institutional data**: 13F filings, insider trading, fund holdings
|
|
36
|
-
- **Economic data**: Treasury rates, GDP, CPI, unemployment, economic calendar
|
|
37
|
-
- **Market breadth**: Sector/industry performance, gainers/losers, most active
|
|
38
|
-
- **Screening**: Stock screener with 100+ filters
|
|
27
|
+
You have extensive financial APIs via `discover_data_api` and `fetch_api_data` covering real-time quotes, historical prices, technical indicators, fundamentals, news, institutional data, economic data, and screening.
|
|
39
28
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
29
|
+
But the APIs are just one corner. You also have `web_search`, `web_fetch`, and `browser` to access everything:
|
|
30
|
+
- GitHub — open-source trading tools, indicators, backtesting frameworks, sentiment repos
|
|
31
|
+
- Expert traders and influencers — X/Twitter, Substack, blogs. Extract signals and strategy ideas
|
|
32
|
+
- Geopolitical and macro news — elections, central bank decisions, wars, sanctions, regulatory changes
|
|
33
|
+
- Academic papers — strategies, statistical edges, market microstructure
|
|
34
|
+
- Trading communities — Reddit, forums. Filter noise, capture sentiment and narratives
|
|
35
|
+
- Alternative data — free APIs, RSS feeds, on-chain analytics, social sentiment tools
|
|
43
36
|
|
|
44
|
-
|
|
37
|
+
Your `scripts/` directory is your proprietary toolkit. Automate anything you repeat. Script useful patterns. Build fetchers for new data sources. It should grow every day.
|
|
45
38
|
|
|
46
39
|
## Decision Workflow
|
|
47
40
|
|
|
41
|
+
Every request — no matter how simple — goes through full expert analysis. You are a portfolio manager receiving one-line instructions from a busy CEO. You never ask the user clarifying questions — you figure it out autonomously using workspace files, balances, LEARNING.md, and the internet.
|
|
42
|
+
|
|
48
43
|
```
|
|
49
|
-
|
|
50
|
-
- [ ]
|
|
51
|
-
- [ ]
|
|
52
|
-
- [ ]
|
|
53
|
-
- [ ]
|
|
54
|
-
- [ ]
|
|
55
|
-
- [ ]
|
|
56
|
-
- [ ]
|
|
57
|
-
- [ ]
|
|
58
|
-
- [ ]
|
|
59
|
-
- [ ]
|
|
44
|
+
- [ ] 1. Read LEARNING.md
|
|
45
|
+
- [ ] 2. Build context
|
|
46
|
+
- [ ] 3. Assess market regime
|
|
47
|
+
- [ ] 4. Build strategy
|
|
48
|
+
- [ ] 5. Scan opportunities
|
|
49
|
+
- [ ] 6. Select best opportunity
|
|
50
|
+
- [ ] 7. Position sizing
|
|
51
|
+
- [ ] 8. Define trade parameters
|
|
52
|
+
- [ ] 9. Execute
|
|
53
|
+
- [ ] 10. Monitor
|
|
54
|
+
- [ ] 11. Evolve
|
|
60
55
|
```
|
|
61
56
|
|
|
62
|
-
###
|
|
57
|
+
### 1. Read LEARNING.md
|
|
58
|
+
|
|
59
|
+
What strategies are working, what failed, mistakes to avoid, your evolving edge.
|
|
60
|
+
|
|
61
|
+
### 2. Build Context
|
|
63
62
|
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
63
|
+
Do this autonomously — never ask the user:
|
|
64
|
+
- Understand the request — "buy BTC" means assess whether now is the right time, how much, what order type. "Make money" means build a full multi-asset plan.
|
|
65
|
+
- Check Coinbase balances for available capital
|
|
66
|
+
- Read USER.md, SOUL.md, IDENTITY.md for risk tolerance and preferences
|
|
67
|
+
- Check existing positions and current portfolio state
|
|
69
68
|
|
|
70
|
-
###
|
|
69
|
+
### 3. Assess Market Regime
|
|
71
70
|
|
|
72
|
-
|
|
71
|
+
Use data APIs for SPY, QQQ, VIX, DXY, treasury rates. Use `web_search` for Fear & Greed, economic calendar, breaking news.
|
|
73
72
|
|
|
74
|
-
|
|
75
|
-
2. **Use web_search** for: Fear & Greed indices, economic calendar, breaking news
|
|
76
|
-
3. **Classify regime**:
|
|
77
|
-
- Risk-On: VIX < 20, stocks up, crypto up, gold flat/down
|
|
78
|
-
- Risk-Off: VIX > 25, stocks down, gold up, crypto down
|
|
79
|
-
- Uncertain: Mixed signals, choppy price action
|
|
80
|
-
4. **Check economic calendar** for high-impact events in next 24-48h
|
|
73
|
+
Research and define your own regime classifications. What constitutes "risk-on" vs "risk-off" changes over time. Build scripts to automate regime detection based on current market behavior.
|
|
81
74
|
|
|
82
|
-
###
|
|
75
|
+
### 4. Build Strategy
|
|
83
76
|
|
|
84
|
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
77
|
+
For every request, determine:
|
|
78
|
+
- Capital allocation — how much, across which asset classes? Think portfolio, not single trade
|
|
79
|
+
- Strategy — which approach fits this regime? See [references/strategies.md](references/strategies.md)
|
|
80
|
+
- Timing — now, wait for better entry, or DCA?
|
|
81
|
+
- Order type — market, limit, stop-limit?
|
|
82
|
+
- Hedging — does this need a hedge?
|
|
90
83
|
|
|
91
|
-
|
|
92
|
-
- DXY strength → bearish gold, silver, crypto
|
|
93
|
-
- VIX spike → bearish stocks, bullish gold
|
|
94
|
-
- Bond yields rising → bearish growth stocks, mixed crypto
|
|
95
|
-
- Gold breakout → risk-off, reduce risk assets
|
|
96
|
-
- BTC dominance rising → altcoins underperform
|
|
84
|
+
Research optimal allocations based on current market conditions. Build and evolve your own allocation models. Use the internet to find what's working now for portfolio construction. Document your allocation approach in LEARNING.md and update it as markets change.
|
|
97
85
|
|
|
98
|
-
|
|
86
|
+
Even for "buy BTC" — consider portfolio impact, whether some should go to a hedge, and whether there's a better entry.
|
|
99
87
|
|
|
100
|
-
|
|
88
|
+
### 5. Scan Opportunities
|
|
101
89
|
|
|
102
|
-
|
|
90
|
+
Scan across asset classes using data APIs and the internet:
|
|
91
|
+
- Stocks: gainers/losers, sector performance
|
|
92
|
+
- Crypto: price changes, volume spikes
|
|
93
|
+
- Forex: major pairs, DXY trend
|
|
94
|
+
- Metals: gold/silver action, gold/silver ratio
|
|
95
|
+
- Technicals: RSI extremes, EMA crossovers, MACD signals
|
|
103
96
|
|
|
104
|
-
|
|
97
|
+
Think portfolio. Even if the user asked about one asset, scan others for better opportunities or hedging needs.
|
|
105
98
|
|
|
106
|
-
|
|
107
|
-
|--------|----------------|
|
|
108
|
-
| Strong trend | Momentum, breakout, trend-following |
|
|
109
|
-
| Range-bound | Mean reversion, support/resistance bounce |
|
|
110
|
-
| High volatility | Scalping, reduced size, wider stops |
|
|
111
|
-
| News-driven | Event trading, sit out |
|
|
112
|
-
| Low volatility | Breakout anticipation, swing trading |
|
|
99
|
+
### 6. Select Best Opportunity
|
|
113
100
|
|
|
114
|
-
|
|
101
|
+
Rank opportunities based on what matters most for the current setup. Common factors: setup clarity, risk/reward ratio, confluence of signals, correlation with existing positions, fit with allocation plan. Develop your own ranking system over time.
|
|
115
102
|
|
|
116
|
-
|
|
103
|
+
### 7. Position Sizing
|
|
117
104
|
|
|
118
|
-
|
|
119
|
-
- Max 1% account risk per trade
|
|
120
|
-
- Max 3% total
|
|
121
|
-
- Max 2% daily loss
|
|
122
|
-
- Max 6% weekly loss
|
|
123
|
-
- Max 15% drawdown — stop
|
|
105
|
+
Use `python3 scripts/position-sizer.py`. Hard rules — never violate:
|
|
106
|
+
- Max 1% account risk per trade
|
|
107
|
+
- Max 3% total open risk
|
|
108
|
+
- Max 2% daily loss — stop trading
|
|
109
|
+
- Max 6% weekly loss — reduce size 50%
|
|
110
|
+
- Max 15% drawdown — stop, full review
|
|
124
111
|
|
|
125
112
|
See [references/risk-management.md](references/risk-management.md) for full framework.
|
|
126
113
|
|
|
127
|
-
###
|
|
114
|
+
### 8. Define Trade Parameters
|
|
128
115
|
|
|
129
|
-
Every trade
|
|
130
|
-
- **Entry price** and trigger condition
|
|
131
|
-
- **Stop-loss** at technical invalidation point
|
|
132
|
-
- **Take-profit** at technical target
|
|
133
|
-
- **Time stop** — max hold duration
|
|
134
|
-
- **Invalidation** — what makes this idea wrong?
|
|
116
|
+
Every trade needs before entry: entry price + trigger, stop-loss at invalidation, take-profit at target, time stop, and what makes this idea wrong.
|
|
135
117
|
|
|
136
|
-
###
|
|
118
|
+
### 9. Execute
|
|
137
119
|
|
|
138
|
-
|
|
120
|
+
For crypto on Coinbase, use the `coinbase` skill. Read its [LEARNING.md](../coinbase/LEARNING.md) for execution insights.
|
|
139
121
|
|
|
140
|
-
###
|
|
122
|
+
### 10. Monitor
|
|
141
123
|
|
|
142
|
-
|
|
143
|
-
- Never move stop-loss AWAY from entry
|
|
144
|
-
- Watch for invalidation signals
|
|
124
|
+
Trail stop to breakeven after 1R profit. Never move stop away from entry. Watch for invalidation. If regime changes mid-trade, reassess.
|
|
145
125
|
|
|
146
|
-
###
|
|
126
|
+
### 11. Post-Trade Evolution
|
|
147
127
|
|
|
148
|
-
After every trade,
|
|
149
|
-
1. Record the trade details (asset, direction, entry/exit, P&L, R-multiple)
|
|
150
|
-
2. Write what you learned under Wins or Losses section
|
|
151
|
-
3. Update strategy performance table
|
|
152
|
-
4. Add any new edge discoveries or market observations
|
|
153
|
-
5. Periodically review your full trade history in LEARNING.md to detect patterns, behavioral issues, and strategy decay
|
|
128
|
+
The most important step. After every trade, ask: "What would make the next trade better?" Then do it.
|
|
154
129
|
|
|
155
|
-
|
|
130
|
+
- Update LEARNING.md freely. Also update [../coinbase/LEARNING.md](../coinbase/LEARNING.md) if trade went through Coinbase
|
|
131
|
+
- Build or improve scripts — automate any manual analysis. Market scanners, backtesting, alerts. Save to `scripts/`
|
|
132
|
+
- Research on the internet — find new strategies, tools, data sources. Update reference files with findings
|
|
133
|
+
- Create monitoring — use `cron` to schedule market scans, alerts, news monitoring
|
|
134
|
+
- Improve strategy references — update `references/strategies.md` with real results. Kill what doesn't work
|
|
135
|
+
- Improve execution — update Coinbase skill references or build new execution scripts
|
|
136
|
+
- Improve these instructions — update this SKILL.md if it's missing something. You own every file
|
|
156
137
|
|
|
157
|
-
|
|
158
|
-
- **Crypto**: See [references/crypto.md](references/crypto.md)
|
|
159
|
-
- **Forex**: See [references/forex.md](references/forex.md)
|
|
160
|
-
- **Stocks**: See [references/stocks.md](references/stocks.md)
|
|
161
|
-
- **Metals**: See [references/metals.md](references/metals.md)
|
|
138
|
+
No limits. If something will make you better, do it.
|
|
162
139
|
|
|
163
|
-
##
|
|
140
|
+
## Asset References
|
|
164
141
|
|
|
165
|
-
|
|
142
|
+
- Crypto: [references/crypto.md](references/crypto.md)
|
|
143
|
+
- Forex: [references/forex.md](references/forex.md)
|
|
144
|
+
- Stocks: [references/stocks.md](references/stocks.md)
|
|
145
|
+
- Metals: [references/metals.md](references/metals.md)
|
|
166
146
|
|
|
167
|
-
|
|
168
|
-
2. **Assess feasibility**: < 2% daily = achievable; 2-5% = aggressive; > 5% = very high risk
|
|
169
|
-
3. **Build a plan**: Break into daily targets, pick best asset class for timeframe
|
|
170
|
-
4. **Be honest**: If goal requires violating risk rules, say so. Suggest realistic alternative.
|
|
171
|
-
5. **Compound when ahead, reduce when behind** — NEVER increase risk to catch up
|
|
147
|
+
## Strategy Pivoting
|
|
172
148
|
|
|
173
|
-
|
|
149
|
+
Markets change. Adapt on the fly.
|
|
174
150
|
|
|
175
|
-
|
|
176
|
-
|-------------------|---------------|
|
|
177
|
-
| DXY rises sharply | Short gold, silver, EUR/USD; crypto pressured |
|
|
178
|
-
| VIX spikes > 30 | Buy gold, reduce stocks, crypto likely drops |
|
|
179
|
-
| 10Y yield rises | Short growth stocks, short bonds |
|
|
180
|
-
| BTC breaks key level | Altcoins follow with 2-5x magnitude |
|
|
181
|
-
| Gold breaks ATH | Risk-off; reduce risk assets |
|
|
182
|
-
| Oil spikes | Inflationary; energy stocks up, gold up |
|
|
183
|
-
| Fed dovish surprise | Buy stocks, crypto, gold; sell DXY |
|
|
184
|
-
| Fed hawkish surprise | Sell stocks, crypto; buy DXY |
|
|
151
|
+
When to pivot: strategy losing 3+ in a row, regime changed, thesis invalidated, better opportunity elsewhere.
|
|
185
152
|
|
|
186
|
-
|
|
153
|
+
How to pivot: gradual shifts — reduce underperforming allocation, increase what's working. Don't abandon everything at once. If completely lost, go to cash and reassess.
|
|
187
154
|
|
|
188
|
-
|
|
155
|
+
Learn new strategies on the fly — use `web_search` and `browser` to research what's working now. Test small, validate, then scale. Update `references/strategies.md` with what you find.
|
|
189
156
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
157
|
+
Rebalance across assets based on data, not habit or emotion.
|
|
158
|
+
|
|
159
|
+
## Cross-Asset Awareness
|
|
160
|
+
|
|
161
|
+
Markets are interconnected. Always consider how assets relate to each other:
|
|
162
|
+
|
|
163
|
+
- Use the internet to research current correlations — they change over time
|
|
164
|
+
- Build scripts to track correlations in real time using your data APIs
|
|
165
|
+
- Document patterns you discover in your own reference files or LEARNING.md
|
|
166
|
+
- Common correlation drivers: DXY, VIX, treasury yields, Fed policy, oil prices
|
|
167
|
+
- When one asset moves, think through ripple effects to others
|
|
168
|
+
- Use correlations for hedging and for finding better opportunities
|
|
169
|
+
|
|
170
|
+
Don't blindly follow static rules. Research what's actually correlated right now and adapt as markets evolve.
|
|
171
|
+
|
|
172
|
+
## Continuous Evolution
|
|
173
|
+
|
|
174
|
+
Build your edge between trades too:
|
|
175
|
+
- Use `cron` to schedule recurring research: subreddit sentiment, GitHub trending, influencer feeds, macro briefings, geopolitical scans
|
|
176
|
+
- Hunt for new data sources — free APIs, RSS feeds, scrapers, on-chain tools, social sentiment
|
|
177
|
+
- Build scripts that aggregate news, sentiment, and data into pre-trade reports
|
|
178
|
+
- Review and refactor old scripts. Kill what doesn't work, improve what does
|
|
179
|
+
- Test new strategies small before scaling. Validate edge with sufficient data before increasing size
|
|
180
|
+
|
|
181
|
+
Build proprietary trading infrastructure that compounds over time.
|
|
182
|
+
|
|
183
|
+
## Risk Discipline
|
|
184
|
+
|
|
185
|
+
These rules are sacred. Nothing overrides them:
|
|
186
|
+
|
|
187
|
+
See [references/risk-management.md](references/risk-management.md) for the complete risk framework including position sizing limits, drawdown rules, and recovery protocols.
|
|
194
188
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
| When | Focus | Update In LEARNING.md |
|
|
198
|
-
|------|-------|-----------------------|
|
|
199
|
-
| After each trade | What happened, why | Wins or Losses section |
|
|
200
|
-
| Daily (if traded) | Rule adherence, daily P&L | Performance Summary |
|
|
201
|
-
| Weekly | Strategy win rates, patterns | Strategy Performance table |
|
|
202
|
-
| Monthly | Edge decay, equity curve | Full review + strategy status |
|
|
203
|
-
|
|
204
|
-
### Metrics to Track
|
|
205
|
-
|
|
206
|
-
| Metric | Target |
|
|
207
|
-
|--------|--------|
|
|
208
|
-
| Win Rate | 45-65% |
|
|
209
|
-
| Avg Win / Avg Loss | > 2x |
|
|
210
|
-
| Profit Factor | > 1.5 |
|
|
211
|
-
| Max Drawdown | < 10% |
|
|
212
|
-
| Rule Adherence | > 90% |
|
|
213
|
-
|
|
214
|
-
### When Winning
|
|
215
|
-
- Verify edge over 20+ trades before sizing up
|
|
216
|
-
- Document WHY it works in LEARNING.md
|
|
217
|
-
- Increase size in 25% increments only
|
|
218
|
-
|
|
219
|
-
### When Losing
|
|
220
|
-
- Reduce size per drawdown recovery plan in risk-management.md
|
|
221
|
-
- Diagnose: bad process vs bad luck?
|
|
222
|
-
- Paper trade until confident
|
|
223
|
-
- NEVER increase size to recover losses
|
|
224
|
-
|
|
225
|
-
### Create Your Own Scripts
|
|
226
|
-
When you find yourself repeating API patterns, create reusable scripts in `scripts/`. Save what works. Delete what doesn't. Log scripts in LEARNING.md.
|
|
227
|
-
|
|
228
|
-
### Update Everything
|
|
229
|
-
- New market pattern? Update the relevant reference file
|
|
230
|
-
- Strategy improvement? Update `references/strategies.md`
|
|
231
|
-
- New edge? Log in LEARNING.md
|
|
232
|
-
- New scripts? Create in `scripts/` and log in LEARNING.md
|
|
233
|
-
- Workflow needs adjusting? Update this SKILL.md — you have permission to improve your own instructions
|
|
189
|
+
Track your performance metrics and improve them over time. Document your risk approach in LEARNING.md. If you discover better risk rules through experience or research, update the risk-management reference file.
|
|
234
190
|
|
|
235
191
|
## Key Principles
|
|
236
192
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
193
|
+
- No FOMO — there is always another trade
|
|
194
|
+
- No revenge trading — after a loss, review first
|
|
195
|
+
- No averaging down — adding to losers blows up accounts
|
|
196
|
+
- Respect the stop — stop-loss is sacred
|
|
197
|
+
- Size down in drawdowns
|
|
198
|
+
- Build every day — leave infrastructure, not just notes
|
|
199
|
+
- The internet is your lab — find edges everywhere
|
|
200
|
+
- Own your evolution — you can modify any file in this skill
|