public void trade(OkexFutureInstrumentType instrument, OkexFutureContractType contract, double price, long volume, OkexContractTradeType type, uint leverRate = 10, FutureTradeEntity.TradeEventHandler callback = null, long queryInterval = 1000) { FutureTradeEntity entity = new FutureTradeEntity(instrument, contract, queryInterval); if (callback != null) { entity.setTradeEventHandler(callback); } OkexFutureTrader.Instance.tradeAsync(instrument, contract, price, volume, type, entity.onAsyncCallback, leverRate); m_entityList.Add(entity); }
public FutureTradeTracer(string id, FutureTradeEntity fte, OkexFutureInstrumentType inst, OkexFutureContractType cntr, long queryInterval = 1000) { localID = id; entity = fte; queryTimer = new Timer(queryInterval); resultTimer = new Timer(1000); instrument = inst; contract = cntr; queryTimer.Elapsed += new ElapsedEventHandler(queryTrade); resultTimer.Elapsed += new ElapsedEventHandler(onTimeout); }
public void trade(FutureTradeEntity entity, OkexFutureInstrumentType instrument, OkexFutureContractType contract, double price, long volume, OkexContractTradeType type, uint leverRate = 10) { if (entity == null) { return; } long queryInterval = entity.queryInterval; string guid = Guid.NewGuid().ToString(); FutureTradeTracer tracer = new FutureTradeTracer(guid, entity, instrument, contract, queryInterval); m_tracers.TryAdd(guid, tracer); OkexFutureTrader.Instance.tradeAsync(instrument, contract, price, volume, type, tracer.onTradeResult, leverRate); tracer.start(); }