Ejemplo n.º 1
0
 protected internal StrategicChoice(Catalog.XingAPI.Specify specify) : base(specify)
 {
     if (specify.Time == 1440)
     {
         ((IEvents <EventHandler.XingAPI.Quotes>)API.reals[0]).Send += OnReceiveQuotes;
         RollOver = !specify.RollOver;
         ran      = new Random();
     }
 }
Ejemplo n.º 2
0
 internal Consecutive(BackTesting bt, Catalog.XingAPI.Specify specify)
 {
     this.bt       = bt;
     this.specify  = specify;
     this.judge    = specify.Strategy.Length == 2 && int.TryParse(specify.Strategy, out int judge) ? judge : int.MaxValue;
     Short         = new Stack <double>(256);
     Long          = new Stack <double>(256);
     bt.SendDatum += Analysize;
 }
Ejemplo n.º 3
0
        public Base(Catalog.XingAPI.Specify specify) : base(specify)
        {
            API.OnReceiveBalance = false;

            if (specify.Time == 1440)
            {
                ((IEvents <EventHandler.XingAPI.Quotes>)API.reals[0]).Send += OnReceiveQuotes;
            }
        }
Ejemplo n.º 4
0
        internal Analysis(BackTesting bt, Catalog.XingAPI.Specify specify) : base(specify)
        {
            this.bt       = bt;
            bt.SendDatum += Analysize;

            if (specify.Time == 1440)
            {
                bt.SendQuotes += OnReceiveQuotes;
            }
        }
Ejemplo n.º 5
0
        internal void Max(double trend, Catalog.XingAPI.Specify specify)
        {
            Judge[specify.Time] = trend;
            double temp = 0;

            foreach (var kv in Judge)
            {
                temp += kv.Value;
            }

            Classification = temp == 0 ? string.Empty : temp > 0 ? Analysis.buy : Analysis.sell;
        }
Ejemplo n.º 6
0
        protected internal Analysis(BackTesting bt, Catalog.XingAPI.Specify specify) : base(specify)
        {
            if (specify.Strategy.Length > 2)
            {
                this.bt       = bt;
                bt.SendDatum += Analysize;

                if (specify.Time == 1440)
                {
                    bt.SendQuotes += OnReceiveQuotes;
                    RollOver       = !specify.RollOver;
                }
            }
        }
Ejemplo n.º 7
0
        public Consecutive(Catalog.XingAPI.Specify specify) : base(KeyDecoder.GetKey())
        {
            this.specify = specify;
            this.judge   = specify.Strategy.Length == 2 && int.TryParse(specify.Strategy, out int judge) ? judge : int.MaxValue;
            var recent = Retrieve.Charts.Last().Value.Last().Date.ToString().Substring(0, 6);
            var now    = DateTime.Now;

            Short = GetBasicChart(recent, now, specify, specify.Short, new Stack <double>(256));
            Long  = GetBasicChart(recent, now, specify, specify.Long, new Stack <double>(256));

            if (Short == null || Short.Count == 0 || Long == null || Long.Count == 0)
            {
                Short = new Stack <double>(256);
                Long  = new Stack <double>(256);

                foreach (var kv in Retrieve.Charts)
                {
                    foreach (var chart in kv.Value)
                    {
                        Analysize(chart);
                    }
                }
            }
            if (specify.Time == 1440)
            {
                RollOver             = specify.RollOver == false || Array.Exists(Information.RemainingDay, o => o.Equals(now.ToString(remaining)));
                ran                  = new Random();
                OnTime               = true;
                Assets               = specify.Assets;
                API.OnReceiveBalance = false;
                ((IEvents <EventHandler.XingAPI.Quotes>)API.reals[0]).Send += OnReceiveQuotes;

                if (now.Hour < 5 || now.Hour > 16)
                {
                    this.judge /= 10;
                }
            }
            else
            {
                Check = string.Empty;
            }

            ((IEvents <Datum>)API.reals[1]).Send += Analysize;
        }
Ejemplo n.º 8
0
 internal Fly(BackTesting bt, Catalog.XingAPI.Specify specify) : base(bt, specify) => Console.WriteLine(specify.Strategy);
Ejemplo n.º 9
0
 public Heavy(Catalog.XingAPI.Specify specify) : base(specify) => API.OnReceiveBalance = false;
