Daha önce, Kore Yatırım Menkul Değerler API'sini kullanarak otomatik işlem programı neden oluşturmak istediğimizi ve bunun hangi avantajlara sahip olduğunu incelemiştik.
Bu sefer, Kore Yatırım Menkul Değerler API'sini geliştirmek için gerekli bilgileri topladığımız süreci özetleyerek sizinle paylaşmak istiyorum. Zaten birçok uzman Kore Yatırım Menkul Değerler API'sini paylaştığı için bilgi bulmak zor değildi. Yine de hangi bilgilere ulaşabildiğimizi ve hissettiklerimizi kısaca yorumlamak istiyorum ve umarım bu içerik faydalı olur. (github deposuna bakmak iyi bir fikir!)
Resmi Site
Kore Yatırım Menkul Değerler Resmi Sitesi
Temel bilgileri resmi siteden alabilirsiniz. Kore Yatırım Menkul Değerler resmi sitesi aracılığıyla kullanıcı kimliği, hesap ayarları, deneme yatırımı başvurusu, yurtdışı işlem başvurusu gibi işlemleri gerçekleştirebilirsiniz. Ayrıca resmi sitede, geliştirme için olan sitelere kolayca erişim sağlayan bağlantılar bulunmaktadır.
한국투자증권 menüsünde geliştirme ile ilgili içerikler, İşlem menüsünde yer almaktadır.
KIS Geliştirici Merkezi
KIS Geliştirici sitesi, API geliştirirken sürekli olarak göz atmanız gereken bir sitedir. API belgelerinin ayrıntılı içeriğini buradan kontrol edebilirsiniz.
En temel olan erişim belirtecini (access token) almak için kullanılan API'dir.
API'nin istek ve yanıt değerleri hakkında ayrıntılı bilgiler bulunmaktadır. Bu değerleri referans alarak çağrı yapıp yanıt alarak işleme alıyoruz.
github - koreainvestment/open-trading-api
Open Trading API github deposudur. README.md dosyası, işlem sırasını adım adım açıklayan, kullanışlı bir kılavuz sunmaktadır. Bu nedenle yukarıda da belirttiğim gibi github'dan başlamak iyi bir fikir olacaktır.
github deposudur.
Wikidocs
Son olarak, python geliştirme sırasında başvurabileceğiniz Wikidocs'tur. Yazarı Kore Yatırım Menkul Değerler olduğu için içeriklerin büyük bir kısmına güvenebilirsiniz. Büyük bir kısmı diyorum çünkü zamanla eklenen içerikler olmadığı gibi, kişisel olarak gerçek zamanlı veri kısmında takıldım ve çözüm bulamadım.
Wikidocs ile geliştirme kılavuzu iyi bir şekilde hazırlanmıştır.
Ek Kaynaklar
Buraya kadar bahsettiğimiz kaynakları inceleyerek hızlıca bir uygulama geliştirmek gerçekten güzel olurdu fakat ben yeterince yetenekli olmadığım için sık sık takıldım. Bu nedenle birçok şey aradım ve bana yardımcı olan ek kaynakları listeleyeceğim. Benim bulduğum bilgiler olduğu için siz de kolayca bulabilirsiniz.
Jocoding'in Youtube Videosu (23:41 saniye)
Bu video sayesinde Kore Yatırım Menkul Değerler API'sinin avantajlarını kullanıcı bakış açısından anlayabildim. Ve yine, çalışan bir kodun video ile açıklanması daha kolay anlaşılmasını sağladı. Daha önce resmi site aracılığıyla neler olduğunu kabaca anlamış olsaydınız, Jocoding'in videosunu (23:41 saniye) hızlıca izlemenizi tavsiye ederim.
Websockets
Daha önce de kısaca bahsettiğim gibi, gerçek zamanlı veri işleme kısmında takıldım ve Wikidocs'ta python'ın websockets'ini kullanmıştı. Ancak websocket'in ne olduğunu tam olarak anlayamadım. Böyle durumlarda sormak gerekir. +_+
ChatGPT, yardım et lütfen.
ChatGPT olmasa büyük işlerimiz olurdu.
İletişim için bir yöntem ve bağlantı kurulduğunda verileri sürekli olarak alabildiğimiz bir şey gibi görünüyor. Burada edindiğim izlenim, REST API'nin bir istek karşılığında bir yanıt aldığı, Websocket'in ise bir istek kaydedildiğinde ilgili yanıtları sürekli olarak aldığıdır. Otomatik işlem programlama için her iki yöntemin de doğru şekilde uygulanması ve bir araya getirilmesi gerekiyor gibi görünüyor.
Ancak Wikidocs'taki örnekte takıldım. Websocket ile istek göndermek güzeldi ama hemen while True: ile devam edince sürekli o halde kaldı. Kesinlikle bir çözüm olmalı ama benim gibi acemiler için kavramlar çok yeni olduğu için ne yapılması gerektiğini anlamak kolay değildi. Bu nedenle github'da farklı bir şekilde uygulanan kod olup olmadığını aramaya başladım.
github Depolama Alanları
- python-kis - Soju06/python-kis: 📈 Python Kore Yatırım Menkul Değerler REST tabanlı İşlem API Kütüphanesi (github.com)
- pykis - pjueon/pykis: Kore Yatırım Menkul Değerler Yeni Açık İşlem API'sini kolayca kullanmak için python paketi (github.com)
- mojito - sharebook-kr/mojito: KIS için python sarmalayıcı (github.com)
Gerçekten birçok uzman olduğunu bir kez daha anladım. 3 tanesine baktım ama bu sefer kullandığım depo 1 numaralı python-kis oldu. Bu mantığı alıp websocket kısmını referans aldım. Sonuç olarak, websockets kütüphanesi yerine websocket ve websocket-client kütüphanelerini kullandım. Bu vesileyle Soju06'ya ve github'da faydalı kodlar paylaşan herkese teşekkür etmek istiyorum.
Artık bu bilgileri referans alarak geliştirme yapabiliriz. Küçük çaplı hatalarla karşılaştım ancak bunları ayrıntılı olarak düzenleyip paylaşacağım. Sonrasında, biraz daha temel olan "Hisselerin Otomatik İşlemlerinin Yapısı" hakkında düşündüklerimi sıralayacağım. Bunun üzerine, gelecekte hataları azaltmayı ve halihazırda geliştirilmiş parçaları kolayca yeniden kullanmayı umuyorum.
Yorumlar0