Pages:
Author

Topic: Order Emirinde Kaçıncı Sıradayım Ne Zaman Sıra Gelir Öğrenme (Read 506 times)

jr. member
Activity: 322
Merit: 1
Sıra geleceğini nereden anlayacağız ki teorik olarak sonsuza kadar sıra gelmeyebilir. Birde order zaten emir demek değil miydi?
member
Activity: 812
Merit: 14
FRX: Ferocious Alpha
Bir robotum olsa bu api işlerine kafa yoracağım ama şimdilik uzaktan izlemeyi tercih ediyorum.

API işlerine kafa yorarsanız kendi robotunuzu yapabiliyorsunuz zaten.

Dostum helal olsun Carolina denilen dangalak tek sizinle adam akıllı yazışmis. Onda da cikari olduğu için. Dün şükürler olsun gitti forumdan. Meriti güme gitti diyordum size vermiş. Kıymetini bilin  Cheesy
full member
Activity: 840
Merit: 103
Gecmisi ve toplam emir degerindeki kaldirilan emirlerin toplamini ayri ayri hesaplayip gostermek daha iyi olur. Ortalama bir deger cikarabiliriz.
Eskiden her 10 dakikada 1 hot alan bir program yazarak bulabilmek mumkundu ama binance 0.001btc limiti getirdi. Eger her saat 4$lik coin almak sizi etkilemiyorsa boyle bir programla tahmin yapilabilir. Gecmiste gerceklesen emirlerin takibi yapilarak hangi tarihteki islemin gerceklestigi bulunur.
member
Activity: 112
Merit: 31
Bir robotum olsa bu api işlerine kafa yoracağım ama şimdilik uzaktan izlemeyi tercih ediyorum.

API işlerine kafa yorarsanız kendi robotunuzu yapabiliyorsunuz zaten.
member
Activity: 112
Merit: 31
Merit verdim
Teşekkür ederim. Kodu güncelledim, 4 adet değişkeni tanımlamanız yeterli.
$type için "BUY" ya da "SELL"
$pair için "XXXBTC" şeklinde girilmesi yeterli.

kendi açık emrilerinizi görebilmek için API keyine ve secretine ihtiyaç var, onları da binancede account altında oluşturabilirsiniz.

Birde dostum buna 24 saatte 100milyon buy olmus 540milyon sell olmus gibi hesaplaması varmı yani tradeleri hesaplayacak 24 saatteki total alım ve satım

var, onu da tradeHistory ile çekiyoruz. Akşama bakayım, haber veririm.
Biraz vakit ayırabilsem evde (yapamıyorum bebek var), tüm borsaların API'leri ile kendi sistemimi kuracağım da, işte...
jr. member
Activity: 378
Merit: 1
Bir robotum olsa bu api işlerine kafa yoracağım ama şimdilik uzaktan izlemeyi tercih ediyorum.
jr. member
Activity: 140
Merit: 2
Merit verdim
Teşekkür ederim. Kodu güncelledim, 4 adet değişkeni tanımlamanız yeterli.
$type için "BUY" ya da "SELL"
$pair için "XXXBTC" şeklinde girilmesi yeterli.

kendi açık emrilerinizi görebilmek için API keyine ve secretine ihtiyaç var, onları da binancede account altında oluşturabilirsiniz.

Birde dostum buna 24 saatte 100milyon buy olmus 540milyon sell olmus gibi hesaplaması varmı yani tradeleri hesaplayacak 24 saatteki total alım ve satım
member
Activity: 112
Merit: 31
Merit verdim
Teşekkür ederim. Kodu güncelledim, 4 adet değişkeni tanımlamanız yeterli.
$type için "BUY" ya da "SELL"
$pair için "XXXBTC" şeklinde girilmesi yeterli.

kendi açık emrilerinizi görebilmek için API keyine ve secretine ihtiyaç var, onları da binancede account altında oluşturabilirsiniz.
jr. member
Activity: 140
Merit: 2
member
Activity: 112
Merit: 31
Sadece binance hocam https://www.binance.com/en/trade/HOT_BTC sadece bu pair. Sadece toplam buy sell 24 saatte ne olmus onu bile görsem yeterli

Şimdi pair kısmı kolay, ben yanlış mı anladım baştan, son 24 saatteki trade history(gerçekleşen) mi lazım, yoksa açık emrinizin(gerçekleşmeyi bekleyen) sırası ve o sıraya kadarki toplam HOT miktarı mı lazım.

2. dediğiniz daha iyi benim için hocam

PM atıyorum.

