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(); } }
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; }
public Base(Catalog.XingAPI.Specify specify) : base(specify) { API.OnReceiveBalance = false; if (specify.Time == 1440) { ((IEvents <EventHandler.XingAPI.Quotes>)API.reals[0]).Send += OnReceiveQuotes; } }
internal Analysis(BackTesting bt, Catalog.XingAPI.Specify specify) : base(specify) { this.bt = bt; bt.SendDatum += Analysize; if (specify.Time == 1440) { bt.SendQuotes += OnReceiveQuotes; } }
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; }
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; } } }
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; }
internal Fly(BackTesting bt, Catalog.XingAPI.Specify specify) : base(bt, specify) => Console.WriteLine(specify.Strategy);
public Heavy(Catalog.XingAPI.Specify specify) : base(specify) => API.OnReceiveBalance = false;
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); }