Beispiel #1
0
        /// <summary>
        /// Performs a scan for all filtered symbols
        /// </summary>
        /// <returns></returns>
        public async Task <Signal> ScanAsync(string symbol)
        {
            try
            {
                // download the new candles
                var candles = (await _api.GetCandlesAsync(symbol, 60 * _minutes, DateTime.Now.AddMinutes(-5 * 50))).Reverse().ToList();
                candles = AddMissingCandles(candles);
                // scan candles for buy/sell signal
                TradeType tradeType = TradeType.Long;
                var       strategy  = new DayTradingStrategy(symbol, _settings);
                if (strategy.IsValidEntry(candles, 0, out tradeType))
                {
                    // ignore signals for shorts when not allowed
                    if (tradeType == TradeType.Short && !_settings.AllowShorts)
                    {
                        return(null);
                    }

                    // got buy/sell signal.. write to console
                    Console.Beep();
                    return(new Signal()
                    {
                        Symbol = symbol,
                        Trade = tradeType.ToString(),
                        Date = $"{candles[0].Timestamp.AddHours(2):dd-MM-yyyy HH:mm}"
                    });
                }
Beispiel #2
0
        private static void Main(string[] args)
        {
            // create a virtual trade manager
            var virtualTradeManager = new VirtualTradeManager();

            // create day trading strategy
            var strategy = new DayTradingStrategy("NEOUSD");

            // create new backtester
            var tester = new BackTester();

            // test the strategy on bitfinex
            tester.Test(new ExchangeBitfinexAPI(), strategy);
        }
Beispiel #3
0
        private static void Main(string[] args)
        {
            var startTime = new DateTime(2018, 5, 14, 0, 0, 0);
            var settings  = new Settings();

            // create a virtual trade manager
            var virtualTradeManager = new VirtualTradeManager();

            // create day trading strategy
            var strategy = new DayTradingStrategy("ETHBTC", settings);

            // create new backtester
            var tester = new BackTester();

            // test the strategy on bitfinex
            tester.Test(new ExchangeBitfinexAPI(), strategy, startTime);
        }
Beispiel #4
0
        /// <summary>
        /// Performs a scan for all filtered symbols
        /// </summary>
        /// <returns></returns>
        public async Task <Signal> ScanAsync(ExtendedSymbol symbol, int minutes)
        {
            try
            {
                // download the new candles
                var candles = (await _api.GetCandlesAsync(symbol.Symbol.MarketSymbol, 60 * minutes, DateTime.Now.AddMinutes(-5 * 50))).Reverse().ToList();
                candles = AddMissingCandles(candles, minutes);
                // scan candles for buy/sell signal
                TradeType tradeType = TradeType.Long;

                var strategy = new DayTradingStrategy(symbol.Symbol.MarketSymbol, _settings);
                if (strategy.IsValidEntry(candles, 0, out tradeType, out decimal bandwitdh))
                {
                    // ignore signals for shorts when not allowed
                    if (tradeType == TradeType.Short && !_settings.AllowShorts)
                    {
                        return(null);
                    }

                    // got buy/sell signal.. write to console
                    int beepFrequency = symbol.Trends[1].Trend > 0 ? 1000 : 500;
                    Console.Beep(beepFrequency, 200);

                    return(new Signal()
                    {
                        Symbol = symbol.Symbol.MarketSymbol,
                        Trade = tradeType.ToString(),
                        Date = $"{candles[0].Timestamp.AddHours(2):dd-MM-yyyy HH:mm}",
                        TimeFrame = $"{minutes} min",
                        HyperTraderURI = GetHyperTradeURI(symbol.Symbol, minutes),
                        Volume = symbol.Ticker.Volume,
                        FourHourTrend = String.Format("{00:P2}", symbol.Trends[0].Trend),
                        OneHourTrend = String.Format("{00:P2}", symbol.Trends[1].Trend),
                        FourHourTrendObject = symbol.Trends[0],
                        OneHourTrendObject = symbol.Trends[1],
                        BBBandwidth = String.Format("{0:0.0#}", bandwitdh)
                    });
                }