EDIT : PM gönderildi, takılırsanız yardımcı olurum, ama 1 saat kadar çıkmam lazım. Dönüş yaparım gelince.
jr. member
Activity: 140
Merit: 2
Sadece binance hocam https://www.binance.com/en/trade/HOT_BTC sadece bu pair. Sadece toplam buy sell 24 saatte ne olmus onu bile görsem yeterli

Şimdi pair kısmı kolay, ben yanlış mı anladım baştan, son 24 saatteki trade history(gerçekleşen) mi lazım, yoksa açık emrinizin(gerçekleşmeyi bekleyen) sırası ve o sıraya kadarki toplam HOT miktarı mı lazım.

2. dediğiniz daha iyi benim için hocam
member
Activity: 112
Merit: 31
Sadece binance hocam https://www.binance.com/en/trade/HOT_BTC sadece bu pair. Sadece toplam buy sell 24 saatte ne olmus onu bile görsem yeterli

Şimdi pair kısmı kolay, ben yanlış mı anladım baştan, son 24 saatteki trade history(gerçekleşen) mi lazım, yoksa açık emrinizin(gerçekleşmeyi bekleyen) sırası ve o sıraya kadarki toplam HOT miktarı mı lazım.
jr. member
Activity: 140
Merit: 2
İncelersen sevinirim dostum yani 24 saatte total sell total buy api si bile olsa yeter ordan kendimiz hesaplarız zaten

Verdim zaten kodu, yukarıda Smiley

Dostum binancedeki link üzerinden kontrol edemeyezmiyiz bu kodlardan pek anlamıyorum yapamam kısaca.

Yok, link ile olmaz o iş, kodlama şart, API'ler de bu yüzden var zaten. Kodu ben o hâle getirdim zaten. Değişiklik yapmaya gerek yok aslında.
Free web hizmeti sunan biryere 2 dosyayi atarak calistirabilirsiniz. Ya da isterseniz ben size bir alan açayım sadece binance için olacaksa.

Sadece binance hocam https://www.binance.com/en/trade/HOT_BTC sadece bu pair. Sadece toplam buy sell 24 saatte ne olmus onu bile görsem yeterli
member
Activity: 112
Merit: 31
İncelersen sevinirim dostum yani 24 saatte total sell total buy api si bile olsa yeter ordan kendimiz hesaplarız zaten

Verdim zaten kodu, yukarıda Smiley

Dostum binancedeki link üzerinden kontrol edemeyezmiyiz bu kodlardan pek anlamıyorum yapamam kısaca.

Yok, link ile olmaz o iş, kodlama şart, API'ler de bu yüzden var zaten. Kodu ben o hâle getirdim zaten. Değişiklik yapmaya gerek yok aslında.
Free web hizmeti sunan biryere 2 dosyayi atarak calistirabilirsiniz. Ya da isterseniz ben size bir alan açayım sadece binance için olacaksa.
jr. member
Activity: 140
Merit: 2
İncelersen sevinirim dostum yani 24 saatte total sell total buy api si bile olsa yeter ordan kendimiz hesaplarız zaten

Verdim zaten kodu, yukarıda Smiley

Dostum binancedeki link üzerinden kontrol edemeyezmiyiz bu kodlardan pek anlamıyorum yapamam kısaca.
member
Activity: 112
Merit: 31
İncelersen sevinirim dostum yani 24 saatte total sell total buy api si bile olsa yeter ordan kendimiz hesaplarız zaten

Verdim zaten kodu, yukarıda Smiley
jr. member
Activity: 140
Merit: 2

Normal borsalarda (yani finansal borsalarda) böyle bir bilgi paylaşılmıyor (çünkü etik değil), belki Raw connection yaparsanız exchange'e, o da sadece marketmaker veya dedicated serverlar için geçerli olabilir, istisnai durumlarda hak kazanabilirsiniz (itiraz olursa falan), ama criptolarda böyle bir bilgiye ulaşılabileceğini zannetmiyorum.

Ama diyelim ki az hacim kaldı sizin fiyat seviyenizde, daha sonra işlem hacmi o emir sayısını kapsayacak şekilde arttı ve yine de sizin emir beklemede kaldı, o zaman bir yanlışlık olduğunu tesbit edebilirsiniz...

Dostum compare bunu yapabiliyor örnek binance son 20 tradeyi buy sell olarak sıralıyor
örnek https://www.cryptocompare.com/coins/qtum/trades/BTC
son 20 tradeyi hesaplıyorsa son 20000 tradeyi bile bulabiliriz ?

