using System.ComponentModel;

namespace Binance.TradeRobot.Model.Base
{
    public class Enums
    {

        #region 用户资金
        /// <summary>
        /// 资金变更类型 追投=0,提现=1,转移=2
        /// </summary>
        public enum CapitalChangeType
        {
            /// <summary>
            /// 增加资金
            /// </summary>
            Add = 0,
            /// <summary>
            /// 减少资金
            /// </summary>
            Reduce = 1,
            /// <summary>
            /// 转移资金
            /// </summary>
            Transfer = 2
        }

        /// <summary>
        /// 资金方向 转入=0,转出=1
        /// </summary>
        public enum FundDirection
        {
            In = 0,
            Out = 1
        }
        #endregion

        #region 机器人
        /// <summary>
        /// 业务类型 币币=0,逐仓杠杆=1,U本位合约=2
        /// </summary>
        public enum BusinessType
        {
            /// <summary>
            /// 币币(现货)
            /// </summary>
            Spot = 0,
            /// <summary>
            /// 逐仓杠杆
            /// </summary>
            IsolateMargin = 1,
            /// <summary>
            /// U本位合约
            /// </summary>
            UPrep = 2
        }

        /// <summary>
        /// 机器人状态 Stop=0,Runing=1
        /// </summary>
        public enum RobotState
        {
            Stop = 0,
            Runing = 1
        }

        /// <summary>
        /// 交易策略 动量趋势v2=0,动量趋势v21=1,金字塔=11
        /// </summary>
        public enum TradePolicy
        {
            D2 = 0,
            D21 = 1,

            Pyramid = 11
        }

        /// <summary>
        /// 执行模式  Both=0,OnlyBuy=1,OnlySell=2
        /// </summary>
        public enum ExecutionMode
        {
            Both = 0, OnlyBuy = 1, OnlySell = 2
        }
        #endregion

        #region 交易所

        /// <summary>
        /// Binance=0, Gate.io=1
        /// </summary>
        public enum Exchange
        {
            /// <summary>
            /// 币安
            /// </summary>
            Binance = 0,
            /// <summary>
            /// 芝麻开门
            /// </summary>
            Gate_IO = 1
        }

        /// <summary>
        /// 借币状态 Loading=0 returned=1
        /// </summary>
        public enum LoanState
        {
            Loaning, retured
        }

        /// <summary>
        /// 现货订单订单状态 已创建=0,部分成交=1,完全成交=2,用户取消=3,拒绝=4,订单失效=5,未知=6
        /// </summary>
        public enum SpotOrderState
        {
            /// <summary>
            /// 已创建
            /// </summary>
            Created,
            /// <summary>
            /// 部分成交
            /// </summary>
            PartiallyFilled,
            /// <summary>
            /// 完全成交
            /// </summary>
            Filled,
            /// <summary>
            /// 用户取消
            /// </summary>
            Canceled,
            /// <summary>
            /// 拒绝
            /// </summary>
            Rejected,
            /// <summary>
            /// 订单过期
            /// </summary>
            Expired,
            /// <summary>
            /// 未知状态
            /// </summary>
            Unknow
        }

        /// <summary>
        /// 交易方向 Buy=0,Sell=1
        /// </summary>
        public enum TradeDirection
        {
            Buy, Sell
        }

        /// <summary>
        /// 订单类型 
        /// <para>LIMIT 限价单</para>
        /// <para>MARKET 市价单</para>
        /// <para>STOP_LOSS 止损单</para>
        /// <para>STOP_LOSS_LIMIT 限价止损单</para>
        /// <para>TAKE_PROFIT 止盈单</para>
        /// <para>TAKE_PROFIT_LIMIT 限价止盈单</para>
        /// <para>LIMIT_MAKER 限价只挂单</para>
        /// </summary>
        public enum OrderType
        {
            LIMIT,
            MARKET,
            STOP_LOSS,
            STOP_LOSS_LIMIT,
            TAKE_PROFIT,
            TAKE_PROFIT_LIMIT,
            LIMIT_MAKER
        }

        /// <summary>
        /// 信号周期 1m=0,3m=1,5m=2,15m=3,30m=4,1h=5,2h=6,4h=7,6h=8,8h=9,12h=10,1d=11,3d=12,1w=13,1M=14
        /// </summary>
        public enum SignalPeriod
        {
            _1m,
            _3m,
            _5m,
            _15m,
            _30m,
            _1h,
            _2h,
            _4h,
            _6h,
            _8h,
            _12h,
            _1d,
            _3d,
            _1w,
            _1M
        }
        #endregion

        #region 信号
        /// <summary>
        /// 信号类型
        /// <para>
        /// 买入=0,卖出=1,做多=2,做空=3,大趋势看多=4大趋势看空=5中趋势看多=6中趋势看空=7小趋势看多=8小趋势看空=9,多交叉=10,空交叉=11
        /// </para>
        /// </summary>
        public enum SingalType
        {
            买入 = 0,
            卖出 = 1,
            做多 = 2,
            做空 = 3,
            大趋势看多 = 4,
            大趋势看空 = 5,
            中趋势看多 = 6,
            中趋势看空 = 7,
            小趋势看多 = 8,
            小趋势看空 = 9,
            多交叉 = 10,
            空交叉 = 11,
            订单推送 = 100
        }
        #endregion
    }
}