Libraryless. Click here for Pure Java version (11485L/65K).
1 | interface IFuturesMarket {
|
2 | // all open/close orders are market right now (not limit) |
3 | |
4 | sclass OpenOrCloseOrder {
|
5 | // input parameters |
6 | |
7 | settable S clientOrderID; // optional |
8 | |
9 | settable HoldSide holdSide; |
10 | settable double cryptoAmount; |
11 | |
12 | settable double leverage = 1; |
13 | |
14 | // Limit order if set. Otherwise market order. |
15 | // Limit orders are good-until-cancel. |
16 | // (unimplemented) |
17 | settable double limitPrice = Double.NaN; |
18 | |
19 | // output parameters |
20 | |
21 | // order ID returned by platform |
22 | settable S orderID; |
23 | } |
24 | |
25 | macro ExtendingOpenOrCloseOrder {
|
26 | public selfType clientOrderID(S clientOrderID) { super.clientOrderID(clientOrderID); this; }
|
27 | public selfType holdSide(HoldSide holdSide) { super.holdSide(holdSide); this; }
|
28 | public selfType cryptoAmount(double cryptoAmount) { super.cryptoAmount(cryptoAmount); this; }
|
29 | public selfType leverage(double leverage) { super.leverage(leverage); this; }
|
30 | public selfType limitPrice(double limitPrice) { super.limitPrice(limitPrice); this; }
|
31 | } |
32 | |
33 | sclass OpenOrder extends OpenOrCloseOrder {
|
34 | ExtendingOpenOrCloseOrder |
35 | settable bool isCross; |
36 | |
37 | settable double takeProfitPrice = Double.NaN; |
38 | settable double stopLossPrice = Double.NaN; |
39 | } |
40 | |
41 | sclass CloseOrder extends OpenOrCloseOrder {
|
42 | ExtendingOpenOrCloseOrder |
43 | } |
44 | |
45 | // throws exception if order failed |
46 | void openPosition(OpenOrder order); |
47 | |
48 | // throws exception if order failed |
49 | void closePosition(CloseOrder order); |
50 | |
51 | sclass SwappableImplementation is IFuturesMarket {
|
52 | public swappable void openPosition(OpenOrder order) {}
|
53 | public swappable void closePosition(CloseOrder order) {}
|
54 | public swappable double drift() { unimplemented(); }
|
55 | public swappable FutureCoinParameters getCoinParameters() { unimplemented(); }
|
56 | public swappable bool anyOpenPositions() { unimplemented(); }
|
57 | public swappable void cancelOrder(S orderID) { unimplemented(); }
|
58 | } |
59 | |
60 | // Get current drift (sum of longs+shorts in crypto units) |
61 | double drift(); |
62 | |
63 | FutureCoinParameters getCoinParameters(); |
64 | |
65 | bool anyOpenPositions(); |
66 | |
67 | void cancelOrder(S orderID); |
68 | } |
download show line numbers debug dex old transpilations
Travelled to 2 computer(s): elmgxqgtpvxh, mqqgnosmbjvj
| ID | Author/Program | Comment | Date |
|---|---|---|---|
| 2855 | wumrlvwz | @@z1N8C | 2026-03-13 20:19:39 |
| 2854 | wumrlvwz | 555????%2527%2522\'\" | 2026-03-13 20:19:39 |
| 2853 | wumrlvwz | 555'" | 2026-03-13 20:19:39 |
| 2852 | wumrlvwz | 555 | 2026-03-13 20:19:38 |
| 2851 | wumrlvwz | 555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' | 2026-03-13 20:19:38 |
| 2850 | wumrlvwz | 555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15) | 2026-03-13 20:19:34 |
| 2849 | wumrlvwz | 5551RefiNBT')) OR 107=(SELECT 107 FROM PG_SLEEP(15))-- | 2026-03-13 20:19:32 |
| 2848 | wumrlvwz | 5556isrRJIQ') OR 827=(SELECT 827 FROM PG_SLEEP(15))-- | 2026-03-13 20:19:29 |
| 2847 | wumrlvwz | 555EyINkYnK' OR 198=(SELECT 198 FROM PG_SLEEP(15))-- | 2026-03-13 20:19:27 |
| 2846 | wumrlvwz | 555-1)) OR 564=(SELECT 564 FROM PG_SLEEP(15))-- | 2026-03-13 20:19:25 |
| 2845 | wumrlvwz | 555-1) OR 879=(SELECT 879 FROM PG_SLEEP(15))-- | 2026-03-13 20:19:23 |
| 2844 | wumrlvwz | 555-1 OR 273=(SELECT 273 FROM PG_SLEEP(15))-- | 2026-03-13 20:19:22 |
| 2843 | wumrlvwz | 555iRDNIXUE'; waitfor delay '0:0:15' -- | 2026-03-13 20:19:18 |
| 2842 | wumrlvwz | 555-1 waitfor delay '0:0:15' -- | 2026-03-13 20:19:15 |
| 2841 | wumrlvwz | 555-1); waitfor delay '0:0:15' -- | 2026-03-13 20:19:13 |
| 2840 | wumrlvwz | 555-1; waitfor delay '0:0:15' -- | 2026-03-13 20:19:10 |
| 2839 | wumrlvwz | (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/ | 2026-03-13 20:19:07 |
| 2838 | wumrlvwz | 5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z | 2026-03-13 20:19:05 |
| 2837 | wumrlvwz | 5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z | 2026-03-13 20:19:02 |
| 2836 | wumrlvwz | 555*if(now()=sysdate(),sleep(15),0) | 2026-03-13 20:19:00 |
| 2835 | wumrlvwz | -1" OR 2+125-125-1=0+0+0+1 -- | 2026-03-13 20:18:58 |
| 2834 | wumrlvwz | -1' OR 2+528-528-1=0+0+0+1 or 'wCqIgVhN'=' | 2026-03-13 20:18:58 |
| 2833 | wumrlvwz | -1' OR 2+880-880-1=0+0+0+1 -- | 2026-03-13 20:18:57 |
| 2832 | wumrlvwz | -1 OR 2+356-356-1=0+0+0+1 | 2026-03-13 20:18:57 |
| 2831 | wumrlvwz | -1 OR 2+379-379-1=0+0+0+1 -- | 2026-03-13 20:18:57 |
| 2830 | wumrlvwz | 555 | 2026-03-13 20:18:57 |
| 2829 | wumrlvwz | 555 | 2026-03-13 20:18:55 |
| 2828 | wumrlvwz | 555 | 2026-03-13 20:18:54 |
| 2827 | wumrlvwz | 555 | 2026-03-13 20:18:53 |
| 2826 | wumrlvwz | 555 | 2026-03-13 20:18:53 |
| 2824 | wumrlvwz | 555 | 2026-03-13 20:18:53 |
| 2822 | wumrlvwz | 555 | 2026-03-13 20:18:53 |
| 2821 | wumrlvwz | 555 | 2026-03-13 20:18:50 |
| 2818 | wumrlvwz | 555 | 2026-03-13 20:18:39 |
| 2815 | wumrlvwz | 555 | 2026-03-13 20:18:34 |
| 2814 | wumrlvwz | 555 | 2026-03-13 20:18:29 |
| 2809 | wumrlvwz | 555 | 2026-03-13 20:18:25 |
| 2807 | wumrlvwz | 555 | 2026-03-13 20:18:22 |
| 2805 | wumrlvwz | 555 | 2026-03-13 20:18:19 |
| 2803 | wumrlvwz | 555 | 2026-03-13 20:18:14 |
| 2801 | wumrlvwz | 555 | 2026-03-13 20:18:11 |
| 2800 | wumrlvwz | 555 | 2026-03-13 20:18:11 |
| 2799 | wumrlvwz | 555 | 2026-03-13 20:18:11 |
| 2798 | wumrlvwz | 555 | 2026-03-13 20:18:11 |
| 2797 | wumrlvwz | 555 | 2026-03-13 20:18:10 |
| 2796 | wumrlvwz | 555 | 2026-03-13 20:18:10 |
| 2794 | wumrlvwz | 555 | 2026-03-13 20:18:07 |
| 2764 | wumrlvwz | 1 | 2026-03-13 20:17:30 |
| 2763 | wumrlvwz | 1 | 2026-03-13 20:17:30 |
| 2762 | wumrlvwz | 1 | 2026-03-13 20:17:29 |
| 2761 | wumrlvwz | 1 | 2026-03-13 20:17:29 |
| 2760 | wumrlvwz | 1 | 2026-03-13 20:17:29 |
| 2757 | wumrlvwz | 1 | 2026-03-13 20:17:28 |
| 2754 | wumrlvwz | 1 | 2026-03-13 20:17:26 |
| 2751 | wumrlvwz | 1 | 2026-03-13 20:17:23 |
| 2748 | wumrlvwz | 555 | 2026-03-13 20:17:20 |
| 2747 | wumrlvwz | 1 | 2026-03-13 20:17:20 |
| 2744 | wumrlvwz | 1 | 2026-03-13 20:17:18 |
| 2741 | wumrlvwz | 1 | 2026-03-13 20:17:16 |
| 2738 | wumrlvwz | 1 | 2026-03-13 20:17:14 |
| 2735 | wumrlvwz | 1 | 2026-03-13 20:17:12 |
| 2732 | wumrlvwz | 1 | 2026-03-13 20:17:10 |
| 2729 | wumrlvwz | 1 | 2026-03-13 20:17:08 |
| 2727 | wumrlvwz | 1 | 2026-03-13 20:17:05 |
| 2722 | wumrlvwz | 1 | 2026-03-13 20:17:03 |
| 2712 | wumrlvwz | 1 | 2026-03-13 20:16:55 |
| 2707 | wumrlvwz | 1 | 2026-03-13 20:16:44 |
| 2700 | wumrlvwz | 1 | 2026-03-13 20:16:42 |
| 2694 | wumrlvwz | 1 | 2026-03-13 20:16:40 |
| 2693 | wumrlvwz | 1 | 2026-03-13 20:16:40 |
| 2692 | wumrlvwz | 1 | 2026-03-13 20:16:40 |
| 2691 | wumrlvwz | 1 | 2026-03-13 20:16:40 |
| 2690 | wumrlvwz | 1 | 2026-03-13 20:16:40 |
| 2689 | wumrlvwz | 1 | 2026-03-13 20:16:40 |
| 2682 | wumrlvwz | 1 | 2026-03-13 20:16:39 |
| 2679 | wumrlvwz | @@O9GNi | 2026-03-13 20:16:37 |
| 2678 | wumrlvwz | 1????%2527%2522\'\" | 2026-03-13 20:16:37 |
| 2677 | wumrlvwz | 1'" | 2026-03-13 20:16:37 |
| 2676 | wumrlvwz | 1 | 2026-03-13 20:16:37 |
| 2675 | wumrlvwz | 1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' | 2026-03-13 20:16:37 |
| 2672 | wumrlvwz | 1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15) | 2026-03-13 20:16:35 |
| 2669 | wumrlvwz | 1zw6Ejd4t')) OR 353=(SELECT 353 FROM PG_SLEEP(15))-- | 2026-03-13 20:16:34 |
| 2666 | wumrlvwz | 1RXrjtBf6') OR 837=(SELECT 837 FROM PG_SLEEP(15))-- | 2026-03-13 20:16:32 |
| 2663 | wumrlvwz | 1qssPXHRC' OR 608=(SELECT 608 FROM PG_SLEEP(15))-- | 2026-03-13 20:16:31 |
| 2660 | wumrlvwz | 1-1)) OR 349=(SELECT 349 FROM PG_SLEEP(15))-- | 2026-03-13 20:16:29 |
| 2657 | wumrlvwz | 1-1) OR 902=(SELECT 902 FROM PG_SLEEP(15))-- | 2026-03-13 20:16:28 |
| 2654 | wumrlvwz | 1-1 OR 557=(SELECT 557 FROM PG_SLEEP(15))-- | 2026-03-13 20:16:26 |
| 2651 | wumrlvwz | 1ys4Lmozq'; waitfor delay '0:0:15' -- | 2026-03-13 20:16:25 |
| 2648 | wumrlvwz | 1-1 waitfor delay '0:0:15' -- | 2026-03-13 20:16:23 |
| 2646 | wumrlvwz | 1-1); waitfor delay '0:0:15' -- | 2026-03-13 20:16:22 |
| 2643 | wumrlvwz | 1-1; waitfor delay '0:0:15' -- | 2026-03-13 20:16:20 |
| 2640 | wumrlvwz | (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/ | 2026-03-13 20:16:19 |
| 2637 | wumrlvwz | 10"XOR(1*if(now()=sysdate(),sleep(15),0))XOR"Z | 2026-03-13 20:16:18 |
| 2628 | wumrlvwz | 10'XOR(1*if(now()=sysdate(),sleep(15),0))XOR'Z | 2026-03-13 20:16:16 |
| 2620 | wumrlvwz | 1*if(now()=sysdate(),sleep(15),0) | 2026-03-13 20:16:14 |
| 2609 | wumrlvwz | -1" OR 2+499-499-1=0+0+0+1 -- | 2026-03-13 20:16:13 |
| 2608 | wumrlvwz | -1' OR 2+315-315-1=0+0+0+1 or 'QLzYMnbL'=' | 2026-03-13 20:16:13 |
| 2607 | wumrlvwz | -1' OR 2+552-552-1=0+0+0+1 -- | 2026-03-13 20:16:13 |
| 2605 | wumrlvwz | -1 OR 2+975-975-1=0+0+0+1 | 2026-03-13 20:16:12 |
| 2603 | wumrlvwz | -1 OR 2+634-634-1=0+0+0+1 -- | 2026-03-13 20:16:12 |
| 2601 | wumrlvwz | 1 | 2026-03-13 20:16:12 |
| 2595 | wumrlvwz | 1 | 2026-03-13 20:16:11 |
| 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: | 2203 / 2499 |
| Version history: | 22 change(s) |
| Referenced in: | [show references] |