I was searching the forum, and the demo for how to send an order. I also reviewed the adapter for Bitmex looking for clues. I can see the items needed, but no working example of how to place an order.
I get an exception with the following code found in the MarketMaker example:
Code: Select all
package com.bookmap.api.simple.demo.strategies;
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.data.InstrumentInfo;
import velox.api.layer1.layers.utils.OrderBook;
import velox.api.layer1.messages.indicators.Layer1ApiUserMessageModifyIndicator.GraphType;
import velox.api.layer1.simplified.Api;
import velox.api.layer1.simplified.Bar;
import velox.api.layer1.simplified.BarDataListener;
import velox.api.layer1.simplified.CustomModule;
import velox.api.layer1.simplified.Indicator;
import velox.api.layer1.simplified.InitialState;
import velox.api.layer1.simplified.Intervals;
import velox.api.layer1.data.OcoOrderSendParameters;
import velox.api.layer1.data.OrderCancelParameters;
import velox.api.layer1.data.OrderDuration;
import velox.api.layer1.data.OrderInfoBuilder;
import velox.api.layer1.data.OrderMoveParameters;
import velox.api.layer1.data.OrderResizeParameters;
import velox.api.layer1.data.OrderSendParameters;
import velox.api.layer1.data.OrderStatus;
import velox.api.layer1.data.OrderType;
import velox.api.layer1.data.OrderUpdateParameters;
import velox.api.layer1.data.SimpleOrderSendParameters;
import velox.api.layer1.data.SimpleOrderSendParametersBuilder;
@Layer1SimpleAttachable
@Layer1StrategyName("Send Orders")
@Layer1ApiVersion(Layer1ApiVersionValue.VERSION1)
public class SendOrders implements
CustomModule, BarDataListener {
Api api;
private String alias;
@Override
public void initialize(String alias, InstrumentInfo info, Api api, InitialState initialState) {
this.alias = alias;
}
@Override
public void stop() {
}
@Override
public void onBar(OrderBook ob, Bar bar) {
OrderSendParameters orderSendParameters = new SimpleOrderSendParametersBuilder(alias, true, 1).build();
api.sendOrder(orderSendParameters);
}
}
@Override
public long getInterval() {
return Intervals.INTERVAL_15_SECONDS;
}
}
Code: Select all
java.lang.NullPointerException
at com.bookmap.api.simple.demo.strategies.SendOrders.onBar(SendOrders.java:57)
at velox.api.layer1.simplified.SimplifiedL1ApiLoader$InstanceWrapper.setTime(SimplifiedL1ApiLoader.java:1669)
at velox.api.layer1.simplified.SimplifiedL1ApiLoader.onUserMessage(SimplifiedL1ApiLoader.java:2178)
at velox.bookmap.ed.onUserMessage(SourceFile:359)
at velox.bookmap.dB.onUserMessage(SourceFile:161)
at velox.bookmap.fv.a(SourceFile:230)
at velox.bookmap.dl.a(SourceFile:43)
at velox.bookmap.fv.onUserMessage(SourceFile:230)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.api.layer1.layers.Layer1ApiInjectorRelay.onUserMessage(SourceFile:212)
at velox.bookmap.eo.onUserMessage(SourceFile:233)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.api.layer1.layers.Layer1ApiInjectorRelay.onUserMessage(SourceFile:212)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.bookmap.eT.onUserMessage(SourceFile:212)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.api.layer1.layers.Layer1ApiInjectorRelay.onUserMessage(SourceFile:212)
at velox.bookmap.dA.onUserMessage(SourceFile:105)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.bookmap.eC.onUserMessage(SourceFile:116)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.bookmap.fw.onUserMessage(SourceFile:57)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.api.layer1.layers.Layer1ApiInjectorRelay.onUserMessage(SourceFile:212)
at velox.bookmap.gx.onUserMessage(SourceFile:592)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.bookmap.dE.b(SourceFile:119)
at velox.bookmap.ds.a(SourceFile:32)
at velox.bookmap.dE.onUserMessage(SourceFile:119)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.bookmap.dD.onUserMessage(SourceFile:27)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.api.layer1.layers.Layer1ApiUpstreamRelay.onUserMessage(SourceFile:210)
at velox.api.layer1.layers.Layer1ApiInjectorRelay.onUserMessage(SourceFile:212)
at velox.bookmap.iZ.a(SourceFile:678)
at velox.bookmap.iZ.a(SourceFile:532)
at velox.bookmap.hi.a(SourceFile:51)
at velox.bookmap.iZ.b(SourceFile:558)
at velox.bookmap.iZ.e(SourceFile:15509)
at java.lang.Thread.run(Thread.java:745)
Also how can we discover how the SimpleOrderSendParametersBuilder works?
Thank you so much,
Greg