// Copyright 2015 Ivan Popivanov // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package net.tradelib.core; import java.math.BigDecimal; public class InstrumentVariation { private String symbol; private double factor; private double tick; InstrumentVariation(String symbol, double factor, double tick) { this.symbol = symbol; this.factor = factor; this.tick = tick; } public double getTick() { return tick; } public double getFactor() { return factor; } public String getSymbol() { return symbol; } public double tickCeil(double value) { return Math.ceil(value/getTick())*getTick(); } public double tickFloor(double value) { return Math.floor(value/getTick())*getTick(); } public double price(double originalPrice) { return originalPrice/factor; } public double priceTickCeil(double value) { return Math.ceil(price(value)/getTick())*getTick(); } public double priceTickFloor(double value) { return Math.floor(price(value)/getTick())*getTick(); } public Order transform(Order oo) { Order result = oo.clone(); if(result.isLimit()) result.setLimit(price(result.getLimit())); if(result.isStop()) result.setStop(price(result.getStop())); return result; } }