O linktekiler gerçekleşmiş emirlere ait olan ID'ler. Gerçekleşmemiş emirlerin hangi sırada olduğunu bir borsa dışardan müdahele olmadan paylaşmaz, şaşırırım eğer paylaşıyorsa...

Aşağıdaki örnekte direct data feed kullanarak ve dışardan bir program yazarak bazı tahminlerin yapılabileceğinden bahsediyor, Binance'te de böyle bir protokol varsa işine yarayabilir:

https://quant.stackexchange.com/questions/3782/how-do-we-estimate-position-of-our-order-in-order-book

Bence bunu paylaşmada bir sıkıntı yok.
Ayrıca şimdiye kadar kullanığım bütün API'ler bunu destekliyordu. Orderbook json'u gerçekleşmemiş emirler için zaten.
Binance'ye ayrıca bakmadım ama fırsat bulunca inceleyeceğim.

Yapmak basit, public olan orderbook listelenecek, sonra private olan myorders ile karşılaştırılacak. Buradan sırayı, sıranın üstünde kaç xxx varı bulmak kolay.


İncelersen sevinirim dostum yani 24 saatte total sell total buy api si bile olsa yeter ordan kendimiz hesaplarız zaten
member
Activity: 112
Merit: 31
Öncelikle kendi açık emirlerimizi görebilmemiz için Binance'ın private API'sini kullanıyoruz. Ben epey sadeleştirdim buradaki amaca dönük olarak.

Bu  dosyaya api.php adını verelim ve aşağıdaki kodu ekleyelim.
Bu dosyada herhangi bir değişikliğe gerek yok.

Code:

class Binance
{
    public 
$btc_value 0.00;
    protected 
$base "https://www.binance.com/api/"$api_key$api_secret;

    public function 
__construct($api_key$api_secret)
    {
        
$this->api_key $api_key;
        
$this->api_secret $api_secret;
    }

    public function 
openOrders($symbol)
    {
        return 
$this->signedRequest("v3/openOrders", ["symbol" => $symbol]);
    }


    private function 
request($url$params = [])
    {
        
$headers[] = "User-Agent: Mozilla/4.0 (compatible; PHP Binance API)\r\n";
        
$query http_build_query($params'''&');
        return 
json_decode($this->http_request($this->base $url '?' $query$headers), true);
    }

    public function 
http_request($url$headers$data = array())
    {
        
$ch curl_init();
        
curl_setopt($chCURLOPT_URL$url);
        
curl_setopt($chCURLOPT_HTTPHEADER$headers);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
        
curl_setopt($chCURLOPT_SSL_VERIFYHOSTfalse);
        if (
$data) {
            
curl_setopt($chCURLOPT_POST1);
            
curl_setopt($chCURLOPT_POSTFIELDS$data);
        }
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
curl_setopt($chCURLOPT_TIMEOUT5);
        
curl_setopt($chCURLOPT_ENCODING"");
        
$content curl_exec($ch);
        if (
curl_errno($ch)) {
            
$content false;
        }
        
curl_close($ch);
        return 
$content;
    }


    private function 
signedRequest($url$params = [])
    {
        
$headers[] = "User-Agent: Mozilla/4.0 (compatible; PHP Binance API)\r\nX-MBX-APIKEY: {$this->api_key}\r\n";
        
$params['timestamp'] = number_format(microtime(true) * 10000'.''');
        
$query http_build_query($params'''&');
        
$signature hash_hmac('sha256'$query$this->api_secret);
        
$endpoint "{$this->base}{$url}?{$query}&signature={$signature}";
        return 
json_decode($this->http_request($endpoint$headers), true);
    }
}

?>


Şimdide binance.php ya da adını ne isterseniz koyun, yeni bir php dosyası oluşturup içine aşağıdaki kodları giriyoruz.

Code:
require 'api.php';


//////////sadece bu 4 satir editlenecek///////////
$type "BUY";
$api "";
$secret  ="";
$pair"HOTBTC";
/////////////////////////////////////////////


//multidimentional arrayda arama fonksiyonu
function search($array$key$value)
{
    
$results = array();

    if (
is_array($array)) {
        if (isset(
$array[$key]) && $array[$key] == $value) {
            
$results[] = $array;
        }

        foreach (
$array as $subarray) {
            
$results array_merge($resultssearch($subarray$key$value));
        }
    }

    return 
$results;
}




$api = new Binance("api buraya""secret buraya");
$openorders $api->openOrders("{$pair}");


$yeni_array search($openorders[0], "side"$type); // SATIÞ emri için SELL, alýþ emri için BUY diyoruz ve yeni bir array oluþturuyoruz.

$price $yeni_array[0]['price']; // kendi satis fiyatimizi aldik.

if($price=='') {
       echo 
"Acik {$type} Emri Yok
"
;
} else {
echo 
"Girilen {$type} Emir Fiyati:" $price "
"
;
}
//simdi orderbook listelemesi yapacagiz.

$link "https://api.binance.com/api/v1/depth?symbol={$pair}&limit=1000";
$page file_get_contents($link);
$response json_decode($pagetrue);


//bids al emirleri
//asks sat emirleri

echo "#FiyatAdet";


$i=0;
foreach(
$response['asks'] AS $key) // public orderlarý lsiteliyoruz

echo "{$i}{$response['asks'][$i][0]}{$response['asks'][$i][1]}";

//echo $i . "-)" . $response['asks'][$i][0] . " - " . $response['asks'][$i][1] . "
"; // fiyatini ve adedini bas


$count+=$response['asks'][$i][1]; // toplam alim adetlerini hesapla



if($response['asks'][$i][0]==$price) // emirlerdeki fiyat ile kendi fiyatimiz eslesince, loopu durdur.

//echo "TOTAL:{$count}
";

echo "TOPLAM ADET{$count}";

break;
}

$i++;


}

echo 
"";

?>





Hepsi bu, kodu kendinize göre özelleştirebilirsiniz, ben vakit darlığından çokbasit şekilde ekrana yazdırdım sadece echo diyerek, siz daha güzel tablolar ile yapabilrisiniz.
Biraz daha zaman ayırarak kodun performasnı arttırılabilir, looplardan pek hoşlanmam genelde ama yazması en kısa şekli bu oldu şimdilik.
Eğer hâkimseniz, kendi fiyatınız ile orderbook arrayını karşılaştırıp gerekli verileri direk basan bir fonksiyon da yazabilirsiniz.
Buradaki işlem çok zor olmadığından performans olarak pek farkı yok ama daha temiz kodlama yapılabilir zamanınız varsa.

Karşınıza şöyle birşey çıkacak;



jr. member
Activity: 378
Merit: 3
Anlık alım satım yapan ve trade odaklı yatırım yapanlar için gayet güzel. Neden bu kadar değişik şeyler yazılmış anlayamadım açıkçası.
member
Activity: 112
Merit: 31

Normal borsalarda (yani finansal borsalarda) böyle bir bilgi paylaşılmıyor (çünkü etik değil), belki Raw connection yaparsanız exchange'e, o da sadece marketmaker veya dedicated serverlar için geçerli olabilir, istisnai durumlarda hak kazanabilirsiniz (itiraz olursa falan), ama criptolarda böyle bir bilgiye ulaşılabileceğini zannetmiyorum.

Ama diyelim ki az hacim kaldı sizin fiyat seviyenizde, daha sonra işlem hacmi o emir sayısını kapsayacak şekilde arttı ve yine de sizin emir beklemede kaldı, o zaman bir yanlışlık olduğunu tesbit edebilirsiniz...

Dostum compare bunu yapabiliyor örnek binance son 20 tradeyi buy sell olarak sıralıyor
örnek https://www.cryptocompare.com/coins/qtum/trades/BTC
son 20 tradeyi hesaplıyorsa son 20000 tradeyi bile bulabiliriz ?

O linktekiler gerçekleşmiş emirlere ait olan ID'ler. Gerçekleşmemiş emirlerin hangi sırada olduğunu bir borsa dışardan müdahele olmadan paylaşmaz, şaşırırım eğer paylaşıyorsa...

Aşağıdaki örnekte direct data feed kullanarak ve dışardan bir program yazarak bazı tahminlerin yapılabileceğinden bahsediyor, Binance'te de böyle bir protokol varsa işine yarayabilir:

https://quant.stackexchange.com/questions/3782/how-do-we-estimate-position-of-our-order-in-order-book

Bence bunu paylaşmada bir sıkıntı yok.
Ayrıca şimdiye kadar kullanığım bütün API'ler bunu destekliyordu. Orderbook json'u gerçekleşmemiş emirler için zaten.
Binance'ye ayrıca bakmadım ama fırsat bulunca inceleyeceğim.

Yapmak basit, public olan orderbook listelenecek, sonra private olan myorders ile karşılaştırılacak. Buradan sırayı, sıranın üstünde kaç xxx varı bulmak kolay.
Pages:
Jump to: