Exemplo n.º 1
0
 public PBotFeature(PBot bot)
 {
     Bot = bot;
     Info = bot.Info;
     Client = bot.Client.Clone();
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        public async Task Refresh(CommandContext ctx)
        {
            await PBot.RefreshCurseFiles();

            await ctx.Message.CreateReactionAsync(DiscordEmoji.FromName(ctx.Client, ":white_check_mark:"));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
 public Daily(PBot bot)
     : base(bot)
 {
 }
Exemplo n.º 6
0
 public Quests(PBot bot)
     : base(bot)
 {
 }
Exemplo n.º 7
0
 public Devour(PBot bot)
     : base(bot)
 {
 }
Exemplo n.º 8
0
 public Login(PBot bot)
     : base(bot)
 {
 }