Esempio n. 1
0
 public async Task <TechnicalIndicator> OBV(string symbol, TimeInterval interval)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator>(BuildUri(ApiFunction.OBV), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() }
     }));
 }
Esempio n. 2
0
 public async Task <TechnicalIndicator <HilbertTransformPhasor> > HT_PHASOR(string symbol, TimeInterval interval, SeriesType seriesType)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator <HilbertTransformPhasor> >(BuildUri(ApiFunction.HT_PHASOR), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "series_type", seriesType.ToString() }
     }));
 }
Esempio n. 3
0
 public async Task <TechnicalIndicator> NATR(string symbol, TimeInterval interval, uint timePeriod)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator>(BuildUri(ApiFunction.NATR), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "time_period", timePeriod.ToString() }
     }));
 }
Esempio n. 4
0
 public async Task <TechnicalIndicator> SAR(string symbol, TimeInterval interval, float acceleration = 0.01f, float maximum = 0.20f)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator>(BuildUri(ApiFunction.SAR), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "acceleration", acceleration.ToString(CultureInfo.InvariantCulture) },
         { "maximum", maximum.ToString(CultureInfo.InvariantCulture) }
     }));
 }
Esempio n. 5
0
 public async Task <TechnicalIndicator> MIDPOINT(string symbol, TimeInterval interval, uint timePeriod, SeriesType seriesType)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator>(BuildUri(ApiFunction.MIDPOINT), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "time_period", timePeriod.ToString() },
         { "series_type", seriesType.ToString() }
     }));
 }
Esempio n. 6
0
 public async Task <TechnicalIndicator> ADOSC(string symbol, TimeInterval interval, uint fastperiod = 3, uint slowperiod = 10)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator>(BuildUri(ApiFunction.ADOSC), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "fastperiod", fastperiod.ToString() },
         { "slowperiod", slowperiod.ToString() }
     }));
 }
Esempio n. 7
0
        private static List <IslemListe> StratejiSonucHesapla(SymbolPrice coin, TimeInterval periyot, int emaUzunluk, double yuzde, List <MostDLL.Most> mostListe, List <double> iftsListe, List <decimal> macdListe)
        {
            List <IslemListe> islemListe = new List <IslemListe>();
            var sgIslemSay = 0;
            var sgPozisyon = "SAT";

            for (int i = 4; i < mostListe.Count; i++)
            {
                var itemMost = mostListe[i];
                if (itemMost.MostDurum == "AL")
                {
                    if (sgPozisyon == "SAT")
                    {
                        var iftsOnay = iftsListe[i - 1] >= -0.5 && iftsListe[i - 2] < -0.5 && iftsListe[i - 3] < -0.5;
                        var macdOnay = macdListe[i - 1] > 0;

                        if (iftsOnay && macdOnay)
                        {
                            sgIslemSay++;
                            sgPozisyon = "AL";
                        }
                    }
                }
                else
                {
                    if (sgPozisyon == "AL")
                    {
                        sgPozisyon = "SAT";
                    }
                }

                DateTime utc = itemMost.Bar.DateTime.UtcDateTime;
                islemListe.Add(new IslemListe
                {
                    Sembol            = coin.Symbol,
                    MostParametreleri = "(" + emaUzunluk + "," + yuzde * 100 + ")",
                    Periyot           = periyot.GetDescription(),
                    AcilisZamani      = utc.ToLocalTime(),
                    Durum             = sgPozisyon,
                    EmaDeger          = itemMost.EmaDegeri,
                    Fiyat             = itemMost.Bar.Open,
                    MostDeger         = itemMost.MostDegeri,
                    IslemSayisi       = sgIslemSay,
                    Bar = itemMost.Bar
                });
            }

            //Son işlemi sat durumuna geçip o anda eğer al durumunda ise kar oranını hesaba dahil ediyoruz
            if (islemListe.Count > 0)
            {
                islemListe.Last().Durum = "SAT";
            }

            return(islemListe);
        }
