Libraryless. Click here for Pure Java version (11485L/65K).
interface IFuturesMarket { // all open/close orders are market right now (not limit) sclass OpenOrCloseOrder { // input parameters settable S clientOrderID; // optional settable HoldSide holdSide; settable double cryptoAmount; settable double leverage = 1; // Limit order if set. Otherwise market order. // Limit orders are good-until-cancel. // (unimplemented) settable double limitPrice = Double.NaN; // output parameters // order ID returned by platform settable S orderID; } macro ExtendingOpenOrCloseOrder { public selfType clientOrderID(S clientOrderID) { super.clientOrderID(clientOrderID); this; } public selfType holdSide(HoldSide holdSide) { super.holdSide(holdSide); this; } public selfType cryptoAmount(double cryptoAmount) { super.cryptoAmount(cryptoAmount); this; } public selfType leverage(double leverage) { super.leverage(leverage); this; } public selfType limitPrice(double limitPrice) { super.limitPrice(limitPrice); this; } } sclass OpenOrder extends OpenOrCloseOrder { ExtendingOpenOrCloseOrder settable bool isCross; settable double takeProfitPrice = Double.NaN; settable double stopLossPrice = Double.NaN; } sclass CloseOrder extends OpenOrCloseOrder { ExtendingOpenOrCloseOrder } // throws exception if order failed void openPosition(OpenOrder order); // throws exception if order failed void closePosition(CloseOrder order); sclass SwappableImplementation is IFuturesMarket { public swappable void openPosition(OpenOrder order) {} public swappable void closePosition(CloseOrder order) {} public swappable double drift() { unimplemented(); } public swappable FutureCoinParameters getCoinParameters() { unimplemented(); } public swappable bool anyOpenPositions() { unimplemented(); } public swappable void cancelOrder(S orderID) { unimplemented(); } } // Get current drift (sum of longs+shorts in crypto units) double drift(); FutureCoinParameters getCoinParameters(); bool anyOpenPositions(); void cancelOrder(S orderID); }
download show line numbers debug dex old transpilations
Travelled to 2 computer(s): elmgxqgtpvxh, mqqgnosmbjvj
102 comment(s) hidden. show
| Snippet ID: | #1036219 |
| Snippet name: | IFuturesMarket - interface to a single market (e.g. ETHUSDT) |
| Eternal ID of this version: | #1036219/23 |
| Text MD5: | 628e55ba4980216df1dc5b890ae7e2a0 |
| Transpilation MD5: | 8e02e6b2340ead5a0f66d4df4f05c420 |
| Author: | stefan |
| Category: | javax / trading |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2026-02-15 14:15:07 |
| Source code size: | 2234 bytes / 68 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 2202 / 2496 |
| Version history: | 22 change(s) |
| Referenced in: | [show references] |