Example #1
0
        public override void Setup(bool simulated = false)
        {
            GUI.GUIManager.AddStrategyScreenPair(this.pair);

            // ----------------------------------

            SetupRules();

            // ----------------------------------

            // Check file if this has been bought already
            double openPos = Utility.TradeTracker.GetOpenPosition(pair);

            LastBuyTime  = Utility.TradeTracker.GetOpenPositionBuyTime(pair);
            openPosition = openPos;

            predictorExtremes   = new Data.Predictors.PriceExtremes(pair);
            predictorPriceDelta = new Data.Predictors.PriceDelta(pair);

            TickerChangedEventArgs[] tickers = Data.Store.GetTickerData(pair);
            if (tickers == null)
            {
                throw new Exception("Couldn't build predictor history for " + pair + " - no tickers available");
            }

            predictorExtremes.Update(tickers);
            predictorPriceDelta.Recalculate(tickers);
        }
Example #2
0
        public override void Setup(bool simulate = false)
        {
            GUI.GUIManager.AddStrategyScreenPair(this.pair);

            // ----------------------------------

            try {
                Data.VarAnalysis.VarPairData vpd = Data.VarAnalysis.LoadResults(pair);
                optTrigger = vpd.deltaValue;

                Console.WriteLine(pair + ": " + optTrigger.ToString("F8"));

                // todo: check vpd timestamp
                // (if older then 24h then it needs refreshing)
            }
            catch (Exception e) {
                CLI.Manager.PrintWarning("No optimized pair data for " + pair + "!");
            }

            optTrigger *= 50;

            // ----------------------------------

            SetupRules(optTrigger);

            // ----------------------------------

            // Check file if this has been bought already
            double openPos = Utility.TradeTracker.GetOpenPosition(pair);

            LastBuyTime  = Utility.TradeTracker.GetOpenPositionBuyTime(pair);
            openPosition = openPos;

            predictorExtremes = new Data.Predictors.PriceExtremes(pair);
            predictorDX       = new Data.Predictors.DirectionIndex(pair);

            TickerChangedEventArgs[] tickers = Data.Store.GetTickerData(pair);
            if (tickers == null)
            {
                throw new Exception("Couldn't build predictor history for " + pair + " - no tickers available");
            }

            predictorExtremes.Update(tickers);

            List <TickerChangedEventArgs> tickerList = new List <TickerChangedEventArgs>();

            for (int i = 0; i < tickers.Length; i++)
            {
                tickerList.Add(tickers[i]);

                predictorDX.Recalculate(tickerList.ToArray());

                if (i % 100 == 0)
                {
                    Utility.ThreadManager.ReportAlive("LowAlts");
                }
            }
        }
Example #3
0
        // ------------------------------

        public override void Reset()
        {
            base.Reset();

            openPosition = 0;

            predictorExtremes = null;

            Setup(true);
        }
Example #4
0
        // ------------------------------

        public override void Reset()
        {
            base.Reset();

            openPosition = 0;

            predictorExtremes   = null;
            predictorVolume     = null;
            predictorPriceDelta = null;

            Setup(true);
        }
Example #5
0
        public override void Setup(bool simulate = false)
        {
            GUI.GUIManager.AddStrategyScreenPair(this.pair);

            // ----------------------------------

            SetupRules();

            // ----------------------------------

            // Check file if this has been bought already
            double openPos = Utility.TradeTracker.GetOpenPosition(pair);

            LastBuyTime  = Utility.TradeTracker.GetOpenPositionBuyTime(pair);
            openPosition = openPos;

            TickerChangedEventArgs lastTicker = Data.Store.GetLastTicker(pair);

            if (lastTicker == null)
            {
                throw new Exception("Couldn't build timeframe model for " + pair + " - no tickers available");
            }

            predictorExtremes = new Data.Predictors.PriceExtremes(pair);
            predictorMACD     = new Data.Predictors.MACD(pair, 7200);
            predictorVolume   = new Data.Predictors.Volume(pair, 300, 7200);
            predictorMeanRev  = new Data.Predictors.MeanReversion(pair, 7200);

            TickerChangedEventArgs[] tickers = Data.Store.GetTickerData(pair);
            if (tickers == null)
            {
                throw new Exception("Couldn't build predictor history for " + pair + " - no tickers available");
            }

            predictorExtremes.Update(tickers);
            predictorVolume.Recalculate(tickers);
            predictorMeanRev.Recalculate(tickers);

            List <TickerChangedEventArgs> tickerList = new List <TickerChangedEventArgs>();

            for (int i = 0; i < tickers.Length; i++)
            {
                tickerList.Add(tickers[i]);

                predictorMACD.Recalculate(tickerList.ToArray());

                if (i % 100 == 0)
                {
                    Utility.ThreadManager.ReportAlive("MeanRevADX");
                }
            }
        }
