package com.crm.rely.backend.core.pojo.table;

import com.crm.rely.backend.core.pojo.BaseTable;
import lombok.Data;

import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;

@Data
@Entity
@Table(name = "follow_deal_signal")
public class FollowDealSignalTable extends BaseTable {
    /**
     * 基本信息
     */
    private Long login;
    /**
     *  历史表现指标 - 总净盈利
     */
    private Double pl;
    /**
     *  总盈利率 (当前净值 + 累计出金 - (累计入金+期初净值)) / (累计入金+期初净值) × 100%
     */
    private Double plRate;
    /**
     * 总盈利
     */
    private Double profit;
    /**
     * 总亏损
     */
    private Double loss;
    /**
     *  持仓时间
     */
    private Long holdTime;
    /**
     * 总单数
     */
    private Integer trades;
    /**
     * 总手数
     */
    private Double volume;
    /**
     * 盈利单数
     */
    private Integer tradesWin;
    /**
     * 亏损单数
     */
    private Integer tradesLoss;
    /**
     * 胜率 盈利单数/总单数
     */
    private Double winRate;
    /**
     * 当前净值
     */
    private Double currentEquity;
    /**
     * 期初净值
     */
    private Double startEquity;
    /**
     * 最大回撤率
     */
    private Double maxDdRate;
    /**
     * 合计入金
     */
    private Double deposit;
    /**
     * 合计出金
     */
    private Double withdraw;
    /**
     * 信用
     */
    private Double credit;
    /**
     * 交易行为类指标 -平均持仓时间  所有订单手数的平均值 所有订单的持仓时长平均值（单位：分钟/小时）
     */
    private Double avgHoldTime;
    /**
     * 平均持仓手数 每笔订单的平均交易量 所有订单手数的平均值
     */
    private Double avgHoldVolume;
    /**
     * 最大单笔持仓手数 所有订单中最大手数 风控参考 所有订单中最大手数
     */
    private Double maxHoldVolume;
    /**
     * 日均交易笔数 活跃程度判断 总交易笔数 ÷ 天数
     */
    private Double avgDailyTrades;
    /**
     * 止损订单数
     */
    private Integer tradesSl;
    /**
     * 止损使用率 设置止损的订单数 ÷ 总订单数 × 100%
     */
    private Double slRate;
    /**
     * 活跃度
     */
    private Double activity;
    /**
     * 活跃度标记
     */
    private String activityLine;
    /**
     * 品种摘要
     */
    private String symbolSummary;
    /**
     * 订阅信息- 跟单数量
     */
    private Integer follows;
    /**
     * 跟单盈利
     */
    private Double followsPl;

    private Date createTime;

    public static FollowDealSignalTable getInstance() {
        FollowDealSignalTable table = new FollowDealSignalTable();
        table.setPl(0D);
        table.setPlRate(0D);
        table.setProfit(0D);
        table.setLoss(0D);
        table.setHoldTime(0L);
        table.setTrades(0);
        table.setVolume(0D);
        table.setTradesWin(0);
        table.setTradesLoss(0);
        table.setWinRate(0D);
        table.setCurrentEquity(0D);
        table.setStartEquity(0D);
        table.setMaxDdRate(0D);
        table.setDeposit(0D);
        table.setWithdraw(0D);
        table.setCredit(0D);
        table.setAvgHoldTime(0D);
        table.setAvgHoldVolume(0D);
        table.setMaxHoldVolume(0D);
        table.setAvgDailyTrades(0D);
        table.setTradesSl(0);
        table.setSlRate(0D);
        table.setActivity(0D);
        table.setFollows(0);
        table.setFollowsPl(0D);
        return table;
    }

}
