trader-hand-skill について
テクニカル分析とリスク管理を学ぶトレーダー向けの参考スキルです。指標の計算式、チャートパターン、ポジションやポートフォリオのリスク計算を解説します。
主な機能
- 01テクニカル指標の式と解釈
- 02ローソク足パターンの参照
- 03サポートとレジスタンスの手法
- 04ポジションサイズとリスクの式
- 05指標の活用ガイダンス
活用シーン
- 01RSI、MACD、ATRの計算確認
- 02ローソク足パターンの解釈
- 03ポジションサイズと損切り水準の推定
- 04テクニカル指標の比較
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rightnow-ai/ openfang --skill trader-hand-skillインストール後、Claude Code で/trader-hand-skillを入力して読み込まれたか確認します。
同梱ファイルHAND.toml
詳細
トレーディングの専門知識
参考知識
1. テクニカル分析指標リファレンス
RSI(相対力指数)
Formula: RSI = 100 - (100 / (1 + RS))
Where: RS = Average Gain / Average Loss over N periods (default N = 14)
Step-by-step calculation:
1. For each period, compute change = Close(t) - Close(t-1)
2. Gains = max(change, 0), Losses = abs(min(change, 0))
3. First average: simple mean of first 14 gains/losses
4. Subsequent: AvgGain = (PrevAvgGain * 13 + CurrentGain) / 14 (Wilder smoothing)
5. RS = AvgGain / AvgLoss
6. RSI = 100 - (100 / (1 + RS))
Worked example (14-period):
Avg Gain over 14 periods = 1.02
Avg Loss over 14 periods = 0.68
RS = 1.02 / 0.68 = 1.50
RSI = 100 - (100 / (1 + 1.50)) = 100 - 40 = 60.0
解釈:
- RSI < 30:売られ過ぎの領域(買いシグナルの可能性)
- RSI > 70:買われ過ぎの領域(売りシグナルの可能性)
- RSI = 50:中立 — 価格モメンタムの均衡
RSI の高度なシグナル:
| シグナル | 説明 | 強さ |
|---|---|---|
| 弱気ダイバージェンス | 価格は高値を更新する一方、RSI は高値を切り下げる | 強い反転警告 |
| 強気ダイバージェンス | 価格は安値を更新する一方、RSI は安値を切り上げる | 強い反転警告 |
| 強気フェイラースイング | RSI が 30 を下回り、反発した後に 30 を上回り、直前の RSI 高値を突破する | 非常に強い買いシグナル |
| 弱気フェイラースイング | RSI が 70 を上回り、下落した後に 70 を下回って反発し、直前の RSI 安値を割り込む | 非常に強い売りシグナル |
| レンジシフト | 上昇トレンドでは RSI が 40~80、下降トレンドでは 20~60 の範囲で推移する | トレンドの確認 |
ベストプラクティス: RSI だけをシグナルとして使わないでください。トレンドの方向(移動平均)や出来高と組み合わせます。強いトレンドでは、RSI が長期間にわたって買われ過ぎまたは売られ過ぎの状態を保つことがあります。
MACD(移動平均収束拡散)
MACD Line = EMA(12) - EMA(26)
Signal Line = EMA(9) of MACD Line
Histogram = MACD Line - Signal Line
EMA formula: EMA(t) = Price(t) * k + EMA(t-1) * (1 - k)
Where: k = 2 / (N + 1)
For EMA(12): k = 2/13 = 0.1538
For EMA(26): k = 2/27 = 0.0741
Worked example:
EMA(12) = 155.20
EMA(26) = 152.80
MACD Line = 155.20 - 152.80 = 2.40
Previous Signal Line = 1.80
Signal Line = 2.40 * (2/10) + 1.80 * (8/10) = 0.48 + 1.44 = 1.92
Histogram = 2.40 - 1.92 = 0.48 (positive = bullish momentum increasing)
解釈:
| シグナル | 条件 | 強さ |
|---|---|---|
| 強気クロスオーバー | MACD がシグナルラインを上抜ける | 中程度の買いシグナル |
| 弱気クロスオーバー | MACD がシグナルラインを下抜ける | 中程度の売りシグナル |
| ゼロラインの強気クロス | MACD がゼロを上抜ける | 強気へのトレンド転換 |
| ゼロラインの弱気クロス | MACD がゼロを下抜ける | 弱気へのトレンド転換 |
| ヒストグラムの拡大 | バーが長くなる | モメンタムの加速 |
| ヒストグラムの縮小 | バーが短くなる | モメンタムの弱まり。反転の可能性 |
| 強気ダイバージェンス | 価格は安値を更新し、MACD は安値を切り上げる | 強い反転シグナル |
| 弱気ダイバージェンス | 価格は高値を更新し、MACD は高値を切り下げる | 強い反転シグナル |
ボリンジャーバンド
Middle Band = SMA(20)
Upper Band = SMA(20) + 2 * StdDev(20)
Lower Band = SMA(20) - 2 * StdDev(20)
Bandwidth = (Upper - Lower) / Middle
%B = (Price - Lower) / (Upper - Lower)
Worked example:
SMA(20) = 150.00
StdDev(20) = 3.50
Upper = 150.00 + 2 * 3.50 = 157.00
Lower = 150.00 - 2 * 3.50 = 143.00
Bandwidth = (157.00 - 143.00) / 150.00 = 0.0933 (9.33%)
Current price = 155.00
%B = (155.00 - 143.00) / (157.00 - 143.00) = 12/14 = 0.857
Interpretation: Price is 85.7% of the way from lower to upper band — near upper band
ボリンジャーバンドの主なシグナル:
| シグナル | 条件 | 意味 |
|---|---|---|
| スクイーズ | バンド幅が過去 6 か月で最低水準 | ボラティリティが収縮し、大きな値動きが迫っている |
| スクイーズ後の上方ブレイクアウト | スクイーズ後、価格が上限バンドを上抜ける | 強い強気ブレイクアウト |
| スクイーズ後の下方ブレイクアウト | スクイーズ後、価格が下限バンドを下抜ける | 強い弱気ブレイクアウト |
| 上限バンドに沿った推移 | 中央バンドが上昇するなか、価格が上限バンドに沿って推移する | 強い上昇トレンド — 空売りは絶対にしない |
| 下限バンドに沿った推移 | 中央バンドが下降するなか、価格が下限バンドに沿って推移する | 強い下降トレンド — 絶対に買わない |
| 平均回帰タッチ | 価格が外側のバンドに触れ、%B が反転する | 中央バンドへの回帰の可能性 |
| W ボトム | 価格が下限バンドに 2 回到達し、2 回目の安値では %B が高くなる | 強気反転パターン |
| M トップ | 価格が上限バンドに 2 回到達し、2 回目の高値では %B が低くなる | 弱気反転パターン |
VWAP(出来高加重平均価格)
VWAP = Cumulative(Typical Price * Volume) / Cumulative(Volume)
Typical Price = (High + Low + Close) / 3
Worked example (first 3 bars of the day):
Bar 1: TP = (101+99+100)/3 = 100.00, Vol = 10,000 -> cumTP*V = 1,000,000
Bar 2: TP = (102+100+101)/3 = 101.00, Vol = 15,000 -> cumTP*V = 2,515,000
Bar 3: TP = (103+101+102)/3 = 102.00, Vol = 8,000 -> cumTP*V = 3,331,000
Cumulative Volume = 33,000
VWAP = 3,331,000 / 33,000 = 100.94
用途:
- 機関投資家のベンチマーク:価格が VWAP を上回る場合は買い手が優勢、価格が VWAP を下回る場合は売り手が優勢です
- 日中のサポート/レジスタンス:上昇トレンドでは VWAP が動的なサポートとして、下降トレンドではレジスタンスとして機能します
- エントリーフィルター:価格が VWAP まで押し戻されたときにのみ買い、伸び切った値動いを追いかけないでください
- 標準偏差:VWAP の +1/-1 および +2/-2 標準偏差バンドを利益確定の目標として使います
- 毎日リセット:セッションをまたいで VWAP を持ち越さないでください — 日中指標です
移動平均線
SMA(N) = (Close_1 + Close_2 + ... + Close_N) / N
EMA(N) = Close * (2/(N+1)) + PrevEMA * (1 - 2/(N+1))
Key Moving Averages:
EMA(9) — very short-term trend (scalping, day trading)
EMA(20) — short-term trend
EMA(50) — medium-term trend
SMA(100) — intermediate trend
SMA(200) — long-term trend (institutional benchmark)
重要なクロスシグナル:
| クロス | 名称 | 意味 | 信頼性 |
|---|---|---|---|
| 50 MA > 200 MA | ゴールデンクロス | 強気トレンドへの反転 | 高い(約2週間の遅れ) |
| 50 MA < 200 MA | デッドクロス | 弱気トレンドへの反転 | 高い(約2週間の遅れ) |
| 9 EMA > 21 EMA | 短期の強気クロス | 短期的なモメンタムの変化 | 中程度 |
| 価格 > 200 SMA | 長期トレンドを上回る | 強気局面 | 非常に高い |
| 価格 < 200 SMA | 長期トレンドを下回る | 弱気局面 | 非常に高い |
移動平均線リボン(20/50/100/200 MAがすべて広がっている状態):非常に強いトレンドを示します。すべてが順番どおりに並んでいる場合(上昇トレンドなら20 > 50 > 100 > 200)、トレンドの信頼性は非常に高くなります。
ATR(アベレージ・トゥルー・レンジ)
True Range = max(High - Low, |High - PrevClose|, |Low - PrevClose|)
ATR(14) = Simple or Wilder Moving Average of True Range over 14 periods
Worked example:
Today: High = 105, Low = 101, PrevClose = 102
TR = max(105-101, |105-102|, |101-102|) = max(4, 3, 1) = 4
If ATR(14) was 3.50 yesterday:
ATR(14) = (3.50 * 13 + 4) / 14 = (45.50 + 4) / 14 = 3.536
実践的な活用方法:
| 用途 | 計算式 | 例 |
|---|---|---|
| 損切り価格の設定 | エントリー価格 - 2 * ATR | エントリー価格 $100、ATR $2.50 -> 損切り価格 $95.00 |
| 利益確定目標 | エントリー価格 + 3 * ATR | エントリー価格 $100、ATR $2.50 -> 目標価格 $107.50 |
| ポジションサイズの決定 | リスク額 / ATR | リスク額 $200 / ATR $2.50 = 80株 |
| ボラティリティフィルター | ATR > しきい値 | ATRが日次平均を上回る場合のみ取引する(値動きの乏しい市場を避ける) |
| トレーリングストップ | 最高終値 - 3 * ATR | 価格上昇に応じて利益を確保する |
出来高分析
OBV (On-Balance Volume):
If Close > PrevClose: OBV = PrevOBV + Volume
If Close < PrevClose: OBV = PrevOBV - Volume
If Close = PrevClose: OBV = PrevOBV
Volume Rate of Change: VROC = (Volume - Volume_N_ago) / Volume_N_ago * 100
出来高確認ルール:
| 値動き | 出来高 | 解釈 |
|---|---|---|
| 価格上昇 | 出来高増加 | 強い強気 — 正当な値動き |
| 価格上昇 | 出来高減少 | 弱い上昇 — 反転する可能性が高い |
| 価格下落 | 出来高増加 | 強い弱気 — 投げ売りまたは下抜け |
| 価格下落 | 出来高減少 | 弱い下落 — 底に近づいている可能性がある |
| ブレイクアウト | 出来高 > 20日平均の150% | 確認されたブレイクアウト — 取引する |
| ブレイクアウト | 出来高 < 平均 | ブレイクアウト失敗の可能性が高い — 待つか逆張りする |
| 出来高のピーク | 極端な出来高急増(平均の3倍以上) | 反動・反転の可能性があるポイント |
サポートとレジスタンス
フィボナッチ・リトレースメント水準:
After a move from Low (L) to High (H):
23.6% level = H - (H - L) * 0.236
38.2% level = H - (H - L) * 0.382
50.0% level = H - (H - L) * 0.500
61.8% level = H - (H - L) * 0.618 (Golden Ratio — strongest level)
78.6% level = H - (H - L) * 0.786
Worked example (move from $80 to $120):
Range = $40
23.6% = 120 - 40 * 0.236 = 120 - 9.44 = $110.56
38.2% = 120 - 40 * 0.382 = 120 - 15.28 = $104.72
50.0% = 120 - 40 * 0.500 = 120 - 20.00 = $100.00
61.8% = 120 - 40 * 0.618 = 120 - 24.72 = $95.28 (most likely bounce)
78.6% = 120 - 40 * 0.786 = 120 - 31.44 = $88.56
ピボットポイント(標準):
PP = (High + Low + Close) / 3
S1 = 2 * PP - High
S2 = PP - (High - Low)
R1 = 2 * PP - Low
R2 = PP + (High - Low)
Worked example (prev day: High=155, Low=148, Close=152):
PP = (155 + 148 + 152) / 3 = 151.67
S1 = 2 * 151.67 - 155 = 148.33
S2 = 151.67 - (155 - 148) = 144.67
R1 = 2 * 151.67 - 148 = 155.33
R2 = 151.67 + (155 - 148) = 158.67
2. ローソク足パターン
1本のローソク足のパターン
| パターン | シグナル | 実体 | ヒゲ | 必要な状況 |
|---|---|---|---|---|
| ドージー | 迷い | 始値 = 終値(またはほぼ同じ) | 上下に長い | サポート/レジスタンス水準では反転 |
| ハンマー | 強気の反転 | 小さく、ローソク足の上部にある | 下ヒゲが実体の2倍を超える | 下降トレンドの底で出現する必要がある |
| 逆ハンマー | 強気の反転 | 小さく、ローソク足の下部にある | 上ヒゲが実体の2倍を超える | 下降トレンドの底で出現し、確認が必要 |
| シューティングスター | 弱気の反転 | 小さく、ローソク足の下部にある | 上ヒゲが実体の2倍を超える | 上昇トレンドの天井で出現する必要がある |
| ハンギングマン | 弱気の反転 | 小さく、ローソク足の上部にある | 下ヒゲが実体の2倍を超える | 上昇トレンドの天井に出現する(形状はハンマーと同じ) |
| 強気の丸坊主 | 強い継続 | ヒゲのない緑色の実体 | なし | 強い買い圧力 |
| 弱気の丸坊主 | 強い継続 | ヒゲのない赤色の実体 | なし | 強い売り圧力 |
| コマ | 迷い | 中央にある小さな実体 | 両側のヒゲが同じ長さ | トレンドの勢いが弱まっている可能性がある |
| トンボドージー | 強気の反転 | 始値 = 終値 = 高値 | 長い下ヒゲのみ | サポートでは強い反転シグナル |
| 墓石ドージー | 弱気の反転 | 始値 = 終値 = 安値 | 長い上ヒゲのみ | レジスタンスでは強い反転シグナル |
複数ローソク足のパターン
| パターン | シグナル | 説明 | 信頼性 |
|---|---|---|---|
| 強気の包み線 | 上昇への反転 | 大きな緑色のローソク足が、直前の赤色のローソク足を完全に包み込みます | サポートで高い |
| 弱気の包み線 | 下落への反転 | 大きな赤色のローソク足が、直前の緑色のローソク足を完全に包み込みます | レジスタンスで高い |
| 明けの明星 | 強気の反転 | 赤色のローソク足、小さな実体/十字線と窓、大きな緑色のローソク足 | 非常に高い |
| 宵の明星 | 弱気の反転 | 緑色のローソク足、小さな実体/十字線と窓、大きな赤色のローソク足 | 非常に高い |
| 赤三兵 | 強い強気 | 大きな緑色のローソク足が3本連続し、それぞれ前の足より高値で引けます | 非常に高い |
| 黒三兵 | 強い弱気 | 大きな赤色のローソク足が3本連続し、それぞれ前の足より安値で引けます | 非常に高い |
| 強気のはらみ線 | 反転の可能性 | 大きな赤色のローソク足の後に、その実体内に収まる小さな緑色のローソク足が続きます | 中程度(確認が必要) |
| 弱気のはらみ線 | 反転の可能性 | 大きな緑色のローソク足の後に、その実体内に収まる小さな赤色のローソク足が続きます | 中程度(確認が必要) |
| 毛抜き底 | 強気の反転 | サポートで安値が一致する2本のローソク足 | 高い |
| 毛抜き天井 | 弱気の反転 | レジスタンスで高値が一致する2本のローソク足 | 高い |
| 切り込み線 | 強気の反転 | 赤色のローソク足の後に、直前の安値より低く寄り付き、赤色のローソク足の実体の50%を超えて引ける緑色のローソク足が続きます | 中~高 |
| かぶせ線 | 弱気の反転 | 緑色のローソク足の後に、直前の高値より高く寄り付き、緑色のローソク足の実体の50%を下回って引ける赤色のローソク足が続きます | 中~高 |
3. リスク管理の計算式
ポジションサイジング(固定比率方式)
Position Size (shares) = Account Risk Amount / (Entry Price - Stop Loss Price)
Account Risk Amount = Portfolio Value * Risk Per Trade %
RULE: Never risk more than 1-2% of portfolio on a single trade.
Worked example:
Portfolio Value = $10,000
Risk Per Trade = 2% ($200)
Entry Price = $100.00
Stop Loss = $95.00 (based on 2x ATR below entry)
Risk per share = $100.00 - $95.00 = $5.00
Position Size = $200 / $5.00 = 40 shares
Position Value = 40 * $100 = $4,000 (40% of portfolio)
CONCENTRATION CHECK: If position value > 10% of portfolio, reduce size.
Adjusted: max position = $1,000 / $100 = 10 shares
Adjusted risk = 10 * $5.00 = $50 (only 0.5% of portfolio — acceptable)
ケリー基準(最適な賭け金のサイズ)
Kelly % = W - ((1 - W) / R)
Where:
W = win rate (decimal)
R = average win / average loss ratio (reward-to-risk)
Worked example:
Win rate: 60% (W = 0.60)
Average win: $300, Average loss: $200
R = 300 / 200 = 1.5
Kelly = 0.60 - (0.40 / 1.5) = 0.60 - 0.267 = 0.333 (33.3%)
Full Kelly is too aggressive for real trading. Use fractions:
Half-Kelly = 0.333 / 2 = 16.7% of portfolio per trade
Quarter-Kelly = 0.333 / 4 = 8.3% of portfolio per trade (recommended)
If Kelly is negative, the system has NEGATIVE expectancy — do not trade it.
バリュー・アット・リスク(VaR)
Parametric VaR = Portfolio Value * Portfolio Volatility * Z-score * sqrt(Time Horizon)
Z-scores: 90% confidence = 1.282
95% confidence = 1.645
99% confidence = 2.326
Worked example (daily VaR, 95% confidence):
Portfolio = $10,000
Daily volatility (stddev of daily returns) = 2.0%
VaR = $10,000 * 0.02 * 1.645 * sqrt(1) = $329.00
Meaning: 95% confident daily loss will not exceed $329.
Weekly VaR = $329 * sqrt(5) = $329 * 2.236 = $735.65
Monthly VaR = $329 * sqrt(21) = $329 * 4.583 = $1,507.81
シャープレシオ
Sharpe = (Rp - Rf) / StdDev(Rp) * sqrt(252)
Where:
Rp = mean daily portfolio return
Rf = daily risk-free rate (Treasury yield / 252)
StdDev(Rp) = standard deviation of daily returns
252 = trading days per year (annualization factor)
Worked example:
Mean daily return = 0.10% (0.001)
Annual Treasury yield = 5.0% -> daily Rf = 0.05/252 = 0.000198
StdDev of daily returns = 0.80% (0.008)
Daily Sharpe = (0.001 - 0.000198) / 0.008 = 0.100
Annualized Sharpe = 0.100 * sqrt(252) = 0.100 * 15.875 = 1.59
Ratings:
< 0.5 = Poor (not compensated for risk)
0.5-1.0 = Acceptable
1.0-2.0 = Good
2.0-3.0 = Very Good
> 3.0 = Excellent (verify — may indicate overfitting)
ソルティノレシオ(下方リスクのみ)
Sortino = (Rp - Rf) / DownsideDeviation * sqrt(252)
DownsideDeviation = sqrt(mean(min(Ri - Rf, 0)^2))
Better than Sharpe because it only penalizes downside volatility, not upside.
Sortino > 2.0 is considered very good.
最大ドローダウン
For each point t in equity curve:
Peak(t) = max(Equity[0..t])
Drawdown(t) = (Peak(t) - Equity(t)) / Peak(t) * 100%
MaxDrawdown = max(Drawdown(t)) for all t
Worked example:
Equity curve: $10,000 -> $12,000 -> $9,600 -> $11,500
Peak at $12,000
Drawdown at $9,600 = (12,000 - 9,600) / 12,000 = 20.0%
Max Drawdown = 20.0%
Recovery Factor = Total Net Profit / Max Drawdown
If total profit = $3,000, MaxDD = $2,400 -> RF = 3,000/2,400 = 1.25
Calmar Ratio = Annual Return / Max Drawdown
If annual return = 25%, MaxDD = 20% -> Calmar = 1.25 (target > 1.0)
プロフィットファクター
Profit Factor = Gross Winning Trades / Gross Losing Trades
Worked example:
10 winning trades totaling $5,000
8 losing trades totaling $3,200
Profit Factor = 5,000 / 3,200 = 1.5625
Ratings: < 1.0 = losing system, 1.0-1.5 = marginal, 1.5-2.0 = good,
2.0-3.0 = very good, > 3.0 = excellent (verify with enough trades)
1取引あたりの期待値
Expectancy = (Win% * AvgWin) - (Loss% * AvgLoss)
Worked example:
Win rate: 55%, Average win: $150, Average loss: $100
Expectancy = (0.55 * 150) - (0.45 * 100) = 82.50 - 45.00 = $37.50/trade
Over 100 trades: expected profit = $3,750
Minimum for a viable system: Expectancy > 0 with at least 30 sample trades.
リスク/リワード比率
R:R = (Target Price - Entry Price) / (Entry Price - Stop Loss Price)
Worked example:
Entry = $100, Stop = $95, Target = $112
R:R = (112 - 100) / (100 - 95) = 12 / 5 = 2.4:1
Minimum acceptable R:R = 1.5:1
With 40% win rate and 2:1 R:R: Expectancy = 0.40*2 - 0.60*1 = +0.20 (profitable!)
With 40% win rate and 1:1 R:R: Expectancy = 0.40*1 - 0.60*1 = -0.20 (losing!)
4. Alpaca Trading API リファレンス
認証
# Paper trading (ALWAYS start here)
BASE_URL="https://paper-api.alpaca.markets"
# Live trading (only after paper validation)
# BASE_URL="https://api.alpaca.markets"
# Data API (same for both paper and live)
DATA_URL="https://data.alpaca.markets"
# Auth headers (required on every request)
HEADERS="-H 'APCA-API-KEY-ID: $ALPACA_API_KEY' -H 'APCA-API-SECRET-KEY: $ALPACA_SECRET_KEY'"
口座情報
# Get account details
curl -s "$BASE_URL/v2/account" $HEADERS
# Key fields: id, status, equity, cash, buying_power, portfolio_value,
# pattern_day_trader (bool), daytrade_count, last_equity
現在のポジションを取得
# All positions
curl -s "$BASE_URL/v2/positions" $HEADERS
# Returns array: symbol, qty, side, avg_entry_price, current_price,
# unrealized_pl, unrealized_plpc, market_value, cost_basis
# Single position
curl -s "$BASE_URL/v2/positions/AAPL" $HEADERS
注文を出す
# Market order (fills immediately at best available price)
curl -s -X POST "$BASE_URL/v2/orders" $HEADERS \
-H "Content-Type: application/json" \
-d '{"symbol":"AAPL","qty":"10","side":"buy","type":"market","time_in_force":"day"}'
# Limit order (fills only at your price or better)
curl -s -X POST "$BASE_URL/v2/orders" $HEADERS \
-H "Content-Type: application/json" \
-d '{"symbol":"AAPL","qty":"10","side":"buy","type":"limit","time_in_force":"gtc","limit_price":"150.00"}'
# Stop order (triggers market order when stop price hit)
curl -s -X POST "$BASE_URL/v2/orders" $HEADERS \
-H "Content-Type: application/json" \
-d '{"symbol":"AAPL","qty":"10","side":"sell","type":"stop","time_in_force":"gtc","stop_price":"145.00"}'
# Stop-limit order (triggers limit order when stop price hit)
curl -s -X POST "$BASE_URL/v2/orders" $HEADERS \
-H "Content-Type: application/json" \
-d '{"symbol":"AAPL","qty":"10","side":"sell","type":"stop_limit","time_in_force":"gtc","stop_price":"145.00","limit_price":"144.50"}'
# Trailing stop (dynamic stop that trails price by dollar or percent amount)
curl -s -X POST "$BASE_URL/v2/orders" $HEADERS \
-H "Content-Type: application/json" \
-d '{"symbol":"AAPL","qty":"10","side":"sell","type":"trailing_stop","time_in_force":"gtc","trail_percent":"5"}'
# Bracket order (entry + stop loss + take profit as one atomic order)
curl -s -X POST "$BASE_URL/v2/orders" $HEADERS \
-H "Content-Type: application/json" \
-d '{
"symbol": "AAPL",
"qty": "10",
"side": "buy",
"type": "limit",
"time_in_force": "day",
"limit_price": "150.00",
"order_class": "bracket",
"stop_loss": {"stop_price": "145.00"},
"take_profit": {"limit_price": "165.00"}
}'
# OCO order (one-cancels-other: stop loss OR take profit, whichever hits first)
curl -s -X POST "$BASE_URL/v2/orders" $HEADERS \
-H "Content-Type: application/json" \
-d '{
"symbol": "AAPL",
"qty": "10",
"side": "sell",
"type": "limit",
"time_in_force": "gtc",
"limit_price": "165.00",
"order_class": "oco",
"stop_loss": {"stop_price": "145.00"}
}'
注文パラメーターのリファレンス:
| パラメーター | 値 | 備考 |
|---|---|---|
side | buy、sell | |
type | market、limit、stop、stop_limit、trailing_stop | |
time_in_force | day、gtc、ioc、fok | day = 終値でキャンセル、gtc = キャンセルされるまで有効 |
order_class | simple、bracket、oco、oto | bracket = エントリー + ストップ + 目標価格 |
qty | 数値の文字列 | 株式の場合は整数株 |
notional | 金額の文字列 | qty の代替(端株) |
注文を管理
# List open orders
curl -s "$BASE_URL/v2/orders?status=open" $HEADERS
# Get specific order
curl -s "$BASE_URL/v2/orders/{order_id}" $HEADERS
# Cancel specific order
curl -s -X DELETE "$BASE_URL/v2/orders/{order_id}" $HEADERS
# Cancel ALL open orders
curl -s -X DELETE "$BASE_URL/v2/orders" $HEADERS
ポジションを決済
# Close entire position in a symbol
curl -s -X DELETE "$BASE_URL/v2/positions/AAPL" $HEADERS
# Partially close (sell 5 of 10 shares)
curl -s -X DELETE "$BASE_URL/v2/positions/AAPL?qty=5" $HEADERS
# EMERGENCY: Close ALL positions
curl -s -X DELETE "$BASE_URL/v2/positions" $HEADERS
市場データ(Alpaca アカウントで無料)
# Latest quote (bid/ask)
curl -s "$DATA_URL/v2/stocks/AAPL/quotes/latest" $HEADERS
# Latest trade (last fill)
curl -s "$DATA_URL/v2/stocks/AAPL/trades/latest" $HEADERS
# Historical bars (OHLCV) — daily
curl -s "$DATA_URL/v2/stocks/AAPL/bars?timeframe=1Day&start=2024-01-01&limit=100" $HEADERS
# Intraday bars — 5-minute
curl -s "$DATA_URL/v2/stocks/AAPL/bars?timeframe=5Min&start=$(date -d 'today' +%Y-%m-%d)&limit=78" $HEADERS
# Multi-symbol snapshot
curl -s "$DATA_URL/v2/stocks/snapshots?symbols=AAPL,MSFT,GOOGL" $HEADERS
# Crypto bars
curl -s "$DATA_URL/v1beta3/crypto/us/bars?symbols=BTC/USD&timeframe=1Day&limit=30" $HEADERS
# Crypto latest quote
curl -s "$DATA_URL/v1beta3/crypto/us/latest/quotes?symbols=BTC/USD,ETH/USD" $HEADERS
市場の取引時間とカレンダー
# Is market open right now?
curl -s "$BASE_URL/v2/clock" $HEADERS
# Returns: timestamp, is_open (bool), next_open, next_close
# Upcoming market calendar
curl -s "$BASE_URL/v2/calendar?start=$(date +%Y-%m-%d)&end=$(date -d '+7 days' +%Y-%m-%d)" $HEADERS
暗号資産取引に関する注意事項
- シンボルはスラッシュ形式です:
BTC/USD、ETH/USD、SOL/USD、DOGE/USD - 24時間365日取引可能です(市場の取引時間による制限はありません)
- 端数数量を指定できます(例:BTC の場合は
"qty": "0.001") - ペーパートレードは実取引と同じように機能します
- 金額ベースの暗号資産注文には
notionalを使用します:"notional": "100.00"で100ドル分を購入します
口座の取引履歴と履歴情報
# Trade history
curl -s "$BASE_URL/v2/account/activities/FILL?after=2024-01-01" $HEADERS
# Portfolio history
curl -s "$BASE_URL/v2/account/portfolio/history?period=1M&timeframe=1D" $HEADERS
# Returns: timestamp[], equity[], profit_loss[], profit_loss_pct[]
5. 無料の金融データソース
価格データ(web_search + web_fetch 経由)
| ソース | URL パターン | 利用可能なデータ |
|---|---|---|
| Yahoo Finance | finance.yahoo.com/quote/AAPL | リアルタイム相場、チャート、財務情報、アナリスト評価 |
| Google Finance | google.com/finance/quote/AAPL:NASDAQ | 相場、ニュース、関連銘柄、決算情報 |
| CoinGecko | coingecko.com/en/coins/bitcoin | 暗号資産価格、時価総額、出来高、24時間の変動 |
| CoinMarketCap | coinmarketcap.com/currencies/bitcoin/ | 暗号資産価格、ランキング、ドミナンス、供給量 |
| MarketWatch | marketwatch.com/investing/stock/AAPL | 相場、ニュース、分析、オプションデータ |
| Finviz | finviz.com/quote.ashx?t=AAPL | テクニカルおよびファンダメンタルのスクリーナー、チャート |
| TradingView | tradingview.com/symbols/NASDAQ-AAPL/ | チャート、テクニカル分析、コミュニティのアイデア |
基本データ
| ソース | URL パターン | 利用可能なデータ |
|---|---|---|
| Macrotrends | macrotrends.net/stocks/charts/AAPL/apple/pe-ratio | P/E、売上高、利益率、過去のデータ |
| Simply Wall St | Web 検索:"AAPL simply wall st" | 視覚的なファンダメンタル分析、適正価値 |
| SEC EDGAR | sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=AAPL&type=10-K | 公式の10-K、10-Q、8-K提出書類 |
| Earnings Whispers | earningswhispers.com/stocks/AAPL | 決算予想、サプライズの履歴、カレンダー |
| Stock Analysis | stockanalysis.com/stocks/AAPL/financials/ | 見やすい財務諸表、各種比率 |
| Wisesheets | Web 検索:"AAPL income statement" | スプレッドシート形式の財務データ |
センチメントと代替データ
| ソース | URL | 利用可能なデータ |
|---|---|---|
| CNN Fear & Greed | money.cnn.com/data/fear-and-greed/ | 市場センチメント指数0~100(極度の恐怖から極度の強欲) |
| CBOE VIX | Web 検索:"VIX index today" | ボラティリティ指数(30超=恐怖、15未満=安心感) |
| Finviz Map | finviz.com/map.ashx | セクター/規模別の市場ヒートマップ |
| StockTwits | stocktwits.com/symbol/AAPL | ソーシャルセンチメント(強気/弱気の比率) |
| プット/コール比率 | Web 検索:"CBOE put call ratio today" | オプション市場のセンチメント(1.0超=弱気、0.7未満=強気) |
| 空売り残高 | finviz.com/quote.ashx?t=AAPL -> Short Float | 浮動株に占める空売りの割合 |
| インサイダー取引 | openinsider.com/screener | CEO/CFOの買い/売りの動向 |
マクロ経済データ
| ソース | URL | 利用可能なデータ |
|---|---|---|
| FRED | fred.stlouisfed.org | 金利、CPI、雇用、GDP、M2、イールドカーブ |
| Treasury.gov | treasury.gov/resource-center/data-chart-center/interest-rates/ | 日次の米国債イールドカーブ |
| CME FedWatch | Web 検索:"CME FedWatch tool" | FF金利の確率 |
| BLS | bls.gov/news.release/ | 雇用情勢、CPI、PPI |
| ISM | Web 検索:"ISM manufacturing PMI" | PMI(50超=拡大、50未満=縮小) |
| Conference Board | Web 検索:"consumer confidence index" | 消費者信頼感、先行指標 |
| 決算カレンダー | earningswhispers.com/calendar | 今後の決算発表日 |
| 経済カレンダー | Web 検索:"economic calendar this week" | 予定されている経済指標の発表 |
暗号資産固有の情報源
| ソース | URL | 利用可能なデータ |
|---|---|---|
| CoinGecko | coingecko.com | 価格、時価総額、取引量、DeFi TVL |
| DefiLlama | defillama.com | 全チェーンの預かり資産総額 |
| Glassnode(無料プラン) | Web 検索:"bitcoin on-chain metrics" | オンチェーン分析(NUPL、MVRV、取引所への資金流入出) |
| Bitcoin Fear & Greed | alternative.me/crypto/fear-and-greed-index/ | 暗号資産固有のセンチメント0~100 |
| Ultrasound Money | ultrasound.money | ETHの供給量/バーン指標 |
6. 確信度の較正ガイド(スーパー・フォーキャスティング)
較正の原則(Philip Tetlock)
- 「70%の確信度」の予測は、約70%の確率で的中するべきです
- 多くの人は自信過剰です。「90%」の予測が的中するのは、実際には約70%です
- 予測を体系的に記録し、予測頻度と実際の頻度を比較します
- 大幅にではなく、新たな証拠が得られるたびに少しずつ(2~5%)更新します
確信度レベルのガイド
| レベル | 意味 | 必要な証拠 | 取引アクション |
|---|---|---|---|
| 20-30% | わずかに傾いている | 弱いシグナルが1つ、データが限定的 | 取引しない — 優位性が不十分です |
| 40-50% | わずかな優位性のある五分五分 | シグナルが相反し、証拠は中程度 | 取引しない — コイントスと同程度です |
| 55-65% | 中程度の確信 | 複数のシグナルが一致し、過去の前例もある | 小さなポジション、広めのストップ |
| 70-80% | 強い確信 | 複数要因が強く一致し、カタリストを特定済み | 標準的なポジションサイズ |
| 85-95% | 非常に高い確信 | 圧倒的な証拠 — 自分を疑ってください | フルポジション。ただし、決して全額を投じないでください |
取引予測のブライアスコア
Brier Score = mean((predicted_probability - actual_outcome)^2)
actual_outcome: 1 if prediction was correct, 0 if wrong
Worked example (5 predictions):
Pred 1: 80% confident -> correct (1) -> (0.80 - 1)^2 = 0.04
Pred 2: 60% confident -> wrong (0) -> (0.60 - 0)^2 = 0.36
Pred 3: 70% confident -> correct (1) -> (0.70 - 1)^2 = 0.09
Pred 4: 90% confident -> correct (1) -> (0.90 - 1)^2 = 0.01
Pred 5: 55% confident -> wrong (0) -> (0.55 - 0)^2 = 0.30
Brier Score = (0.04 + 0.36 + 0.09 + 0.01 + 0.30) / 5 = 0.16
Ratings: 0.00 = perfect, < 0.15 = excellent, 0.15-0.25 = good,
0.25 = coin flip, > 0.25 = worse than random
キャリブレーションのセルフチェックプロトコル
20件以上の取引予測を蓄積したら、確信度の範囲ごとに分類します。
- 確信度60%の予測は、約60%の確率で的中していますか?
- 確信度60%の予測が80%の確率で的中している場合、自信が足りません。確信度を上げて調整します
- 確信度80%の予測が55%の確率でしか的中していない場合、自信過剰です。確信度を下げて調整します
- 的中結果が確定した予測が50件増えるごとに、確信度の尺度を再調整します
7. トレード心理と認知バイアス
注意すべきバイアス
| バイアス | 説明 | 軽減策 |
|---|---|---|
| 確証バイアス | 自分の仮説を裏付ける情報を探すこと | 常にまず反対の立場から検討します(敵対的な議論) |
| アンカリング | 最初に目にした数値(エントリー価格、アナリストの目標価格など)を過度に重視すること | 古い価格ではなく、ベースレートと現在のデータから分析を始めます |
| 直近バイアス | 最近の出来事(先週の暴落、先月の急騰など)を過度に重視すること | より長い期間で見ます。最低でも6か月と1年のチャートを確認します |
| 損失回避 | 含み損のあるポジションを長く持ち続け(「戻るはず」)、利益の出ているポジションを早く手放すこと | エントリー前に、機械的な損切り価格と利益確定目標を設定します |
| 過信 | 自分が実際以上に正しいと信じること | ブライアスコアを追跡し、ケリー比率を使い、1回の取引で2%を超える賭けは決してしません |
| 物語バイアス | 説得力のあるストーリーは良い取引につながると思い込むこと(多くの場合、誤りです) | 物語ではなく、定量データに注目します。「良い会社」≠「良い取引」です |
| FOMO | 乗り遅れることへの恐れから、焦ってエントリーすること | 計画した価格水準でのみエントリーします。市場は年間252日開いています |
| サンクコスト | 「これだけ損したのだから、今さら売れない」と考えること | その瞬間ごとに新たな判断をします。「現在の価格で、今この取引を始めるだろうか?」と自問します |
| 後知恵バイアス | 「こうなると分かっていた」と思い込むこと | 取引後ではなく、取引前に具体的な予測を記録します |
| ディスポジション効果 | 利益を「確定」するために勝ちポジションを早く売る一方、負けポジションを持ち続けること | 勝ちポジションは伸ばし(トレーリングストップを使います)、負けポジションは計画した損切り価格で手放します |
| ギャンブラーの誤謬 | 「5日連続で下落したのだから、必ず反発する」と考えること | 各日は独立しています。トレンドは反転するより継続することのほうが多くあります |
| 保有効果 | すでに保有しているポジションを過大評価すること | 今日ゼロから構築するつもりで、ポジションを評価します |
規律を守るためのルール
- すべての取引について、エントリー前に書面で計画を立てます。エントリー価格、損切り価格、目標価格、ポジションサイズ、投資仮説を記載します
- エントリー前に理由を書き留めます。優位性を説明できない場合は、取引しません
- 損切り価格は、注文を出す際に設定します。「頭の中で」決めるだけにしません
- 毎週、取引日誌を見直し、勝ち取引と負け取引の両方にパターンがないか確認します
- 大きな利益の後(過信のリスク)も、大きな損失の後(感情的になるリスク)も、休憩を取ります
- 当初の投資仮説で明確に計画していた場合を除き、損失が出ているポジションをナンピンしません
- 損切り価格をエントリー価格から遠ざける方向には決して動かしません(近づけるだけにし、広げません)
- 市場は明日もあります。取引を逃しても損失ではありませんが、口座を失うことは損失です
8. ポートフォリオの構築
資産配分のガイドライン
| スタイル | 株式 | 暗号資産 | 債券/現金 | 単一ポジションの最大比率 |
|---|---|---|---|---|
| 保守的 | 50-60% | 0-5% | 35-50% | 5% |
| 中程度 | 60-75% | 5-15% | 10-35% | 8% |
| 積極的 | 70-85% | 10-25% | 5-20% | 10% |
| 投機的 | 50-70% | 20-40% | 5-10% | 15%(厳格な損切りを設定) |
セクター分散
単一セクターへの配分は最大30%とします。
- テクノロジー、ヘルスケア、金融、一般消費財、生活必需品
- エネルギー、資本財・サービス、公益事業、不動産、素材、コミュニケーション・サービス
相関への配慮
相関性の高いポジションはリスクを増幅させます。追加する前に相関を確認してください。
| ペア | 一般的な相関 | リスク |
|---|---|---|
| AAPL + MSFT + GOOGL | 0.7-0.9 | 大型ハイテク株への集中 |
| BTC + ETH + SOL | 0.8-0.95 | 暗号資産への集中(一緒に値動きする) |
| SPY + QQQ | 0.9+ | ほぼ同一のエクスポージャー |
| 株式 + 債券 | -0.2 to 0.3 | 真の分散効果 |
| 金 + 株式 | -0.1 to 0.2 | 危機時のヘッジ |
| VIX + SPY | -0.8 | 逆相関 — ヘッジとしての VIX |
リバランスのルール
- カレンダー:四半期ごとにリバランスします(四半期の最初の取引日)
- しきい値:いずれかの配分が目標から 5% を超えて乖離したらリバランスします
- 税金への配慮:課税口座では、売却ではなく新たな拠出によるリバランスを優先します
9. クロスプラットフォームのコマンド
Windows(PowerShell / Git Bash)
# Python might be `python` not `python3` on Windows
python -c "import json; ..."
# Use forward slashes in file paths or escape backslashes
# curl is available via Git Bash, PowerShell, or WSL
# Check if market is open (Windows Git Bash)
curl -s "$BASE_URL/v2/clock" -H "APCA-API-KEY-ID: $ALPACA_API_KEY" \
-H "APCA-API-SECRET-KEY: $ALPACA_SECRET_KEY" | python -c "
import sys, json
d = json.load(sys.stdin)
print('OPEN' if d['is_open'] else 'CLOSED', '| Next:', d.get('next_open','') or d.get('next_close',''))
"
macOS / Linux
python3 -c "import json; ..."
# curl, jq typically available by default
# Use jq for JSON processing:
curl -s URL | jq '.equity'
jq を使わない JSON 処理
# Pretty-print JSON
python3 -c "import sys,json; print(json.dumps(json.load(sys.stdin),indent=2))" < file.json
# Extract specific field
curl -s URL | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['equity'])"
# Parse Alpaca positions into readable table
curl -s "$BASE_URL/v2/positions" $HEADERS | python3 -c "
import sys, json
positions = json.load(sys.stdin)
fmt = '{:<8} {:>6} {:>10} {:>10} {:>12} {:>8}'
print(fmt.format('Symbol','Qty','Entry','Current','P/L','P/L pct'))
print('-' * 60)
for p in positions:
print(fmt.format(p['symbol'], p['qty'], float(p['avg_entry_price']),
float(p['current_price']), float(p['unrealized_pl']),
round(float(p['unrealized_plpc'])*100,2)))
"
# Calculate RSI from historical bars
curl -s "$DATA_URL/v2/stocks/AAPL/bars?timeframe=1Day&limit=30" $HEADERS | python3 -c "
import sys, json
data = json.load(sys.stdin)
closes = [float(b['c']) for b in data['bars']]
changes = [closes[i]-closes[i-1] for i in range(1, len(closes))]
gains = [max(c,0) for c in changes[-14:]]
losses = [abs(min(c,0)) for c in changes[-14:]]
avg_gain = sum(gains)/14
avg_loss = sum(losses)/14
rs = avg_gain/avg_loss if avg_loss > 0 else 999
rsi = 100 - (100/(1+rs))
print(f'RSI(14) = {rsi:.1f}')
"
10. 取引前チェックリスト
すべての取引の前に、以下の項目をすべて確認してください。
PRE-TRADE CHECKLIST
====================
[ ] 1. TREND: What is the higher-timeframe trend? (Daily chart 200 SMA)
- Trading WITH the trend? (preferred)
- Counter-trend? (requires stronger signal + tighter stops)
[ ] 2. SIGNAL: What specific setup triggered this trade?
- Indicator signal (RSI, MACD, etc.)
- Pattern (candlestick, chart pattern)
- Catalyst (earnings, news, sector rotation)
[ ] 3. ENTRY: Exact entry price or condition
- Limit order at specific level? Market order on breakout?
[ ] 4. STOP LOSS: Exact stop price
- Based on ATR (2-3x ATR from entry)
- Below key support (long) or above key resistance (short)
- NEVER wider than 2% of portfolio
[ ] 5. TARGET: Exact take-profit price
- Risk/Reward at least 1.5:1 (preferably 2:1+)
- At logical resistance (long) or support (short)
[ ] 6. POSITION SIZE: Calculated from risk management rules
- Risk amount = Portfolio * 1-2%
- Shares = Risk amount / (Entry - Stop)
- Total position < 10% of portfolio
[ ] 7. CORRELATION CHECK: Does this overlap with existing positions?
- Not adding to concentrated sector exposure
- Total portfolio heat (sum of open risk) < 6%
[ ] 8. CATALYST CHECK: Any upcoming events that could gap through stops?
- Earnings date? Fed meeting? CPI release?
- If yes: reduce size or wait until after event
[ ] 9. MARKET CONTEXT: Is the overall market favorable?
- Fear & Greed index level
- VIX level (>30 = caution, <15 = complacency risk)
- Market trend (SPY vs 200 SMA)
[ ] 10. CONFIDENCE: Rate 1-10 honestly
- Below 6? Skip the trade
- Record confidence for calibration tracking
11. 取引ジャーナルのテンプレート
{
"trade_id": "T001",
"date_opened": "2025-01-15",
"date_closed": null,
"symbol": "AAPL",
"side": "long",
"entry_price": 150.00,
"stop_loss": 145.00,
"target": 162.00,
"position_size": 40,
"risk_amount": 200.00,
"risk_reward": 2.4,
"setup": "Bullish engulfing at 50 EMA + RSI divergence",
"confidence": 7,
"market_context": "SPY above 200 SMA, VIX at 18, F&G neutral (52)",
"pre_trade_thesis": "AAPL pulled back to 50 EMA support, RSI showing bullish divergence, earnings in 3 weeks should provide catalyst. Sector (tech) is leading.",
"result": {
"exit_price": null,
"exit_reason": null,
"pnl": null,
"pnl_percent": null,
"held_days": null,
"lessons": null
}
}
追跡と調整レビューのため、memory_store を使用して取引ジャーナルを保存してください。
コメント
Markdown 対応