package com.crm.rely.backend.core.dto.follow.daily;

import lombok.Data;


/**
 * @author y
 * @create 2022/5/17
 */
@Data
public class FollowDailyIndexDto {
    /**
     * 账号
     */
    private Long login;
    /**
     * 余额
     */
    private Float balance;
    /**
     * 账户类型
     */
    private Long groupType;
    /**
     * 净值
     */
    private Float equity;
    /**
     * 信用
     */
    private Float credit;
    /**
     * 杠杆
     */
    private String leverage;
    /**
     * 交易平台
     */
    private String platform;
    /**
     * 存款数
     */
    private Float deposit;
    /**
     * 取款数
     */
    private Float withdrawal;
    /**
     * 近7日盈亏
     */
    private Float recentProfit;
    /**
     *总手数
     */
    private Float totalVolume;
    /**
     * 总盈亏
     */
    private Float totalProfit;
    /**
     *平均手数
     */
    private Float avgVolume;
    /**
     *盈利平均额
     */
    private Float avgWin;
    /**
     * 最大手数
     */
    private Float maxVolume;
    /**
     * 亏损平均额
     */
    private Float avgLoss;
    /**
     * 单笔最大盈利手数
     */
    private Float maxWinVolume;
    /**
     * 单笔最大盈利额
     */
    private Float maxWinProfit;
    /**
     * 单笔最大亏损手数
     */
    private Float maxLossVolume;
    /**
     * 单笔最大亏损额
     */
    private Float maxLossProfit;
    /**
     * 最大回撤率
     */
    private Float drawDown;
    /**
     * 盈亏比
     */
    private Float profitRate;
    /**
     * 交易总次数
     */
    private Integer amount;
    /**
     * 日均交易次数
     */
    private Float dailyAmount;
    /**
     * 单笔最大盈利持仓时长
     */
    private Float maxWinTime;
    /**
     * 单笔最大亏损持仓时长
     */
    private Float maxLossTime;

    public void setAvgLoss(Float avgLoss){
        this.avgLoss = Float.parseFloat(String.format("%.3f",avgLoss));
    }

    public static FollowDailyIndexDto getInstance(){
        FollowDailyIndexDto dto = new FollowDailyIndexDto();
        dto.setBalance(0F);
        dto.setEquity(0F);
        dto.setCredit(0F);
        dto.setDeposit(0F);
        dto.setWithdrawal(0F);
        dto.setRecentProfit(0F);
        dto.setTotalVolume(0F);
        dto.setTotalProfit(0F);
        dto.setAvgVolume(0F);
        dto.setAvgWin(0F);
        dto.setMaxVolume(0F);
        dto.setAvgLoss(0F);
        dto.setMaxWinVolume(0F);
        dto.setMaxWinProfit(0F);
        dto.setMaxLossVolume(0F);
        dto.setMaxLossProfit(0F);
        dto.setDrawDown(0F);
        dto.setProfitRate(0F);
        dto.setAmount(0);
        dto.setDailyAmount(0F);
        dto.setMaxWinTime(0F);
        dto.setMaxLossTime(0F);

        return dto;
    }


}