Ejemplo n.º 10
0
        internal static Catalog.XingAPI.Specify[] GetCatalog(Models.Strategics find)
        {
            var temp = new Catalog.XingAPI.Specify[10];
            int i    = 0;

            while (i < temp.Length)
            {
                switch (i)
                {
                case 0:
                    temp[i++] = new Catalog.XingAPI.Specify
                    {
                        Assets     = (ulong)find.Assets,
                        Code       = find.Code,
                        Commission = find.Commission,
                        MarginRate = find.MarginRate,
                        Strategy   = find.Strategy,
                        RollOver   = find.RollOver,
                        Time       = (uint)find.BaseTime,
                        Short      = find.BaseShort,
                        Long       = find.BaseLong
                    };
                    break;

                case 1:
                    temp[i++] = new Catalog.XingAPI.Specify
                    {
                        Assets     = (ulong)find.Assets,
                        Code       = find.Code,
                        Commission = find.Commission,
                        MarginRate = find.MarginRate,
                        Strategy   = find.Strategy,
                        RollOver   = find.RollOver,
                        Time       = (uint)find.NonaTime,
                        Short      = find.NonaShort,
                        Long       = find.NonaLong
                    };
                    break;

                case 2:
                    temp[i++] = new Catalog.XingAPI.Specify
                    {
                        Assets     = (ulong)find.Assets,
                        Code       = find.Code,
                        Commission = find.Commission,
                        MarginRate = find.MarginRate,
                        Strategy   = find.Strategy,
                        RollOver   = find.RollOver,
                        Time       = (uint)find.OctaTime,
                        Short      = find.OctaShort,
                        Long       = find.OctaLong
                    };
                    break;

                case 3:
                    temp[i++] = new Catalog.XingAPI.Specify
                    {
                        Assets     = (ulong)find.Assets,
                        Code       = find.Code,
                        Commission = find.Commission,
                        MarginRate = find.MarginRate,
                        Strategy   = find.Strategy,
                        RollOver   = find.RollOver,
                        Time       = (uint)find.HeptaTime,
                        Short      = find.HeptaShort,
                        Long       = find.HeptaLong
                    };
                    break;

                case 4:
                    temp[i++] = new Catalog.XingAPI.Specify
                    {
                        Assets     = (ulong)find.Assets,
                        Code       = find.Code,
                        Commission = find.Commission,
                        MarginRate = find.MarginRate,
                        Strategy   = find.Strategy,
                        RollOver   = find.RollOver,
                        Time       = (uint)find.HexaTime,
                        Short      = find.HexaShort,
                        Long       = find.HexaLong
                    };
                    break;

                case 5:
                    temp[i++] = new Catalog.XingAPI.Specify
                    {
                        Assets     = (ulong)find.Assets,
                        Code       = find.Code,
                        Commission = find.Commission,
                        MarginRate = find.MarginRate,
                        Strategy   = find.Strategy,
                        RollOver   = find.RollOver,
                        Time       = (uint)find.PentaTime,
                        Short      = find.PentaShort,
                        Long       = find.PentaLong
                    };
                    break;

                case 6:
                    temp[i++] = new Catalog.XingAPI.Specify
                    {
                        Assets     = (ulong)find.Assets,
                        Code       = find.Code,
                        Commission = find.Commission,
                        MarginRate = find.MarginRate,
                        Strategy   = find.Strategy,
                        RollOver   = find.RollOver,
                        Time       = (uint)find.QuadTime,
                        Short      = find.QuadShort,
                        Long       = find.QuadLong
                    };
                    break;

                case 7:
                    temp[i++] = new Catalog.XingAPI.Specify
                    {
                        Assets     = (ulong)find.Assets,
                        Code       = find.Code,
                        Commission = find.Commission,
                        MarginRate = find.MarginRate,
                        Strategy   = find.Strategy,
                        RollOver   = find.RollOver,
                        Time       = (uint)find.TriTime,
                        Short      = find.TriShort,
                        Long       = find.TriLong
                    };
                    break;

                case 8:
                    temp[i++] = new Catalog.XingAPI.Specify
                    {
                        Assets     = (ulong)find.Assets,
                        Code       = find.Code,
                        Commission = find.Commission,
                        MarginRate = find.MarginRate,
                        Strategy   = find.Strategy,
                        RollOver   = find.RollOver,
                        Time       = (uint)find.DuoTime,
                        Short      = find.DuoShort,
                        Long       = find.DuoLong
                    };
                    break;

                case 9:
                    temp[i++] = new Catalog.XingAPI.Specify
                    {
                        Assets     = (ulong)find.Assets,
                        Code       = find.Code,
                        Commission = find.Commission,
                        MarginRate = find.MarginRate,
                        Strategy   = find.Strategy,
                        RollOver   = find.RollOver,
                        Time       = (uint)find.MonoTime,
                        Short      = find.MonoShort,
                        Long       = find.MonoLong
                    };
                    break;
                }
            }
            return(temp);
        }