public static List <Tuple <string, string> > GetMarkets() { List <Tuple <string, string> > results = new List <Tuple <string, string> >(); if (HaasActionManager.CheckHaasConnection()) { try { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); AccountInformation accountInformation = haasonlineClient.AccountDataApi.GetAccountDetails(ConfigManager.mainConfig.AccountGUID).Result.Result; var markets = haasonlineClient.MarketDataApi.GetPriceMarkets(accountInformation.ConnectedPriceSource); foreach (var market in markets.Result.Result) { results.Add(new Tuple <string, string>(market.PrimaryCurrency, market.SecondaryCurrency)); } } catch { return(results); } } return(results); }
public static void MarketSellPosition(string primaryCoin, string secondaryCoin, decimal amount) { if (HaasActionManager.CheckHaasConnection()) { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); var priceTickTask = Task.Run(async() => await haasonlineClient.TradeApi.PlaceSpotSellOrder(ConfigManager.mainConfig.AccountGUID, primaryCoin, secondaryCoin, 0, amount)); } }
public static void RemoveOpenOrder(string orderId) { if (HaasActionManager.CheckHaasConnection()) { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); var cancelOpenOrderCommand = Task.Run(async() => await haasonlineClient.TradeApi.CancelTemplate(orderId)); } }
public static void DeleteBot(string botGuid) { if (HaasActionManager.CheckHaasConnection()) { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); var deleteTask = Task.Run(async() => await haasonlineClient.CustomBotApi.RemoveBot(botGuid)); deleteTask.Wait(); } }
public static PriceTick GetOneMinutePriceDataForMarket(EnumPriceSource priceSource, string primaryCoin, string secondaryCoin) { if (HaasActionManager.CheckHaasConnection()) { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); var priceTickTask = Task.Run(async() => await haasonlineClient.MarketDataApi.GetMinutePriceTicker(priceSource, primaryCoin, secondaryCoin, "")); priceTickTask.Wait(); return(priceTickTask.Result.Result); } return(null); }
public static Wallet GetWalletInformation() { if (HaasActionManager.CheckHaasConnection()) { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); var walletTasks = Task.Run(async() => await haasonlineClient.AccountDataApi.GetWallet(ConfigManager.mainConfig.AccountGUID)); walletTasks.Wait(); return(walletTasks.Result.Result); } return(null); }
public static void Test() { if (HaasActionManager.CheckHaasConnection()) { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); var resultsTask = Task.Run(async() => await haasonlineClient.AccountDataApi.GetOrderTemplates()); resultsTask.Wait(); foreach (var result in resultsTask.Result.Result) { Console.WriteLine("TEST: {0} - {1}", result.Key, result.Value); } } }
public static BaseCustomBot GetCustomBotByName(string botName) { if (HaasActionManager.CheckHaasConnection()) { // Find active bot markets foreach (var bot in HaasActionManager.GetAllCustomBots()) { if (bot.Name.Equals(botName)) { return(bot); } } } return(null); }
public static ScalperBot RetrieveScalperObjectFromAPI(string guid) { if (HaasActionManager.CheckHaasConnection()) { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); var getScalperBotTask = Task.Run(async() => await haasonlineClient.CustomBotApi.GetBot <ScalperBot>(guid)); getScalperBotTask.Wait(); return(getScalperBotTask.Result.Result); } else { return(null); } }
public static AccountInformation GetAccountInformation() { if (HaasActionManager.CheckHaasConnection()) { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); var accountInformationTask = Task.Run(async() => await haasonlineClient.AccountDataApi.GetAccountDetails(ConfigManager.mainConfig.AccountGUID)); accountInformationTask.Wait(); return(accountInformationTask.Result.Result); } else { return(null); } }
public static List <BaseCustomBot> GetAllCustomBots() { if (HaasActionManager.CheckHaasConnection()) { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); var getAllCustomBotsTask = Task.Run(async() => await haasonlineClient.CustomBotApi.GetAllBots()); getAllCustomBotsTask.Wait(); return(getAllCustomBotsTask.Result.Result); } else { return(null); } }
public static ScalperBot GetScalperBotByName(string botName) { List <BaseCustomBot> results = new List <BaseCustomBot>(); if (HaasActionManager.CheckHaasConnection()) { // Find active bot markets foreach (var bot in HaasActionManager.GetAllCustomBots()) { if (bot.Name.Equals(botName)) { return(HaasActionManager.RetrieveScalperObjectFromAPI(bot.GUID)); } } } return(null); }
public static WinningTrade PerformFullTest(string primaryCurrency, string secondaryCurrency) { WinningTrade winningTrade = new WinningTrade(); int count = 0; decimal currentTargetPercentage = ConfigManager.mainConfig.StartTargetPercentage; decimal currentSafetyPercentage = ConfigManager.mainConfig.StartSafetyPercentage; int runEstimation = Convert.ToInt32(((ConfigManager.mainConfig.EndTargetPerecentage - ConfigManager.mainConfig.StartTargetPercentage) / ConfigManager.mainConfig.TargetPercentageStep) * ((ConfigManager.mainConfig.EndSafetyPercentage - ConfigManager.mainConfig.StartSafetyPercentage) / ConfigManager.mainConfig.SafetyPercentageStep)); while (currentTargetPercentage < ConfigManager.mainConfig.EndTargetPerecentage) { while (currentSafetyPercentage < ConfigManager.mainConfig.EndSafetyPercentage) { count++; Console.Write("\r[+] Processing [{0} of {1}] - Target: {2} Safety: {3} ROI: {4}", count, runEstimation, currentTargetPercentage, currentSafetyPercentage, winningTrade.roi); var botResults = HaasActionManager.PerformBackTest(primaryCurrency, secondaryCurrency, currentTargetPercentage, currentSafetyPercentage); if (botResults.ROI > winningTrade.roi) { winningTrade.targetPercentage = currentTargetPercentage; winningTrade.safetyPercentage = currentSafetyPercentage; winningTrade.roi = botResults.ROI; } Thread.Sleep(ConfigManager.mainConfig.BackTestDelayInMiliseconds); currentSafetyPercentage = currentSafetyPercentage + ConfigManager.mainConfig.SafetyPercentageStep; } currentSafetyPercentage = ConfigManager.mainConfig.StartSafetyPercentage; currentTargetPercentage = currentTargetPercentage + ConfigManager.mainConfig.TargetPercentageStep; } Console.WriteLine(); return(winningTrade); }
public static string CreateTemplateBot() { List <Tuple <string, string> > markets = HaasActionManager.GetMarkets(); if (HaasActionManager.CheckHaasConnection()) { if (markets.Count > 0) { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); var newBot = Task.Run(async() => await haasonlineClient.CustomBotApi.NewBot <ScalperBot>(Haasonline.Public.LocalApi.CSharp.Enums.EnumCustomBotType.ScalperBot, "BruteScalpe-Template", ConfigManager.mainConfig.AccountGUID, markets[0].Item1, markets[0].Item2, "")); newBot.Wait(); HaasActionManager.BaseBotTemplateGuid = newBot.Result.Result.GUID; } } return(HaasActionManager.BaseBotTemplateGuid); }
public static List <BaseCustomBot> GetAllCustomBotsWithPrefix(string prefix) { string[] accountGuidSplit = ConfigManager.mainConfig.AccountGUID.Split('-'); string botNamePrefixToMatch = "BS-" + accountGuidSplit[0]; List <BaseCustomBot> results = new List <BaseCustomBot>(); if (HaasActionManager.CheckHaasConnection()) { // Find active bot markets foreach (var bot in HaasActionManager.GetAllCustomBots()) { if (bot.Name.StartsWith(botNamePrefixToMatch)) { results.Add(bot); } } } return(results); }
public static List <Tuple <string, string> > GetMarketsPrioritized() { List <Tuple <string, string> > marketsPrioritized = new List <Tuple <string, string> >(); var marketsToTest = ConfigManager.mainConfig.MarketsToTest; string[] accountGuidSplit = ConfigManager.mainConfig.AccountGUID.Split('-'); string botNamePrefixToMatch = "BS-" + accountGuidSplit[0]; var customBots = HaasActionManager.GetAllCustomBotsWithPrefix(botNamePrefixToMatch); // Find active bot markets foreach (var bot in customBots) { marketsPrioritized.Add(new Tuple <string, string>(bot.PriceMarket.PrimaryCurrency, bot.PriceMarket.SecondaryCurrency)); } foreach (var market in marketsToTest) { bool matchFound = false; foreach (var pMarket in marketsPrioritized) { if (market.Equals(pMarket)) { matchFound = true; } } if (!matchFound) { marketsPrioritized.Add(market); } } return(marketsPrioritized); }
public static bool CheckHaasConnection() { try { HaasonlineClient haasonlineClient = new HaasonlineClient(ConfigManager.mainConfig.IPAddress, ConfigManager.mainConfig.Port, ConfigManager.mainConfig.Secret); var accounts = haasonlineClient.AccountDataApi.GetEnabledAccounts(); if (accounts.Result.ErrorCode == EnumErrorCode.Success) { if (HaasActionManager.GetAccountGUIDS().Count > 0) { return(true); } } } catch { // Just to supress the stack error that occurs for failed connection } return(false); }