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

65
LINES

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

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

Transpiled version (11476L) is out of date.

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  
  }
58  
  
59  
  // Get current drift (sum of longs+shorts in crypto units)
60  
  double drift();
61  
  
62  
  FutureCoinParameters getCoinParameters();
63  
  
64  
  bool anyOpenPositions();
65  
}

download  show line numbers  debug dex  old transpilations   

Travelled to 2 computer(s): elmgxqgtpvxh, mqqgnosmbjvj

No comments. add comment

Snippet ID: #1036219
Snippet name: IFuturesMarket - interface to a single market (e.g. ETHUSDT)
Eternal ID of this version: #1036219/22
Text MD5: b3cb6d0b096ce7c03302718a163a2904
Author: stefan
Category: javax / trading
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2024-07-07 06:23:36
Source code size: 2127 bytes / 65 lines
Pitched / IR pitched: No / No
Views / Downloads: 1320 / 1477
Version history: 21 change(s)
Referenced in: [show references]