public PBotFeature(PBot bot) { Bot = bot; Info = bot.Info; Client = bot.Client.Clone(); }
private IBot _AddBot(BotMode mode, BacktestResultHandle backtestResultHandle = null, IAccount account = null, BacktestResult backtestResult = null, PBot pBot = null, TBot tBot = null, IBot bot = null) { if (account == null) { throw new ArgumentNullException(nameof(account)); } if (backtestResult == null) { backtestResult = backtestResultHandle?.Object; } if (bot == null) { if (pBot != null) { bot = (IBot)pBot.Instantiate(); } else { if (tBot == null) { tBot = backtestResult.TBot; //if (backtestResult == null) { backtestResult = backtestResultHandle?.Object; } //var templateType = ResolveType(backtestResult.BotConfigType); ////var templateType = Type.GetType(result.BotConfigType); //if (templateType == null) //{ // throw new NotSupportedException($"Bot type not supported: {backtestResult.BotConfigType}"); //} //tBot = (TBot)((JObject)backtestResult.Config).ToObject(templateType); } if (tBot == null) { throw new ArgumentNullException(nameof(tBot)); } bot = (IBot)tBot.Create(); } } //bot.Modes = mode | BotMode.Paper; //var botVM = new BotVM() { Bot = bot }; //botVM.State = SupervisorBotState.Scanner; if (bot.Modes.HasFlag(BotMode.Live)) { throw new Exception("Not ready for live yet"); } bot.Account = account; //botVM.AddBacktestResult(backtestResult); //bool hasPaper = mode.HasFlag(BotMode.Paper); //if (mode != BotMode.Paper) //{ // mode = mode & ~BotMode.Paper; //} //if (mode.HasFlag(BotMode.Live)) { LiveBots.Add(bot); Template.LiveBots.Add(tBot.Id); } //if (mode.HasFlag(BotMode.Demo)) { DemoBots.Add(bot); Template.DemoBots.Add(tBot.Id); } //if (mode.HasFlag(BotMode.Scanner)) { Scanners.Add(bot); Template.Scanners.Add(tBot.Id); } //if (mode.HasFlag(BotMode.Paper)) { PaperBots.Add(bot); Template.PaperBots.Add(tBot.Id); } //if (mode.HasFlag(BotMode.Live)) { if (LiveBots == null) { LiveBots = new ObservableCollection<IBot>(); } LiveBots.Add(bot); } //if (mode.HasFlag(BotMode.Demo)) { if (DemoBots == null) { DemoBots = new ObservableCollection<IBot>(); } DemoBots.Add(bot); } if (Bots == null) { Bots = new ObservableCollection <IBot>(); } if (!BotIds.Contains(bot.Template.Id)) { BotIds.Add(bot.Template.Id); Bots.Add(bot); } //if (mode.HasFlag(BotMode.Paper)) { if (PaperBots==null) { PaperBots = new ObservableCollection<IBot>(); } PaperBots.Add(bot); } //if (pBot != null) //{ // bot.DesiredExecutionState = pBot.DesiredExecutionState; //} //switch (mode) //{ // case BotMode.Live: // LiveBots.Add(bot); // break; // case BotMode.Demo: // DemoBots.Add(bot); // break; // case BotMode.Scanner: // Scanners.Add(bot); // break; // case BotMode.Paper: // break; // default: // throw new ArgumentException(nameof(mode)); //} //if (mode.HasFlag(BotMode.Scanner)) //{ // Scanners.Add(bot); //} //if (mode.HasFlag(BotMode.Live)) //{ // LiveBots.Add(bot); //} //if (mode.HasFlag(BotMode.Demo)) //{ // DemoBots.Add(bot); //} //if (mode.HasFlag(BotMode.Paper)) //{ // PaperBots.Add(bot); //} //Task.Factory.StartNew(() => bot.Start()); return(bot); }
public async Task Refresh(CommandContext ctx) { await PBot.RefreshCurseFiles(); await ctx.Message.CreateReactionAsync(DiscordEmoji.FromName(ctx.Client, ":white_check_mark:")); }
private IBot _AddBotForMode(BotMode mode, BacktestResult backtestResult = null, PBot pBot = null, TBot tBot = null, IBot bot = null) { IAccount account; switch (mode) { case BotMode.Live: account = LiveAccount; break; case BotMode.Demo: account = DemoAccount; break; case BotMode.Scanner: account = ScannerAccount; break; case BotMode.Paper: account = PaperAccount; break; default: throw new ArgumentException(nameof(mode) + " unknown or is set to more than one mode."); } if (account == null) { Debug.WriteLine($"WARNING - _AddBotForMode({mode}) assigned no account"); } return(_AddBot(mode, account: account, backtestResult: backtestResult, pBot: pBot, tBot: tBot, bot: bot)); }
public Daily(PBot bot) : base(bot) { }
public Quests(PBot bot) : base(bot) { }
public Devour(PBot bot) : base(bot) { }
public Login(PBot bot) : base(bot) { }