All Downloads are FREE. Search and download functionalities are using the official Maven repository.

info.bitrich.xchangestream.bitflyer.dto.BitflyerTrade Maven / Gradle / Ivy

package info.bitrich.xchangestream.bitflyer.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.math.BigDecimal;
import org.knowm.xchange.currency.CurrencyPair;
import org.knowm.xchange.dto.Order;
import org.knowm.xchange.dto.marketdata.Trade;

/** Created by Lukas Zaoralek on 15.11.17. */
public class BitflyerTrade extends BitflyerMarketEvent {
  private final String id;
  private final String side;
  private final BigDecimal price;
  private final BigDecimal size;
  private final String buy_child_order_acceptance_id;
  private final String sell_child_order_acceptance_id;

  public BitflyerTrade(
      @JsonProperty("id") String id,
      @JsonProperty("side") String side,
      @JsonProperty("price") BigDecimal price,
      @JsonProperty("size") BigDecimal size,
      @JsonProperty("exec_date") String timestamp,
      @JsonProperty("buy_child_order_acceptance_id") String buy_child_order_acceptance_id,
      @JsonProperty("sell_child_order_acceptance_id") String sell_child_order_acceptance_id) {
    super(timestamp);
    this.id = id;
    this.side = side;
    this.price = price;
    this.size = size;
    this.buy_child_order_acceptance_id = buy_child_order_acceptance_id;
    this.sell_child_order_acceptance_id = sell_child_order_acceptance_id;
  }

  public String getId() {
    return id;
  }

  public String getSide() {
    return side;
  }

  public BigDecimal getPrice() {
    return price;
  }

  public BigDecimal getSize() {
    return size;
  }

  public String getBuy_child_order_acceptance_id() {
    return buy_child_order_acceptance_id;
  }

  public String getSell_child_order_acceptance_id() {
    return sell_child_order_acceptance_id;
  }

  public Order.OrderType getOrderSide() {
    return side.equals("SELL") ? Order.OrderType.ASK : Order.OrderType.BID;
  }

  public Trade toTrade(CurrencyPair pair) {
    Order.OrderType orderType = getOrderSide();
    return new Trade.Builder()
        .type(orderType)
        .originalAmount(size)
        .currencyPair(pair)
        .price(price)
        .timestamp(getDate())
        .id(id)
        .build();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy