Code Monkey home page Code Monkey logo

btcturk.net's Introduction

Hi there 👋

trophy

burakoner's github stats

burakoner's profile views

btcturk.net's People

Contributors

burakoner avatar dogac00 avatar eros1453 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

btcturk.net's Issues

CryptoExchange.Net Hatası

Merhabalar,
Binance.Net (v8.0.8) ile BtcTurk.Net (v2.5.0) aynı projede kullandığımda BtcTurk.Net ekran görüntüsüne paylaştığım hatayı vermektedir.
Kolay gelsin.

hata

BaseAddress Çalışmıyor!

Merhaba,
Aşağıdaki kodu çalıştırdığımda bakiye bilgisini başarıyla alabiliyorum.

var apiClient = new BtcTurkClient();
apiClient.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX");
var btc11 = apiClient.GetBalances();

Ancak aşağıdaki 2 kod bloğunu çalıştırdığımda ise "Server Error" hatası geriye dönüyor. Yukarıdaki koddan farklı olarak BaseAddress giriyorum.

var apiClient = new BtcTurkClient(new BtcTurkClientOptions { BaseAddress= "https://api-dev.btcturk.com/" });
apiClient.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX");
var btc11 = apiClient.GetBalances();
var apiClient = new BtcTurkClient(new BtcTurkClientOptions { BaseAddress= "https://api.btcturk.com" });
apiClient.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX");
var btc11 = apiClient.GetBalances();

BtcTürk Test için BaseAdress girdim çalışmadı. İlginç olan şu ki: Test değil de normal BtcTürk BaseAddress girdim o da çalışmadı. Fakat Options hiç girmesek o zaman çalışıyor.

Ancak BtcTürk Test üzerinde işlemler yapabilmem için BaseAdress değerini ayarlamam gerekiyor.
Yardımcı olursanız sevinirim.

getorderbook

getorderbook endpointi hata vermeye başladı

Minimum Emir Tutarı

Merhaba BtcTürk sitesinde minimum emir tutarları aşağıdaki gibi listelenmiştir.
Örneğin buna göre BTCUSDT için minimum 1USDT, ETHUSDT için ise minimum 5USDT'lik işlem açmak gerekiyor.

Ekran Alıntısı

Ancak API'den gelen Exchange bilgilerinde bir eksiklik var. Filters içerisindeki MinExchangeValue değeri her zaman web sitesinde gösterilen değerin 0.09 altında.

Örneğin aşağıdaki BTCUSDT için MinExchangeValue değeri 0.9 gösteriliyor. Oysa websitesinde 1 olarak belirtilmiş. Aynı şekilde manuel işlem açılmak istendiğinde de en az 1 dolar işlem açılabiliyor.

Adsız

Api'den ETHUSDT için ise MinExchangeValue => 4.91 olarak geliyor. Ancak normalde en az 5 dolarlık işlem açılabiliyor.
Bir kaç yerde TickSize üzerinden hesap yapılması gerekiyor yazılıyordu.
Bu konuda bir fikriniz var mı? Aradaki 0.09'luk değer komisyon mu? Bunun tam hesaplaması için TickSize üzerinden mi yoksa başka şekilde mi bir hesap yapmak gerekiyor?

Teşekkürler.

GetTradeTransaction hatası

Merhabalar,
GetTradeTransaction metodu imzalanarak yollanması gerekiyor fakat imzalanmadan yollanmış bu sebeple authantication hatası dönüyor bilginize.

Subscription limit

Merhaba @burakoner, beni hatırladığınızı düşünüyorum :), yıllar önce yazmış olduğum botu güncellemek için bazı adımlar atmaya karar verdim.

            foreach (var pair in pairs)
            {
                sock.SubscribeToOrderBookFull(pair, (data) =>
                {
                    if (data != null)
                    {
                    }
                });
            }

ile tüm pairlerin order booklarını takip etmeye çalışıyorum. Aynı zamanda SubscribeToTickersAsync 'e de bağlıyım. Pairs içerisinde 188 tane pair var. Yukarıdaki logic ile kullandığımda yaklaşık 5-10 adet paire bağlanıp diğerlerine ait herhangi bir sonuç göstermiyor.

BtcTurkSocketClientOptions içerisinde kullanılmayan //MaxSocketConnections = 50 gördüm. Acaba herhangi bir yerde limit var mı diye düşündüm, sorunun kaynağı hakkında bir yorumunuz var mı acaba ?

Sıfıra bölünme hatası

hata

Çok nadir de olsa bazen şu şekilde bir hata alıyorum, nedenini tam olarak bulamadım. Bir fikriniz var mı acaba ?

Commissions

Merhaba,

Btcturk endpointleri kullanıma açmış değil ancak bazı endpointlere erişebiliyoruz, preflight olarak gönderiliyor. Onlardan birisi de komisyon endpointi.

Account_Commissions_Endpoint = "account/commissions";

curl ile token vs girdikten sonra veriyi çekebiliyorum ancak BtcTurk.net ile kullanamadım.

Error {: No credentials provided for private endpoint } CryptoExchange.Net.Objects.NoApiCredentialsError

hatası veriyor.

    public WebCallResult<BtcTurkCommissions> GetCommissions(CancellationToken ct = default) => GetCommissionsAsync(ct).Result;

    public async Task<WebCallResult<BtcTurkCommissions>> GetCommissionsAsync(CancellationToken ct = default)
    {
        var result = await SingleApi.ExecuteAsync<BtcTurkApiResponse<BtcTurkCommissions>>(SingleApi.GetUri(Account_Commissions_Endpoint, PublicVersion), method: HttpMethod.Get, ct, signed: true).ConfigureAwait(false);
        if (!result.Success) return result.AsError<BtcTurkCommissions>(new BtcTurkApiError(result.Error.Code, result.Error.Message, result.Error.Data));
        if (result.Data.ErrorCode != "SUCCESS" && result.Data.ErrorCode.ToInt32Safe() > 0) return result.AsError<BtcTurkCommissions>(new BtcTurkApiError(result.Data.ErrorCode.ToInt32Safe(), result.Data.ErrorMessage, null));

        return result.As(result.Data.Data);
    }

namespace BtcTurk.Net.Objects.RestApi;

public class BtcTurkCommissions
{
    public List<Datum> data { get; set; }
}

public class Datum
{
    public string pairSymbolNormalized { get; set; }
    public string pairSymbol { get; set; }
    public string taker { get; set; }
    public string maker { get; set; }
}

incelediğimden anladığım kadarıyla signed parametresi, bunun için kullanılıyor ancak her seferinde yukarıdaki hatayı alıyorum. Gözden kaçırdığım başka ne var acaba, yardımcı olabilir misiniz ?

API erişim sorunu.

Merhaba,
BTCUTURK API erişiminde sorun yaşıyorum al sat listele işlemlerini basit olarak gösteren C# kodları paylaşabilir misiniz?

Binance.Net Çakışması

Merhabalar,
BtcTurk.Net versiyon 1.2.3 sürümünü yani en son sürümü kullanıyorum.
Uygulamam ayrıca Binance entegrasyonu için Binance.Net kütüphanesini indirdim. (Sürüm: 6.4.1)
Binance.Net kütüphanesini ekledikten sonra Constructor'da tanımladığım BtcTurkSocketClient hata vermeye başladı.
Hata mesajını aşağıda görüntüleyebilirsiniz. Binance.Net kütüphanesini kaldırınca düzgün çalışmaya devam ediyor.
Her iki kütüphane de CryptoExchange.Net kütüphanesini kullanıyor. Bilmiyorum belki sorun buradan kaynaklanıyor olabilir.

Binance.Net URL Adresi: https://github.com/JKorf/Binance.Net

Ekran Alıntısı

BtcTürk WebSocket Sipariş Dinleme

Merhabalar,
BtcTürk ekibi ile yaptığım görüşmeler sonucunda Websocket üzerinden sipariş takibi yapılabildiğini söylediler.
Şöyle ki: Mevcut bir sipariş açıldığında/kapandığında/iptal edildiğinde soket üzerinden bunun bilgisi veriliyormuş.

Websocket bağlantısı yaparken 111 kodlu mesajı göndermek gerektiğini söylediler, oturum açılabilmesi için.

Sorum şu: Şu anda BtcTurk.Net C# kütüphanenizde Websocket üzerinden sipariş dinlemesi yapılabiliyor mu? Eğer yapılabiliyorsa, soket üzerinden nasıl oturum açıldığı ile ilgili örnek bir kod bloğu paylaşabilir misiniz?
Eğer sipariş dinlemesi yapılamıyorsa şu anda, yakın zamanda bu özelliği eklemeyi düşünüyor musunuz?
Teşekkürler. :)

WebSocket order listen

Merhabalar,

Son versiyonunuzda WebSocket de order listen işlemi yapılabiliyor mu? Yazdığım botta GetOpenOrders() metoduyla bu bilgileri çekebiliyorum fakat api limiti olduğu için sıkıntı çıkıyor.

Order Olusturma

Selamlar, daha onceden kullandigim buy, sell order bir kaç saattir calismiyor. Btcturk icerisinde kullanici hareketlerinde de göremiyorum. Sizde sorunsuz calisiyor mu ? Sorunun kaynagi ne olabilir ?

Dokumantasyon bilgileri

Merhaba Burak abi hatırlarsınız beni, projemi bitirdim ve uzun süredir hataları, ufak tefek düzeltmeleri , stratejileri falan düzelttim geliştirdim. Gelişmiş ve yüzdesel olarak çok karlı bir sistem çıktı ortaya. Büyük yardımınız oldu bana, gelen ilk karları sizinle paylaşacağımı belirtmiştim. Sayfadaki Btc cüzdanının güncel ve size ait olup olmadığını sormak için yazıyorum. Ben, cevabınızı aldıktan sonra bunu kaldırabilirsiniz.

Precision Nasil Bulunur?

bu metod cagrilacak alinan symbol'un filtresinde cesitli bilgiler aliniyor

var symbols = exchangeData.Data.Symbols;           
var exchangeData = await BtcTurkClientManager.BtcTurkClient.GetServerExchangeInfoAsync();
var btcTurkSymbols  = symbols.Where(f => f.Denominator == "USDT" && f.Status == BtcTurkSymbolStatus.Trading).ToList();                         
foreach (var btcturkSymbol in btcTurkSymbols)
{
   var tickSize = btcturkSymbol.Filters.First().TickSize;
}

image

Sitede 0.00000001 minimum deger ile basliyor ve 0.00000002 0.00000003 seklinde arttirilabiliyor

Ancak API'den gelen sonuc 0.0000000000001 seklinde.
Dogru minimum deger nasil bulunur ve tabi ki dogru precision?

Binance'da lotsizefilter kullanarak stepsize alinarak hesaplama yapilabiliyor
su sekilde
var stepSize = binanceSymbol.LotSizeFilter?.StepSize
var quantity = Math.Floor(baseAmount / stepSize) * stepSize;

Unauthorized error

It gives Unauthorized error, I set default options before create client. I checked my ip adress from btcTurk and permissions.Everything seems alright but it gives error. Did I forget something before get account balance ?

`using BtcTurk.Net;
using CryptoExchange.Net.Authentication;

public class BtcTurkController
{
private BtcTurkClient client;

public void Initialize()
{
    Authenticate();
    client = new BtcTurkClient();
    var ping = client.Ping();
    Debug.Log($"BtcTurk Ping: {ping.Success}");
}

private void Authenticate()
{
    BtcTurkClient.SetDefaultOptions(new BtcTurkClientOptions()
    {
        ApiCredentials = new ApiCredentials(Constants.BtcTurkApiKey, Constants.BtcTurkApiSecret),
    });
}

public async void GetAccountInfo()
{
    try
    {
        var accountInfo = await client.GetBalancesAsync();
        if (accountInfo.Success)
        {
            string text = $"BtcTurk account info: {accountInfo.Data.Length}";
            foreach (var balance in accountInfo.Data)
            {
                if (balance.Balance > 0)
                {
                    text += $"\n{balance.Asset} -> {balance.Balance}";
                }
            }
            
            Debug.Log(text);
        }
        else
        {
            Debug.Log($"error {accountInfo.ResponseStatusCode}");
        }

    }
    catch
    {
        Debug.Log("An error occurred");
    }
}

}`

Websocket Ticker Last Price

Merhabalar,
Websocket üzerinden SubscribeToTickerAsync() fonksiyonu ile "ticker" kanalına abone oldum.
Normalde (https://api.btcturk.com/api/v2/ticker?pairSymbol=BTC_USDT) adresinden de görüleceği üzere last diye bir alan var. Fakat gelen websocket cevabında "last" alanı yok.
Websocket üzerinden lastPrice'ı anlık olarak dinlemek istiyorum.
Yardımcı olur musunuz?
Teşekkürler.

Nuget Install Hatası

Merhaba;

Bir yeni başlayan sorusu sormak isterim. Kütüphaneyi yüklemek istediğimde
Could not install package 'BtcTurk.Net 2.5.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.6.1', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author. 0
şeklinde bir hata alıyorum. Uygulama geliştirmek için VS 2015 kullanmaktayım hangi frame work ile kütüphaneyi kullanabilirim?

Teşekkürler.

Socket authentication

Socket authentication ile ilgili kod içerisinde BtcTurkAuthenticateSocket metodunda commentli bölümler bulunuyor. BtcTurk api dokümantasyonunda da bilgi görünmüyor. Kullanımla ilgili bilgi verebilir misiniz?

Versiyon 1.2.1 Hatası

Merhaba,
Az evvel versiyonumu 1.2.0'dan 1.2.1'e yükselttim.
Bu yükseltme ile birlikte BtcTürk borsa bilgilerini alamadığımı fark ettim
Versiyonu tekrar 1.2.0'a geri çektim ve çalıştı.
Versiyon güncellemesi başka yerleri de bozmuş mu emin değilim.
Kolay gelsin.

Adsız

Order

Selamlar @burakoner, pazar günü sizi rahatsız ediyorum ama k.bakmayın , sanırım issue'yi kapattığımız için son yazdıgım size bildirim olarak gelmedi ben hala order problemi yaşıyorum ve şöyle bi hata mesajı alıyorum, önceki mesajımı yapıştırıyorum buraya...

Tekrar selam, dün herhangi bi hata almıyordum ancak order da gerçekleşmiyordu. Az önce tekrar denedim şuan hata mesajı geliyor şu şekilde

2020.08.09 12:35:43:621 | Debug | All subscription successfully resubscribed on reconnected socket.
0x2474 iş parçacığı 0 (0x0) koduyla çıktı.
0x2588 iş parçacığı 0 (0x0) koduyla çıktı.
2020.08.09 12:36:03:625 | Info | Socket 1 error: System.IO.IOException: Unable to read data from the transport connection: Varolan bir bağlantı uzaktaki bir ana bilgisayar tarafından zorla kapatıldı..
---> System.Net.Sockets.SocketException (10054): Varolan bir bağlantı uzaktaki bir ana bilgisayar tarafından zorla kapatıldı.
--- End of inner exception stack trace ---
at System.Net.Security.SslStream.g__CompleteAsync|210_1[TWriteAdapter](ValueTask writeTask, Byte[] bufferToReturn)
at System.Net.Security.SslStream.WriteAsyncInternal[TWriteAdapter](TWriteAdapter writeAdapter, ReadOnlyMemory1 buffer) at SuperSocket.ClientEngine.AuthenticatedStreamTcpSession.SendInternalAsync(PosList1 items)
2020.08.09 12:36:03:627 | Info | Socket 1 Connection lost, will try to reconnect after 00:00:05
2020.08.09 12:36:03:630 | Info | Socket 1 error: System.Net.Sockets.SocketException (10057): Yuva bağlı olmadığından ve (bir veri birimi yuvasında bir sento çağrısı kullanırken) adres sağlanmadığından bir veri gönderme veya alma isteğine izin verilmedi.
2020.08.09 12:36:08:639 | Debug | Socket 1 resetting
2020.08.09 12:36:08:642 | Debug | Socket 1 connecting
2020.08.09 12:36:13:651 | Warning | Request timed out
2020.08.09 12:36:13:660 | Warning | Socket 1 message processing slow (72832ms), consider offloading data handling to another thread. Data from this socket may arrive late or not at all if message processing is continuously slow.
2020.08.09 12:36:13:663 | Debug | Socket 1 received data: [100,{"type":100,"id":0,"ok":true,"message":"join|tradeview:ATOMTRY_1"}]
2020.08.09 12:36:13:665 | Debug | Socket 1 sending data: [151,{"type":151,"channel":"tradeview","event":"DASHTRY_1","join":true}]
2020.08.09 12:36:13:667 | Debug | Socket 1 received data: [428,{"D":1596965700,"P":"ATOMTRY","R":1,"O":"34.8700000000","H":"34.8700000000","L":"34.8700000000","C":"34.8700000000","V":"0","channel":"tradeview","event":"ATOMTRY_1","type":428}]
2020.08.09 12:36:13:670 | Info | Socket 1 error: System.Exception: You must send data by websocket after websocket is opened!
2020.08.09 12:36:13:671 | Debug | Socket 1 received data: [100,{"type":100,"id":0,"ok":true,"message":"join|tradeview:BTCTRY_1"}]
2020.08.09 12:36:13:674 | Debug | Subscription completed
2020.08.09 12:36:13:676 | Debug | Socket 1 connection failed, state: Connecting
2020.08.09 12:36:13:676 | Debug | Socket 1 received data: [428,{"D":1596965700,"P":"BTCTRY","R":1,"O":"85577.0000000000","H":"85577.0000000000","L":"85577.0000000000","C":"85577.0000000000","V":"0","channel":"tradeview","event":"BTCTRY_1","type":428}]
2020.08.09 12:36:13:682 | Debug | Socket 1 failed to reconnect
2020.08.09 12:36:18:688 | Debug | Socket 1 resetting
2020.08.09 12:36:18:691 | Debug | Socket 1 connecting
0x2718 iş parçacığı 0 (0x0) koduyla çıktı.
2020.08.09 12:36:23:680 | Debug | Socket 1 sending data: [151,{"type":151,"channel":"tradeview","event":"EOSTRY_1","join":true}]
2020.08.09 12:36:23:682 | Info | Socket 1 error: System.Exception: You must send data by websocket after websocket is opened!
2020.08.09 12:36:23:684 | Debug | Socket 1 connection failed, state: Connecting
2020.08.09 12:36:23:687 | Debug | Socket 1 failed to reconnect
0x1538 iş parçacığı 0 (0x0) koduyla çıktı.
2020.08.09 12:36:28:699 | Debug | Socket 1 resetting
2020.08.09 12:36:28:701 | Debug | Socket 1 connecting
2020.08.09 12:36:33:692 | Debug | Socket 1 sending data: [151,{"type":151,"channel":"tradeview","event":"ETHTRY_1","join":true}]
2020.08.09 12:36:33:695 | Info | Socket 1 error: System.Exception: You must send data by websocket after websocket is opened!
2020.08.09 12:36:33:697 | Debug | Socket 1 connection failed, state: Connecting
2020.08.09 12:36:33:699 | Debug | Socket 1 failed to reconnect
2020.08.09 12:36:36:602 | Debug | Socket 1 received data: [991,{"type":991,"current":"5.1.0","min":"2.3.0"}]
2020.08.09 12:36:38:712 | Debug | Socket 1 resetting
2020.08.09 12:36:38:716 | Debug | Socket 1 connecting
2020.08.09 12:36:39:042 | Debug | Socket 1 connected
2020.08.09 12:36:39:043 | Debug | Socket 1 received data: [991,{"type":991,"current":"5.1.0","min":"2.3.0"}]
2020.08.09 12:36:39:045 | Info | Socket 1 reconnected after 00:00:35.4179164
2020.08.09 12:36:39:049 | Debug | Socket 1 sending data: [151,{"type":151,"channel":"ticker","event":"BTCTRY","join":true}]
2020.08.09 12:36:39:052 | Debug | Socket 1 sending data: [151,{"type":151,"channel":"ticker","event":"all","join":true}]
2020.08.09 12:36:39:055 | Debug | Socket 1 sending data: [151,{"type":151,"channel":"tradeview","event":"ATOMTRY_1","join":true}]
2020.08.09 12:36:39:058 | Debug | Socket 1 sending data: [151,{"type":151,"channel":"tradeview","event":"BTCTRY_1","join":true}]
2020.08.09 12:36:39:061 | Debug | Socket 1 sending data: [151,{"type":151,"channel":"tradeview","event":"DASHTRY_1","join":true}]
2020.08.09 12:36:39:063 | Debug | Socket 1 sending data: [151,{"type":151,"channel":"tradeview","event":"ETHTRY_1","join":true}]
2020.08.09 12:36:39:125 | Debug | Socket 1 received data: [100,{"type":100,"id":0,"ok":true,"message":"join|ticker:BTCTRY"}]
2020.08.09 12:36:39:128 | Debug | Subscription completed
2020.08.09 12:36:39:131 | Debug | Socket 1 received data: [402,{"B":"85600","A":"85659","PS":"BTCTRY","H":"86249","L":"85025","LA":"85600","O":"85499","V":"708.51982259","AV":"85749.813858","D":"160","DP":"0.12","DS":"TRY","NS":"BTC","PId":1,"channel":"ticker","event":"BTCTRY","type":402}]
2020.08.09 12:36:39:156 | Debug | Socket 1 received data: [100,{"type":100,"id":0,"ok":true,"message":"join|ticker:all"}]
2020.08.09 12:36:39:159 | Debug | Subscription completed
2020.08.09 12:36:39:206 | Debug | Socket 1 received data: [401,{"items":[{"B":"85600","A":"85659","PS":"BTCTRY","H":"86249","L":"85025","DP":"0.12","LA":"85600","O":"85499","V":"708.51982259","AV":"85749.813858","D":"160","DS":"TRY","NS":"BTC","PId":1,"Ord":0},

Possible to use websocket datas with Rest API ?

There is no endpoints on websocket channel, can we use rest api endpoints according to websocket datas ? If its possible, can you show me example code ?

Btw Thanks for contributions, Best Regards...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.