keyboard shortcuts for trading
Re: keyboard shortcuts for trading
+1.
Definitely should be an integral part of the application, as in any other trading platform.
Definitely should be an integral part of the application, as in any other trading platform.
-
- Posts: 21
- Joined: Wed Aug 04, 2021 11:52 am
- Been thanked: 8 times
Re: keyboard shortcuts for trading
Hi,
Hotkeys are available in 7.3 now, you can set different shortcuts or use the default. Go to Setting -> Keyboard shortcuts -> Instruments Trading.
Hotkeys are available in 7.3 now, you can set different shortcuts or use the default. Go to Setting -> Keyboard shortcuts -> Instruments Trading.
-
- Posts: 1
- Joined: Thu Nov 25, 2021 12:14 pm
Re: keyboard shortcuts for trading
AndreyR wrote: ↑Thu Aug 08, 2019 5:49 amHi all,
you may want to implement these features yourself.
Use Simplified interface, create a KeyEventDispatcher object and assign keys to desired actions.
Here's an example:
Code: Select all
package com.bookmap.api.simple.simplified; import java.awt.KeyEventDispatcher; import java.awt.KeyboardFocusManager; import java.awt.event.KeyEvent; import java.util.ArrayList; import java.util.List; import velox.api.layer1.annotations.Layer1ApiVersion; import velox.api.layer1.annotations.Layer1ApiVersionValue; import velox.api.layer1.annotations.Layer1SimpleAttachable; import velox.api.layer1.annotations.Layer1StrategyName; import velox.api.layer1.annotations.Layer1TradingStrategy; import velox.api.layer1.common.Log; import velox.api.layer1.data.ExecutionInfo; import velox.api.layer1.data.InstrumentInfo; import velox.api.layer1.data.OrderInfoUpdate; import velox.api.layer1.simplified.Api; import velox.api.layer1.simplified.CustomModule; import velox.api.layer1.simplified.OrdersListener; import velox.api.layer1.simplified.InitialState; import velox.api.layer1.data.OrderSendParameters; import velox.api.layer1.data.SimpleOrderSendParametersBuilder; @Layer1SimpleAttachable @Layer1StrategyName("Send Order By Key") @Layer1ApiVersion(Layer1ApiVersionValue.VERSION1) @Layer1TradingStrategy public class SendOrderByKey implements CustomModule, OrdersListener { Api api; private String alias; private KeyEventDispatcher customDispatcher; List<OrderInfoUpdate> list = new ArrayList<>(); String orderAliasTarget; String orderAliasStop; int updateCount; @Override public void initialize(String alias, InstrumentInfo info, Api api, InitialState initialState) { this.alias = alias; this.api = api; listenForKey(); } @Override public void stop() { KeyboardFocusManager.getCurrentKeyboardFocusManager().removeKeyEventDispatcher(customDispatcher); } private void sendMarketOrber (boolean isBuy ) { if (isBuy) { SimpleOrderSendParametersBuilder shortOrderSendParameters = new SimpleOrderSendParametersBuilder (alias, false, 1); shortOrderSendParameters.setSize(10); shortOrderSendParameters.setBuy(isBuy); OrderSendParameters shortOrder = shortOrderSendParameters.build(); api.sendOrder(shortOrder); } else { SimpleOrderSendParametersBuilder OrderSendParameters = new SimpleOrderSendParametersBuilder (alias, false, 1); OrderSendParameters.setLimitPrice(6300); OrderSendParameters.setSize(10); OrderSendParameters.setBuy(isBuy); OrderSendParameters.setTakeProfitOffset(5); OrderSendParameters.setStopLossOffset(6); OrderSendParameters.setStopLossClientId(isBuy?"longStop":"shortStop"); OrderSendParameters.setTakeProfitClientId(isBuy?"longTarget":"shortTarget"); OrderSendParameters orderParam = OrderSendParameters.build(); orderAliasStop = OrderSendParameters.getStopLossClientId(); orderAliasTarget= OrderSendParameters.getTakeProfitClientId(); api.sendOrder(orderParam); } } private void listenForKey() { customDispatcher = new KeyEventDispatcher() { @Override public boolean dispatchKeyEvent(KeyEvent e) { switch (e.getID()) { case KeyEvent.KEY_PRESSED: if (e.getKeyChar() == 'b') { sendMarketOrber(true); } if (e.getKeyChar() == 's') { sendMarketOrber(false); } break; case KeyEvent.KEY_RELEASED: break; case KeyEvent.KEY_TYPED: break; } return false; } }; KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(customDispatcher); } @Override public void onOrderUpdated(OrderInfoUpdate orderInfoUpdate) { list.add(orderInfoUpdate); Log.info("UPDATE " + updateCount++); } @Override public void onOrderExecuted(ExecutionInfo executionInfo) { // TODO Auto-generated method stub } }
Hi AndryR, did you make it work with DxFeed?
I'm getting the following error: Most of the API Modules are not allowed for this instrument. On DXFeed you can check "This is a demo account" in connection configuration to use this strategy with delayed data
-
- Posts: 549
- Joined: Mon Jul 09, 2018 11:18 am
- Has thanked: 25 times
- Been thanked: 85 times
Re: keyboard shortcuts for trading
Hi, sorry for replying so late. DxFeed puts some limitations on running modules. Please contact support for more information.