Fetch the latest rule-generated candidates for logging and research. Provider availability and source freshness can vary.
Reference the action with your pair, timeframe, and confidence threshold.
Uses curl + python3 (pre-installed on runners) to query the TradeClaw API. Zero dependencies.
signal_found, signal_direction, signal_confidence, and signal_json are available as step outputs.
Add to any workflow file in .github/workflows/:
- uses: naimkatiman/tradeclaw/packages/tradeclaw-action@main
id: signal
with:
pair: BTCUSD
timeframe: H1Poll on a schedule and post a best-effort notification when a matching scored candidate is returned.
name: BTC Sell Alert
on:
schedule:
- cron: '0 */4 * * *'
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: naimkatiman/tradeclaw/packages/tradeclaw-action@main
id: signal
with:
pair: BTCUSD
direction: SELL
min_confidence: 80
- name: Send Slack alert
if: steps.signal.outputs.signal_found == 'true'
run: |
curl -X POST "$SLACK_WEBHOOK" -d "{
\"text\": \"BTC SELL @ ${{ steps.signal.outputs.signal_confidence }}%\"
}"Record a candidate in a manually triggered workflow without tying software deployment to a market score.
name: Signal Snapshot
on: workflow_dispatch
jobs:
snapshot:
runs-on: ubuntu-latest
steps:
- uses: naimkatiman/tradeclaw/packages/tradeclaw-action@main
id: signal
with:
pair: BTCUSD
direction: BUY
min_confidence: 70
- name: Record candidate
run: echo "Signal candidate archived for research; not a deployment gate."Hourly signal check that appends returned research candidates to a file; it does not simulate fills.
name: Candidate Log
on:
schedule:
- cron: '0 * * * *'
jobs:
trade:
runs-on: ubuntu-latest
steps:
- uses: naimkatiman/tradeclaw/packages/tradeclaw-action@main
id: signal
with:
pair: ETHUSD
timeframe: H4
min_confidence: 75
- name: Append candidate
if: steps.signal.outputs.signal_found == 'true'
run: |
echo "Candidate ${{ steps.signal.outputs.signal_direction }} ETH"
echo "${{ steps.signal.outputs.signal_json }}" >> signal-candidates.logMatrix strategy scanning 3 pairs and writing a job summary.
name: Daily Signal Report
on:
schedule:
- cron: '0 8 * * *'
jobs:
report:
runs-on: ubuntu-latest
strategy:
matrix:
pair: [BTCUSD, ETHUSD, XAUUSD]
steps:
- uses: naimkatiman/tradeclaw/packages/tradeclaw-action@main
id: signal
with:
pair: ${{ matrix.pair }}
timeframe: D1
- name: Write summary
run: |
echo "### ${{ matrix.pair }}" >> $GITHUB_STEP_SUMMARY
echo "- Direction: ${{ steps.signal.outputs.signal_direction }}" >> $GITHUB_STEP_SUMMARY
echo "- Confidence: ${{ steps.signal.outputs.signal_confidence }}%" >> $GITHUB_STEP_SUMMARY| Input | Default | Description |
|---|---|---|
| pair | BTCUSD | Trading pair (BTCUSD, ETHUSD, XAUUSD, ...) |
| timeframe | H1 | Signal timeframe (H1, H4, D1) |
| direction | ALL | Filter by direction (BUY, SELL, ALL) |
| min_confidence | 70 | Minimum mechanical rule score (0-100; not a probability) |
| base_url | https://tradeclaw.win | TradeClaw instance URL |
| Output | Description |
|---|---|
| signal_found | Whether a matching signal was found (true/false) |
| signal_direction | Signal direction (BUY or SELL) |
| signal_confidence | Mechanical rule score (0-100; not a calibrated probability) |
| signal_json | Full signal JSON payload |
Composite action using curl + python3 — no node_modules
Filter returned candidates by direction or mechanical score
Signal report in your Actions run UI via GITHUB_STEP_SUMMARY
Cron-based multi-pair signal monitoring
Point base_url to your own TradeClaw instance
Scan multiple pairs in parallel with matrix strategy
The action source and inputs live in this repository. Public-instance availability is not guaranteed; self-hosted instances can be configured with base_url.