Esempio n. 8
0
 public async Task <TechnicalIndicator> ULTOSC(string symbol, TimeInterval interval, uint timeperiod1 = 7, uint timeperiod2 = 14, uint timeperiod3 = 28)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator>(BuildUri(ApiFunction.ULTOSC), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "timeperiod1", timeperiod1.ToString() },
         { "timeperiod2", timeperiod2.ToString() },
         { "timeperiod3", timeperiod3.ToString() }
     }));
 }
Esempio n. 9
0
 public async Task <TechnicalIndicator <StochasticFast> > STOCHF(string symbol, TimeInterval interval, uint fastkperiod = 5, uint fastdperiod = 3, MovingAverageType fastdmatype = MovingAverageType.Simple)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator <StochasticFast> >(BuildUri(ApiFunction.STOCHF), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "fastkperiod", fastkperiod.ToString() },
         { "fastdperiod", fastdperiod.ToString() },
         { "fastdmatype", ((int)fastdmatype).ToString() }
     }));
 }
Esempio n. 10
0
        /// <summary>
        /// Listen to the Kline endpoint.
        /// </summary>
        /// <param name="symbol">Ticker symbol.</param>
        /// <param name="interval">Time interval to retreive.</param>
        /// <param name="klineHandler">Handler to be used when a message is received.</param>
        public void ListenKlineEndpoint(string symbol, TimeInterval interval, ApiClientAbstract.MessageHandler <KlineMessage> klineHandler)
        {
            if (string.IsNullOrWhiteSpace(symbol))
            {
                throw new ArgumentException("symbol cannot be empty. ", "symbol");
            }

            var param = symbol + $"@kline_{interval.GetDescription()}";

            _apiClient.ConnectToWebSocket(param, klineHandler);
        }
Esempio n. 11
0
 public async Task <TechnicalIndicator <MesaAdaptiveMovingAverage> > MAMA(string symbol, TimeInterval interval, SeriesType seriesType, float fastlimit = 0.01f, float slowlimit = 0.01f)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator <MesaAdaptiveMovingAverage> >(BuildUri(ApiFunction.MAMA), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "series_type", seriesType.ToString() },
         { "fastlimit", fastlimit.ToString(CultureInfo.InvariantCulture) },
         { "slowlimit", slowlimit.ToString(CultureInfo.InvariantCulture) }
     }));
 }
Esempio n. 12
0
 public async Task <TechnicalIndicator> PPO(string symbol, TimeInterval interval, SeriesType seriesType, uint fastperiod = 12, uint slowperiod = 26, MovingAverageType matype = MovingAverageType.Simple)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator>(BuildUri(ApiFunction.PPO), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "series_type", seriesType.ToString() },
         { "fastperiod", fastperiod.ToString() },
         { "slowperiod", slowperiod.ToString() },
         { "matype", ((int)matype).ToString() }
     }));
 }
Esempio n. 13
0
 public async Task <TechnicalIndicator <Macd> > MACD(string symbol, TimeInterval interval, SeriesType seriesType, uint fastperiod = 12, uint slowperiod = 26, uint signalperiod = 9)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator <Macd> >(BuildUri(ApiFunction.MACD), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "series_type", seriesType.ToString() },
         { "fastperiod", fastperiod.ToString() },
         { "slowperiod", slowperiod.ToString() },
         { "signalperiod", signalperiod.ToString() }
     }));
 }
Esempio n. 14
0
 public async Task <TechnicalIndicator <BollingerBands> > BBANDS(string symbol, TimeInterval interval, uint timePeriod, SeriesType seriesType, uint nbdevup = 2, uint nbdevdn = 2, MovingAverageType matype = MovingAverageType.Simple)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator <BollingerBands> >(BuildUri(ApiFunction.BBANDS), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "time_period", timePeriod.ToString() },
         { "series_type", seriesType.ToString() },
         { "nbdevup", nbdevup.ToString() },
         { "nbdevdn", nbdevdn.ToString() },
         { "matype", ((int)matype).ToString() }
     }));
 }
