程序猿的量化交易之路(29)--Cointrader之Tick实体(16)
转载需注明出处:http://blog.csdn.net/minimicall,http://cloudtrade.top
Tick:什么是Tick,在交易平台中很常见,事实上就 单笔交易时某仅仅证券的基本数据。
我们通过代码来学习吧:
package org.cryptocoinpartners.schema; import javax.annotation.Nullable; import javax.persistence.Entity; import javax.persistence.ManyToOne; import javax.persistence.Transient; import org.joda.time.Instant; /** * A Tick is a point-in-time snapshot of a Market's last price, volume and most recent Book *一个Tick是某一时刻某个交易品的最新交易价格、量和最新的报价单列表 * @author Tim Olson */ @Entity//在数据库中会创建数据表Tick public class Tick extends PriceData implements Spread { //继承自PriceData,一些市场的数据就包括了。 public Instant getStartInstant() { return startInstant; } @Transient public Instant getEndInstant() { return getTime(); } @ManyToOne public Book getLastBook() { return lastBook; } /** @return null if no book was found prior to the window */ @Override @Transient public @Nullable Offer getBestBid() { return lastBook == null ? null : lastBook.getBestBid(); } /** @return null if no book was found prior to the window */ @Override @Transient public @Nullable Offer getBestAsk() { return lastBook == null ?null : lastBook.getBestAsk(); } public Tick(Market market, Instant startInstant, Instant endInstant, @Nullable Long lastPriceCount, @Nullable Long volumeCount, Book lastBook) { super(endInstant, null, market, lastPriceCount, volumeCount); this.startInstant = startInstant; this.lastBook = lastBook; } @Override public String toString() { return String.format("Tick{%s last:%g@%g bid:%s ask:%s}", getMarket(), getVolumeAsDouble(), getPriceAsDouble(), getBestBid(), getBestAsk()); } // JPA protected Tick() { } protected void setStartInstant(Instant startInstant) { this.startInstant = startInstant; } protected void setLastBook(Book lastBook) { this.lastBook = lastBook; } private Instant startInstant; private Book lastBook;//报价单 }