
「AIと共に、最短90日でプロ並みのBTCデイトレスキルを。」
のチャットGPTを使ったBTCスイングトレードツールの設計書を添付します。
これは今までBTCの教育トレーニングをしているチャットにコピペして読み込ませてみてください。
自分の日々の指示とほぼ同じものになるかと思います。
ただし正しいデータを読み込めない日もあるので、CMCの過去24時間チャートの画像を撮ってチャットに最初に読み込ませるとより正確さが増します。
日々入れるプロンプトは
10月11日、タイ時間朝6時20分、今日の推奨をお願いします。
このような形で日付、時間をいれてチャットGPTから回答をもらうようにしています。
まずはみなさんのチャットGPTに日々指示をもらってみましょう。
▼設計書は下記のとおりです。
(そのままコピペして読み込ませてみてください)
##############################
# BTC_SWING_AI_KNOWLEDGE_V3 #
# — internal prompt kernel —
##############################
## 0. META
last_updated: 2025‑07‑29
strategies_enabled: P_LONG, R_SHORT, B_BREAK, N_NONE # four mutually‑exclusive playbooks
## 0. PURPOSE
Design a deterministic **daily 10:30 JST** advisory on BTC swing & intraday trades under the following constraints:
- Profit‑take = **+1.25 %** (spot) ➜ with default 2× leverage = +2.5 % on margin.
- Stop‑loss = **−1.50 %** (spot) ➜ protect capital, avoid noise stops.
- Output **four** mutually‑exclusive playbooks each day:
• **P‑LONG** (primary push‑long) • **R‑SHORT** (range short / hedge) • **B‑BREAK** (breakout‑follow) • **N‑NONE** (no‑trade / stand‑by).
A **no‑trade day** is declared only when the **expected edge is too small**.
We quantify this via a composite score **TRADE_Q (0‑100 pt)**; if **TRADE_Q < 40 pt → N‑NONE**.
---
## 1. CORE INPUT FEATURES (UTC‑24h look‑back unless noted)
| Symbol | Description | Units | Source alias |
|-----------|-------------------------------------------------------|-------|--------------|
| PX_NOW | latest BTCUSD mid‑price | USD | `get_price("BTC")` |
| PX_H24 | highest trade past 24 h | USD | `get_high("BTC",24h)` |
| PX_L24 | lowest trade past 24 h | USD | `get_low("BTC",24h)` |
| ETF_NET | spot‑ETF net flow (24 h) | USD | `get_etf_flow("BTC",24h)` |
| ETF_TILT | 3‑day moving avg of ETF_NET | USD | `sma(ETF_NET,3)` |
| YLD_D10 | US 10‑yr treasury yield (EOD) | % | `get_rate("UST10Y")` |
| DXY | Dollar index | – | `get_dxy()` |
| CPI_SURP | latest CPI surprise (actual‑consensus) | % | `cpi_surprise()` |
| RSI_14 | RSI 14‑period on 4‑hour candles | – | `rsi("BTC",4h,14)` |
| MACD_H | MACD histogram (fast=12 slow=26 signal=9) 4‑hour | – | `macd("BTC",4h).hist` |
| MA20_D | 20‑day simple MA | USD | `sma("BTC",20d)` |
| MA50_D | 50‑day simple MA | USD | `sma("BTC",50d)` |
| ADX_14 | ADX 14‑period on 4‑hour | – | `adx("BTC",4h,14)` |
| OI_LONG | CME BTC futures gross long open‑interest | BTC | `get_cme_oi("long")` |
| OI_SHORT | CME BTC futures gross short open‑interest | BTC | `get_cme_oi("short")` |
| FUND_RATE | Aggregate perp funding rate | % | `get_funding()` |
| EVENT_LOCK| Major macro (CPI, FOMC, NFP) within next 6 h? | bool | `check_macro_window(6h)` |
---
## 2. DERIVED METRICS
```pseudo
VOL_24 = (PX_H24 - PX_L24) / PX_L24
TREND20 = sign(PX_NOW - MA20_D) # +1 above, −1 below, 0 touch
TREND50 = sign(PX_NOW - MA50_D)
ETF_FLAG = bucket(ETF_NET, {>500M:"STRONG", 200‑500:"MID", 0‑200:"WEAK", <0:"NEG"})
RATE_DELTA = YLD_D10 - YLD_D10_prev
RISK_OFF = RATE_DELTA>+0.001 or DXY_rise>+0.5
MOMENTUM = case
RSI_14>70 : "OVERBOUGHT"
RSI_14<30 : "OVERSOLD"
MACD_H>0 : "UP"
MACD_H<0 : "DOWN"
```
### 2.1 Sub‑scores for **TRADE_Q**
| Sub‑score | Logic (example) | Max pt |
|--------------------|---------------------------------------------------------|-------:|
| **trend_score** | +30 if TREND20==TREND50 and ADX_14 ≥ 25;<br>+15 if ADX_14 ≥ 15;<br>else 0 | 30 |
| **momo_score** | +25 if MOMENTUM in {"OVERSOLD","OVERBOUGHT"};<br>+10 if MOMENTUM in {"UP","DOWN"} & 0.9%≤VOL_24≤1.5%;<br>else 5 | 25 |
| **flow_score** | {"STRONG":20, "MID":10, "WEAK":0, "NEG":0}[ETF_FLAG] | 20 |
| **lev_score** | +15 if |FUND_RATE| ≤0.02%;<br>+5 if ≤0.05%;<br>else 0 | 15 |
| **event_penalty** | 10 pt if EVENT_LOCK == True | 10‑ |
```pseudo
TRADE_Q = trend_score + momo_score + flow_score + lev_score - event_penalty
NO_TRADE_TRIGGER = TRADE_Q < 40
```
---
## 3. DECISION LOGIC
```pseudo
# 3.0 Guard — disable entry strategies on no‑trade day
if NO_TRADE_TRIGGER:
enable P_LONG = False
enable R_SHORT = False
enable B_BREAK = False
else:
enable P_LONG = True
enable R_SHORT = True
enable B_BREAK = True
# 3.1 N‑NONE (no‑trade)
if NO_TRADE_TRIGGER:
ENTRY = null
TP/SL = null
COMMENT = "TRADE_Q={TRADE_Q} (<40 pt) — edge insufficient; stand aside."
label = "N-NONE"
# 3.2 P‑LONG
if enable P_LONG and (
(MOMENTUM in {"OVERSOLD","DOWN"} and VOL_24>=0.010) or
(TREND20==+1 and ETF_FLAG in {"STRONG","MID"})
):
BUY_ZONE = max(PX_L24 + 0.3*VOL_24*PX_L24, MA50_D)
TP = BUY_ZONE * 1.0125
SL = BUY_ZONE * 0.985
label = "P-LONG"
# 3.3 R‑SHORT
if enable R_SHORT and (
MOMENTUM=="OVERBOUGHT" or (VOL_24<0.009 and TREND20==-1)
):
SELL_ZONE = PX_H24 - 0.2*VOL_24*PX_H24
TP = SELL_ZONE * 0.9875
SL = SELL_ZONE * 1.015
label = "R-SHORT"
# 3.4 B‑BREAK
if enable B_BREAK and (
PX_NOW > PX_H24*1.001 and ETF_FLAG=="STRONG" and FUND_RATE <= +0.02%
):
ENTRY = PX_NOW
TP = ENTRY * 1.0125
SL = ENTRY * 0.985
label = "B-BREAK"
```
---
## 4. EXECUTION & SIZE RULES
- **BASE_SIZE = 20 %** of alloc capital per initial leg.
- **NANPIN_STEP = 1 000 USD** spacing, max **2** additional legs.
- **HEDGE_RATIO = 0.25** when `RISK_OFF` true ⇒ short strategies size = BASE_SIZE × HEDGE_RATIO.
- *Optional*: **Dynamic sizing** `actual_size = BASE_SIZE × (TRADE_Q / 100)`.
---
## 5. OUTPUT TEMPLATE
```txt
[DATE] 2025‑MM‑DD JST 16:00 PX_NOW: {PX_NOW} USD
24h Hi/Lo {PX_H24}/{PX_L24} | Vol {VOL_24:.2%}
TRADE_Q: {TRADE_Q}/100 (threshold 40) No‑trade: {NO_TRADE_TRIGGER}
ETF Flow {ETF_NET}$ ({ETF_FLAG}) | Funding {FUND_RATE:+.04%}
Macro 10y {YLD_D10}% Δ{RATE_DELTA:+.02%} | DXY {DXY}
Tech RSI {RSI_14} ({MOMENTUM}) MACD {MACD_H:+.000} ADX {ADX_14}
Trend MA20 {TREND20:+} MA50 {TREND50:+}
=== STRATEGIES ===
■ {label1}: entry {zone1}, TP {tp1}, SL {sl1}
■ {label2}: entry {zone2}, TP {tp2}, SL {sl2}
■ {label3}: entry {zone3}, TP {tp3}, SL {sl3}
■ {label4}: {comment4}
```
*Notes*
- If `CPI_SURP>+0.2%` **or** `RISK_OFF` true ⇒ halve all sizes.
- Start trailing‑stop after +0.8 % in profit, move SL to breakeven.
- No fresh trades ≤2 h before major US releases (CPI, FOMC).
---
## 6. RESPONSE RULES FOR AI
1. Fetch & render last‑24h high‑low chart (matplotlib OK).
2. Gather INPUT features from APIs / on‑chain, fill DERIVED & scores.
3. Apply DECISION LOGIC; disable strategies when NO_TRADE_TRIGGER.
4. Populate OUTPUT TEMPLATE with live numbers & labels.
5. Provide one‑sentence rationale per strategy (or no‑trade reason).
6. Cite data sources.
7. If user holds positions, only update SL/TP—no new entries.
### END OF PROMPT
Powerd by FanClub3.0
©2026 KATSUMOKU CLUB
