summaryrefslogtreecommitdiff
path: root/scripts/preview-order.scm
diff options
context:
space:
mode:
authorDan Rostovtsev <dan@rostovtsev.org>2026-04-06 15:48:14 -0400
committerDan Rostovtsev <dan@rostovtsev.org>2026-04-06 15:48:14 -0400
commit0716a22d1fab76a18606ec031d33914ccbc56633 (patch)
treed63cc7ee4fd73bac935a776d09dc0ec78c8335e2 /scripts/preview-order.scm
parent2c6cf786c151118232533a6cfbc769ce1514aa9e (diff)
First working IBKR API implementation.HEADmain
* doc/ibkr.org: Docs for using the IBKR API. * manifest.scm: Guix Manifest of all project dependencies. * scripts/run-gateway.bash: A script for building and deploying the IBKR Client Gateway. * src/ibkr/api.scm: Support for specific endpoints, and generic tools for using the IBKR API. * src/ibkr/types.scm: Basic types for the IBKR endpoints. Orders, positions, securities, etc. * test/*.json: IBKR response and request examples for testing. * test/api.scm: Response handling and endpoint construction. * test/types.scm: Tests JSON parsing of IBKR requests and responses.
Diffstat (limited to 'scripts/preview-order.scm')
-rw-r--r--scripts/preview-order.scm17
1 files changed, 17 insertions, 0 deletions
diff --git a/scripts/preview-order.scm b/scripts/preview-order.scm
new file mode 100644
index 0000000..5550a88
--- /dev/null
+++ b/scripts/preview-order.scm
@@ -0,0 +1,17 @@
+(use-modules (ibkr api) (ibkr types) (ice-9 format))
+(define base "http://localhost:5000")
+
+(format #t "auth-status=~a\n" (auth-status base))
+(define accts (accounts base))
+(format #t "accounts=~a\n" accts)
+(define acct-id (account-id (car accts)))
+(format #t "positions=~a\n" (positions base acct-id))
+(format #t "ledger=~a\n" (ledger base acct-id "USD"))
+(format #t "stocks-by-symbol(IBKR)=~a\n" (stocks-by-symbol base "IBKR"))
+(define ibkr-id (contract-id (contract-for-stock-ticker base "IBKR" "NASDAQ")))
+(format #t "contract-id(IBKR)=~a\n" ibkr-id)
+(format #t "last-trade=~a\n" (contract-snapshot base ibkr-id 'last-trade))
+(define order (make-order acct-id ibkr-id "MARKET" "BUY" "IOC" 100.0))
+(format #t "order=~a\n" order)
+(format #t "order-json=\"[~a]\"\n" (order->json order))
+(format #t "order-preview=~a\n" (order-preview base acct-id order))