程序員的量化交易之路(21)--Cointrader之Currency貨幣實體(9)

轉載須註明出自:http://blog.csdn.net/minimicall?viewmode=contentshttp://cloudtrader.top


貨幣,Cointrader中基本實體。我們通過代碼來學習該實體:

package org.cryptocoinpartners.schema;

import java.util.List;

import javax.persistence.Cacheable;
import javax.persistence.Entity;
import javax.persistence.NoResultException;

import org.cryptocoinpartners.util.PersistUtil;

/**
 * @author Tim Olson
 */
@Entity //實體
@Cacheable
public class Currency extends Asset {//貨幣是資產的一種,繼承關係

    public boolean isFiat() {//是否爲法定貨幣
        return fiat;
    }

    public static Currency forSymbol(String symbol) {
        return PersistUtil.queryOne(Currency.class, "select c from Currency c where symbol=?1", symbol);
    }

    public static List<String> allSymbols() {
        return PersistUtil.queryList(String.class, "select symbol from Currency");
    }

    // JPA
    protected Currency() {
    }

    protected void setFiat(boolean fiat) {
        this.fiat = fiat;
    }

    // used by Currencies
    static Currency forSymbolOrCreate(String symbol, boolean isFiat, double basis) {
        try {
            return forSymbol(symbol);
        } catch (NoResultException e) {
            final Currency currency = new Currency(isFiat, symbol, basis);
            PersistUtil.insert(currency);
            return currency;
        }
    }

    // used by Currencies
    static Currency forSymbolOrCreate(String symbol, boolean isFiat, double basis, double multiplier) {
        try {
            return forSymbol(symbol);
        } catch (NoResultException e) {
            final Currency currency = new Currency(isFiat, symbol, basis, multiplier);
            PersistUtil.insert(currency);
            return currency;
        }
    }

    private Currency(boolean fiat, String symbol, double basis) {
        super(symbol, basis);
        this.fiat = fiat;
    }

    private Currency(boolean fiat, String symbol, double basis, double multiplier) {
        super(symbol, basis);
        this.fiat = fiat;
        this.multiplier = multiplier;
    }

    private boolean fiat;//是否爲法定貨幣
    private double multiplier;//乘數
}

multiplier乘數是一個比較生疏的一個概念。它的介紹見wikipedia:http://en.wikipedia.org/wiki/Multiplier_(economics)

還是一個比較難的概念。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章