Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

68
LINES

< > BotCompany Repo | #1036219 // IFuturesMarket - interface to a single market (e.g. ETHUSDT)

JavaX fragment (include) [tags: use-pretranspiled]

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

Comments [hide]

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

add comment

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: 2201 / 2495
Version history: 22 change(s)
Referenced in: [show references]