Example #6
0
        // ------------------------------

        public override void Reset()
        {
            base.Reset();

            openPosition = 0;

            predictorExtremes = null;
            predictorMACD     = null;
            predictorVolume   = null;
            predictorMeanRev  = null;

            Setup(true);
        }
Example #7
0
        // ------------------------------

        public void Setup()
        {
            GUI.GUIManager.AddStrategyScreenPair(this.pair);

            // ----------------------------------

            ruleDelayAllTrades = new RuleDelayAllTrade();
            ruleDelayBuy       = new RuleDelayBuy();

            ruleMinBase      = new RuleMinimumBaseAmount();
            ruleMinBasePost  = new RuleMinimumBaseAmountPost();
            ruleMinQuote     = new RuleMinimumQuoteAmount();
            ruleMinQuotePost = new RuleMinimumQuoteAmountPost();

            ruleMinSellprice = new RuleMinimumSellPrice();
            ruleSellBand     = new RuleSellBand();
            ruleStopLoss     = new RuleStopLoss();

            rulePriceDelta = new RulePriceDelta();
            ruleMeanRev    = new RuleMeanRev();
            ruleMACD       = new RuleMACD();
            ruleADX        = new RuleADX();

            // order doesn't matter
            allRules = new TradeRule[] {
                ruleDelayAllTrades, ruleDelayBuy,             // time delay
                ruleMinBase, ruleMinBasePost,                 // minimum base amount
                ruleMinQuote, ruleMinQuotePost,               // minimum quote amount
                ruleMinSellprice, ruleSellBand, ruleStopLoss, // sell rules
                rulePriceDelta, ruleMeanRev, ruleADX, ruleMACD
            };                                                // buy rules

            // ----------------------------------

            LastBuyTime    = 0;
            TradeTimeBlock = 30;
            LastSellTime   = 0;

            LastBuyTime  = 0;
            openPosition = 0;

            predictorExtremes = new Data.Predictors.PriceExtremes(pair);
        }
Example #8
0
        // ------------------------------

        public override void Setup(bool simulate = false)
        {
            TickerChangedEventArgs[] tickers = Data.Store.GetTickerData(pair);
            if (tickers == null)
            {
                throw new Exception("Couldn't build predictor history for " + pair + " - no tickers available");
            }

            if (tickers.Length > 0)
            {
                LastUSDTBTCPrice = tickers.Last().MarketData.PriceLast;
            }
            Manager.UpdateWalletValue("USDT", LastUSDTBTCPrice);

            predictorExtremes = new Data.Predictors.PriceExtremes(pair);

            predictorExtremes.Update(tickers);

            GUI.GUIManager.UpdateMainSummary(tickers);
        }
Example #9
0
        public override void Setup(bool simulate = false)
        {
            GUI.GUIManager.AddStrategyScreenPair(this.pair);

            // ----------------------------------

            SetupRules();

            // ----------------------------------

            // Check file if this has been bought already
            double openPos = Utility.TradeTracker.GetOpenPosition(pair);

            LastBuyTime  = Utility.TradeTracker.GetOpenPositionBuyTime(pair);
            openPosition = openPos;

            predictorExtremes     = new Data.Predictors.PriceExtremes(pair);
            predictorPatternMatch = new Data.Predictors.PatternMatch(pair);

            TickerChangedEventArgs[] tickers = Data.Store.GetTickerData(pair);
            if (tickers == null)
            {
                throw new Exception("Couldn't build predictor history for " + pair + " - no tickers available");
            }

            predictorExtremes.Update(tickers);

            List <TickerChangedEventArgs> currTickers = new List <TickerChangedEventArgs>();

            currTickers.AddRange(tickers.Take(tickers.Length - 20));

            for (int i = tickers.Length - 20; i < tickers.Length; i++)
            {
                currTickers.Add(tickers[i]);
                predictorPatternMatch.Recalculate(currTickers.ToArray());
            }
        }