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() } })); }
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() } })); }
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() } })); }
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) } })); }
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() } })); }
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() } })); }
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); }
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() } })); }
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() } })); }
/// <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); }
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) } })); }
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() } })); }
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() } })); }
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() } })); }
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() } })); }
/// <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)); }
/// <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); }