Esempio n. 15
0
 public async Task <TechnicalIndicator <Macd> > MACDEXT(string symbol, TimeInterval interval, SeriesType seriesType, uint fastperiod = 12, uint slowperiod = 26, uint signalperiod = 9, MovingAverageType fastmatype = MovingAverageType.Simple, MovingAverageType slowmatype = MovingAverageType.Simple, MovingAverageType signalmatype = MovingAverageType.Simple)
 {
     return(await ApiClient.SendGetAsync <TechnicalIndicator <Macd> >(BuildUri(ApiFunction.MACDEXT), new Dictionary <string, string>
     {
         { "symbol", symbol },
         { "interval", interval.GetDescription() },
         { "series_type", seriesType.ToString() },
         { "fastperiod", fastperiod.ToString() },
         { "slowperiod", slowperiod.ToString() },
         { "signalperiod", signalperiod.ToString() },
         { "fastmatype", ((int)fastmatype).ToString() },
         { "slowmatype", ((int)slowmatype).ToString() },
         { "signalmatype", ((int)signalmatype).ToString() }
     }));
 }
Esempio n. 16
0
        /// <summary>
        /// Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.
        /// </summary>
        /// <param name="symbol">Ticker symbol.</param>
        /// <param name="interval">Time interval to retreive.</param>
        /// <param name="limit">Limit of records to retrieve.</param>
        /// <returns></returns>
        public async Task <IEnumerable <Candlestick> > GetCandleSticks(string symbol, TimeInterval interval, DateTime?startTime = null, DateTime?endTime = null, int limit = 500)
        {
            if (string.IsNullOrWhiteSpace(symbol))
            {
                throw new ArgumentException("symbol cannot be empty. ", "symbol");
            }

            var args = $"symbol={symbol.ToUpper()}&interval={interval.GetDescription()}"
                       + (startTime.HasValue ? $"&startTime={startTime.Value.GetUnixTimeStamp()}" : "")
                       + (endTime.HasValue ? $"&endTime={endTime.Value.GetUnixTimeStamp()}" : "")
                       + $"&limit={limit}";

            var result = await _apiClient.CallAsync <dynamic>(ApiMethod.GET, EndPoints.Candlesticks, false, args).ConfigureAwait(false);

            var parser       = new CustomParser();
            var parsedResult = parser.GetParsedCandlestick(result);

            return(parsedResult);
        }
        public async Task <Candlestick[]> GetCandlesticks(string symbol, TimeInterval timeInterval, long?start = null, long?end = null, int?limit = null)
        {
            var parameters = $"symbol={symbol}&interval={timeInterval.GetDescription()}";

            if (start.HasValue)
            {
                parameters += $"&startTime={start.Value}";
            }
            if (end.HasValue)
            {
                parameters += $"&endTime={end.Value}";
            }
            if (limit.HasValue)
            {
                parameters += $"&limit={limit.Value}";
            }

            var reply = await _restClient.CallAsync(HttpMethod.Get, "/api/v3/klines", parameters);

            return(Convert(reply));
        }
Esempio n. 18
0
        /// <summary>
        /// Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.
        /// </summary>
        /// <param name="symbol">Ticker symbol.</param>
        /// <param name="interval">Time interval to retreive.</param>
        /// <param name="limit">Limit of records to retrieve.</param>
        /// <returns></returns>
        public async Task <IEnumerable <Candlestick> > GetCandleSticks(string symbol, TimeInterval interval, int limit = 500)
        {
            if (string.IsNullOrWhiteSpace(symbol))
            {
                throw new ArgumentException("symbol cannot be empty. ", "symbol");
            }

            var result = await _apiClient.CallAsync <dynamic>(ApiMethod.GET, EndPoints.Candlesticks, false, $"symbol={symbol.ToUpper()}&interval={interval.GetDescription()}&limit={limit}");

            var parser       = new CustomParser();
            var parsedResult = parser.GetParsedCandlestick(result);

            return(parsedResult);
        }