GetLastYonNo da sondan geriye gidiyormuş hemde tek satır :) Teşekkürler.
Printable View
pek ilgi olmadı . kullanıcı tarafında pek göze görünmeyen önemli bir kalite farkı olduğu için tekrar bi hatırlatıyım diyorum.
dikkatli izlemeye başladığımda iletim hızı iyi olan şirketlerde bile yoğun işlemlerin olduğu anlarda ciddi sarkmalar görüyorum. Bu karşı tarafta talepleri alan bilgiyasayarın yeterince güçlü olmadığını yoğun emir akışında yavaşladığını gösteriyor. belki 3-5 senedir belki daha uzun süredir upgrade edilmemiş makinalar var muhtemelen.
ben şahsen bi sonraki aracı kurumu , idealle robot anlaşması olması, düzgün emir alım altyapısına göre seçeceğim fiilen deneyerek.
%0,001 (yüzbinde 1)komisyon için pazarlık ediyoruz. 25 puan kayma %0.02 (onbinde 2) ye geliyo aşağı yukarı, 20 katına yani.
örneğin haftada sadece 2 kere pozisyon değiştiren bir sistemde 25 puan ortalama kayma senede kontrat başına 540TL maliyet yaratıyor.
önemli bir detay kesinlikle.
bence kayma maliyetleri başka algoritmalarla halledılebilir bununla ilgili bir program arayuzu hazırlıyorum burada yayınlarım belki.
Bu programı bir C sarpcıya ucretlı sekılde tasarlattırabılırsek kayma vb diğer tüm sorunlar ortadan kaldıracak algorıtmalar gelıstırebılecegız.
Kademeleri DDE olarak cekebılırmıyız acaba bu onemlı olacak.
Diyeceğim o ki dediğiniz gibi kayma maliyeti parasına bir programcıya para verıp kayma malıyetını engelleyıcı bır algorıtma geliştirerek kaymaya verecegın parayı programcıya ver böylece omur boyu kayma malıyetınden kurtulmus olursun.
10 kontratla calısıyorsak bıle 540*10 5,400 TL para eder.
5,400 TL yi Bir c sarpcıya program kodlaması için versen deli eder. Paranı 1 senede amorti edersin geri kalan yıllar kar.
Hem ıstedıgın kurumla calısırsın bır kuruma bagımlı kalmak zorunda olmazsın bu yontem cok daha akılcı.
dde neden lazım?
lib.cs yada user.dll yöntemlerinde derinlik okumak basit.
ideal sistem tarafından gönderirken;
var Derinlik = Sistem.DerinlikVerisiOku(Sembol);
User.Metod(Derinlik, .......);
yazılan user.dll yada lib.cs metod parametrelerinde ise "dynamic Derinlik" olabilir.
public float Metod(dynamic Derinlik, .....)
{
....
}
kullanırken şöyle;
https://image.prntscr.com/image/s4YT...w4OLRxNxnQ.png
Öneriler için teşekkürler bugun 2 işlem yapmiş bar sonu beklemeden biri pozitif digeri negatif bakalim ilk 50 islemde kayit tutacam bakalim sonuclar olumlu çıkacak mi
Sn kenten bahsettiginiz konu onemli elbette. Bende kontrol ettim normal zamanlarda 45 50 civari bazi zamanlarda 100 hatta 150 ye cikmis.
Fakat su anki piyasa o kadar hizli degil yani demek istedigim selale durumlari yada bir anda haberle gelen ani yuklelislerin haricinde 50 100 ms pek onem arz etmez gibi geliyor. Zamanin %95 inde diyelim tahminen tabi iki emir arasi zaten 100 ms den yeterince fazla dolayisi ile cogu zaman onemi olmayacak. Sadece ayni anda tetiklenen sistemlerde onem arz eder ya da bar kapanisi ile tetiklenen sistemlerde bariz uzun barlarda bir cok sistem ayni anda emir gonderecek ve hizli olan onden gidecek. Birde bahsettigim gibi ani alim satimlarda herkes bir anda yuklendigi zaman hiz onemli olacak fakat cok az bir zaman diliminde gecerli olacak.
Benim kisisel fikrimde ornegin sn caglar'in yaptigi gibi alim satimlarda emri yine farkli bir algoritma yardimiyla daha kontrollu gondermek veya farkli yaklasimlarla kaymalari en aza indirmek hatta yok edip pozitife cekmek yonunde boylece tum zamanlarda butun emirlerde isleyecek ve kaymayi iyilestirecek yontemler gelistirmis oluruz.
arkadaşlar üyeliğim bitince verileri çekemiyorum. proğramda verileri güncelleyebilmemiz için bi imkan var mı? veya bana 10 dk lık veri ykleyene kadar k adı ve şifresini yollayabilecek biri var mı? daha sonra değiştirir.
erhan ayrıca programa gerek yok . sistem.alislot satislot var onlarla ilk kademe okunuyor lisans varsa, yanlış hatırlamıyosam sonraki kademeler içinde metodlar vardı. burada eski forumda gördüğümü hatırlıyorum sanki.
o veriyle istediğin algoritmayı yapabilirsin. işlem geciktirerek avantajlı fiyat beklemek bana göre yanlış . Sigortacılık gibi , küçük primler toplayıp risk gerçekleşince büyükce tazminat ödemek şeklinde .
benim bahsettiğim robot emri gönderdiğinde aracı kurumun teminat kontrolü yapıp borsaya emri iletmesinde geçen zaman.
anlık işlem yapmak 1dakika 5dakika barının bitişini beklemekle ilgili değil, istersen haftalık datayla sadece pazartesi sabah emir gönderiyo ol. Emir gönderdiğinde borsaya ulaşmasının sonucu aynı. Tabi o durumda senede 4 işlem yapacağından kaymayı umursamayabilirsin :)
umarım aracı kurumlar uyanıp serbest gelen emirlere karşı kendi içlerinde hft çalıştırmaya başlamazlar . Bildiğim kadarıyla mevzuat uygun
arkadaşlar ben size bu konuda yardımcı olabilirim. bu konulara yeni yeni ilgi duymaya başladım. yazılım geliştiricisiyim. yazılım geliştirmedeki temel hususlardan biri domain knowledge dır. ben istediğim kadar bilgisayar araçlarına hakim olayım, uygulama üretilen alana has bilgilere haiz değilsem sıkıntı yaşarım. örneğin, yazdığınız sorunları tamamen anlayamıyorum :) bu yüzden üretilecek çözümü bilemiyorum. konuşursak bu sorunu halledebiliriz.
yalnız csharp değil c++ ile yapalım.
İzole dip tekniğini kullanan var mı?
https://i.hizliresim.com/bL1vvY.png
bu resimdeki formulasyonla, yukarıda paylaşılan ideal formulu aynı mı sizce?
Sistem karşılaştirma bölümü kapandi mi? Yorum yazamiyorum oraya
https://i.hizliresim.com/MaQBag.jpg
Arkadaşlar, benim vps bugün kendiliğinden kapanıp açılmış,bende tekrar ideali açtım, bu ekran çıkıyor ama neden sistemler gözükmüyor, sistemchart içinde dosyalar duruyor neden olabilir szice?
Arkadaşlar jo da yayın yapan varmı? Ortak bişeyler düşünen varsa özelden mesaj atabilir.
SM-N915F cihazımdan hisse.net mobile app kullanarak gönderildi.
Bu vps de program kaldırda ideal yok ideali kaldıramıyorum, haliyle tekrarda yükleyemiyorum pfff
Arkadaslar, sistem tanimlarini vps ye format atarak cozdum ama simdide karakter sorunu cikti bunu nasil duzeltiyorduk idealin kendi sitesinde sorunlu xp icin diyor girdim sayfa acilmiyor bilen varsa yardimci olabilirmi? Sekiller tuhaf cikior.
GT-I9190 cihazımdan hisse.net mobile app kullanarak gönderildi.
Daha önce ben de aynı sorunu yaşamıştım, Sezai Bey'e sormuştum.
- İDeali kapatın
- C:\ideal\fonts altındaki yazı tiplerini kopyalayın
- C:\windows\fonts altına atın ve ideali yeniden açın
---
Bu arada XP çok eski bir işletim sistemi, güvenlik zaafiyeti olmaması için güncel bir işletim sistemi kurmanızı öneririm.
Yardiminiz icin cok tesekkurler, xp isletim vpsnin kendi icinde vardi, fazla para odememek icin haliyle dusuk sistem kullaniyoruz, bundan dolayi dusuk isletim sistemleri secmek gerekiyo, yeniler fazla kasar misal win 98 yuklesem ideal calissa bilgisayar ucar [emoji1]
GT-I9190 cihazımdan hisse.net mobile app kullanarak gönderildi.
Selam arkadaslar;
Bir çalışma yapıyorumda.
mesala RSI 30 da al 70 de sat veren bir sisteme RSI 25 olunca stop koymasını istiyorum. Stopu nasıl yazabilirim?
Tesekkur ederim @Bear_Bull
RSI nin 30 da almasını 70 de satması kosuluna ilave, 30 dan 25 e duserse Flat olması gerekiyor ya, kodu boyle olusturdum ama olmadı. Nerede hata yapıyorum?
var SonYon = "";
for (int i = 3; i < Veriler.Count; i++)
{
if (RSI[i-1] < 30 && RSI[i] >= 30 && SonYon!= "A")
{
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
}
if (RSI[i-2] > 25 && RSI[i-1] < 25 && SonYon!= "A")
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
}
if (RSI[i-1] < 70 && RSI[i] <= 70 && SonYon!= "S")
{
Sistem.Yon[i] = "S";
SonYon = Sistem.Yon[i];
}
}
bu aşağıdaki çalışıyor
var Veriler = Sistem.GrafikVerileri;
var RSI = Sistem.RSI(Veriler, 14);
var SonYon = "";
for (int i = 3; i < Veriler.Count; i++)
{
if (RSI[i-1] < 30 && RSI[i] >= 30 && SonYon!= "A")
{
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
}
if (RSI[i-2] > 25 && RSI[i-1] < 25 && SonYon!= "A")
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
}
if (RSI[i-1] > 70 && RSI[i] < 70 && SonYon!= "S")
{
Sistem.Yon[i] = "S";
SonYon = Sistem.Yon[i];
}
}
Tesekkurler..@Bear_Bull
https://hizliresim.com/LOzgGo sanırım flata gecmiyor rsi 25 altında.
bir sorum daha vardı ama daha once okumustum,
var Veriler = Sistem.GrafikFiyatSec("Kapanis");
var RSIPeriyot = Sistem.Parametreler[0];
var RSI = Sistem.RSI(RSIPeriyot);
Sistem.Cizgiler[0].Deger = RSI;
Sistem.Cizgiler[0].Panel = 2;
for (int i = 1; i < Veriler.Count; i++)
{
if (RSI[i] > 30.0)
Sistem.Cizgiler[2].Deger[i] = 1.0f;
else
Sistem.Cizgiler[2].Deger[i] = 0.0f;
}
Sistem.Cizgiler[2].Panel = 3;
Sistem.Cizgiler[2].ActiveBool = true;
bunu araya koyamadım.
Yani RSI 30'un üzerindeyse 1, değilse 0 değerini alıyor. ona gore işlem açacak yada açamayacak
ilk yolladığım kodda değişiklik yapmışsınız ve ben farketmemişim.
if ( RSI[i-1] > 25 && RSI[i] < 25 && Sonyon == "A") {Sistem.Yon[i] = "F"; SonYon = "F"; }
sizin yazdığınız şekilde kullanmışım.
if (RSI[i-2] > 25 && RSI[i-1] < 25 && SonYon!= "A")
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
}
bu şekilde değiştirip deneyin
var Veriler = Sistem.GrafikVerileri;
var RSI = Sistem.RSI(Veriler, 14);
var SonYon = "";
for (int i = 3; i < Veriler.Count; i++)
{
if (RSI[i-1] < 30 && RSI[i] >= 30 && SonYon!= "A")
{
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
}
if (RSI[i-1] > 25 && RSI[i] < 25 && SonYon == "A")
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
}
if (RSI[i-1] > 70 && RSI[i] < 70 && SonYon!= "S")
{
Sistem.Yon[i] = "S";
SonYon = Sistem.Yon[i];
}
}
Sistem.Cizgiler[0].Deger = RSI;
Sistem.Cizgiler[0].Aciklama = "RSI ";
http://BB26.16MB.com/20171130204033.png
Evet simdi duzeldi sayın @Bear_Bull
Teşekkür ederim.
Rsi de LLV ve HLV kullanımı nasıl oluyor?
Geriye donuk mesela, 10 barda işlem yapmaya calıssam,
var V = Sistem.GrafikVerileri;
var RSI = Sistem.RSI(V, 14);
var HHV = Sistem.HHV(10, RSI);
var LLV = Sistem.LLV(10, RSI);
şeklinde dusundum ama,
for (int i = 3; i < Veriler.Count; i++)
dan sonrasını yapamadım.
HHV
LLV
leri
grafik üzerinde çizdirin sonra gerçekten kullanılır mı bir göz kararı bakın.
beni boş formulleri sisteme dökmeye uğraştırmayın.
uzun süredir kendime bile sistem yazmıyorum.
16ms dediğiniz gibi emrin local’den broker serverine gidip exchange’e emir olarak yazılıp size döndüğü zaman ise ky donanımı ile Allah’tan daha ne istenir. Her işe yeter bence.
iPhone cihazımdan hisse.net mobile app kullanarak gönderildi.
Yüzbinde 1 ? Yani 1 kontrat için roundtrip yaklaşık 2.6kuruş eder. Bir kademede 2.5 tl kazanırsın, veya verirsin diye düşününce süper. En kötü sistem bile kazanır. Acaba yanlışlık mı var kom oranında?
iPhone cihazımdan hisse.net mobile app kullanarak gönderildi.
Arkadaşlar sistemimdeki profit factoru ekrana nasıl çizdirebilrim. decimalden floata çevirmeye çalıştım ama yapamadım. Çevirmeler benim için tam bir baş belası.
Yardımcı olabilecek arkadaşlara şimdiden teşekkürler.
Saygılarımla,
Klozon
orda ben komisyon yüzbinde bir demek istemedim , yüzbinde 9 dan 8 e çekmek için yapılan pazarlıktan bahsettim
tabi bu 16 ms emrin yolculuğunun sadece bir kısmı . emrin senin bilgisayardan gönderimi ile aracı kurumun "ulaştı bana eyvallah" sinyali arasında geçen zamanı idealin ölçmesinin sonucu . Bir de aracı kurumun borsaya göndermesi , borsa bilgisayarının order bookda yerine koyması arasında geçen zaman var. onu bilmiyoruz.
tabi bilmediğimiz birsürü aşama daha var.
borsada x fiyat oluştu (t) kabul edersek.
t1 de data benim bilgisayara geldi
t2 bilgisayar hesaplamayı yapıp işlem kararı verdi
t3 işlemi aracı kuruma yolladı
t4 aracı kurum emri aldı , ack yolladı
t5 aracı kurum borsaya yolladı
t6 borsa işlemi order booka kaydetti gerçekleşti
ben burda t3 ile t4 arasındaki zaman için konuşuyorum .
bütüne bakınca pek de önemli olmadığı anlaşılıyor.
ITCH ve OUCH protokelleri var Uygulamaya geçtiler . makina dilinde data alımı yapıp makina dilinde emir gönderiyosunuz compile bile edilmiyor. arayüz grafik şu bu çalışmadan .
Başka taraflarla uğraşmak lazım yani , yanlış alarm pardon diyeyim sonuç olarak.
profit factor sistemin bütünü için yapılan tek hesaplama. zaman içinde hareketine bakıcam dersen , karlı işlemler toplam karını zararlı işlemler toplam zararına böleceksin. . ya son x bar için yada başlangıçtan itibaren şeklinde yapılabilir.
idealden
Getiri Hesapla fonksiyonu, sistemin işleme girdiği barları, işleme girdiği fiyatları, pozisyonun yönünü ve miktarını bulur ve çeşitli listelere doldurur. Tek başına bu fonksiyonu koda yazmak yeterli değildir. Bu fonksiyon ile elde edilen/hesaplanan verilerin her birine aşağıda tam listesi verilen birer alt fonksiyon ile ulaşılır. Bu fonksiyonların bazıları liste verir (grafiğe çizgi olarak çizdirilenler). Bir kısmı ise sayı/oran/değer gibi bir tek sonuç (performans analiz raporundaki önemli bilgiler) olarak elde edilir. (formülde kullanmak, ekrana yazdırmak vs amaçlı)
GRAFİĞE ÇİZDİRİLEBİLEN GETİRİ HESAPLA LİSTELERİ:
Sistem.GetiriKZ
Sistem.GetiriMiktar
Sistem.GetiriPozisyon
Sistem.GetiriKZPoz
Sistem.GetiriKZGun
Sistem.GetiriKZAy
Sistem.GetiriKZYil
PUAN/ORAN/SAYI VERİLERİ SUNAN GETİRİ HESAPLA SONUÇLARI:
Sistem.GetiriKarIslem
Sistem.GetiriKarMiktar
Sistem.GetiriZararIslem
Sistem.GetiriZararMiktar
Sistem.GetiriKarIslemOran
Sistem.GetiriNetKar
Sistem.GetiriToplamIslem
gedikte HFT serverları var Bu dediğiniz durumları anlamlı bir noktada iyileşmesi için bu serverlara geçiş yapmak gerekir diye düşünüyorum bunların maliyetleri ise oldukça yüksek.
Bir gurup olarak birleşip ortak bir proje robot yaratmadan da bu serverlara ulaşamayız. Hesaptakı paradan cok üretilen komisyona bakıyorlar bu server için. serverin belirli bir maliyeti var onu kesin ödeyeceksin. Ayrıca kurumun sizi bu servera aktarması içinde ayrıca komısyon üretimi yaratacaksın.
Tüm bunların yanında veriyi idealden aldıgımız sürece her halukuarda bir gecikme yaşayacağız borsadan cıkan verilerin ideal veri terminaline ardındanda bizim bilgisayara düşme süresi bazında da bir sürü gecikme var.
TÜm bun gecikmelerin minimal düzeyi için.
Gedikten hesap açılacak bu hesap HFT servera bağlanacak HFT serverda gediğin bize sağladıgı başka bir platform var sanırım java dili filan varmış o programa istenilen algoritma yazdırılacak sonra trade etmeye baslayacaksın.
Diğer türlü yapılan tüm iyileştirmelerin ms bazında sınırlı kalacak verdiğimiz emeğin karşılığını alamayabiliriz.
Araya ne kadar çok aracı girerse işlemler bir okadar gecikmeye ugruyor aracı sayısını en aza indirmek şart.
Selamlar.
Diğer safada KesismeTara metodunun kullanıldığı sistemde getiri eğrisinin yanlış hesaplandığını yazmış ve resim de koymuştum. Bunu Sezai Bey'e de kodun orjinalini göndererek bildirdim ancak problemin önemi düşük bulundu ve hemen düzeltilecek gibi görünmüyor.
Daha sora StopVeyaKarFlatYuzde meodunun da yanlış çalıştığını farkettim. Flat olduktan sonra getiri eğrisi aşağı yukarı hareket etmeye devam ediyor. Kullanıyorsanız getiri eğrilerinizi kontrol ediniz.
Maddi zarara uğramamanız için uyarayım, KesismeTara, StopVeyaKarFlatYuzde ve StopVeyaKarFlatPuan metotlarını kullanmanızı önermiyorum. Kesişme, stop ve kar puan ve yüzde hesabını sisteminiz içinde kendiniz yapınız. Kendi hesabınızı da yapsanız, iDeal metotlarınızı da kullansanız sorumluluk size aittir. Ben kişisel bir sorumluluk kabul etmiyorum.
Saygılar...
HFT’de eldeki hardware ve yazılımın ne kadar hızlı çalışıyorsa bu işten gıdım gıdım para kazanılır ayrıca market maker/likidite sağlayıcısı da olacaksın ki bir de borsa sana bunun için rebate yani oluşturduğun hacim için geri ödeme yapsın ve komisyon masrafını da yenebilesin.
BİST’te bildiğim kadarı ile borsa payı yüzbinde 4.25 (o yüzden sayın kenten’nin dediği yüzbinde 1 biraz garip gelmişti). Likidite sağlayıcı adı altında kurumlara böyle bir rebate var mı bilmiyorum.
HFT falan kulağa hoş geliyor ama bizim borsada şu an için yapılacak yazılım ve donanım yatırımını yenebilecek ve “doyurucu kazanç” sağlayacak hacimin ve uygun komisyon maliyeti olmadığını düşünüyorum.
Sent from my iPhone using hisse.net
Merhaba 120 dakikalık periyotta günlük hacim bilgisini nasıl görebiliriz.?Mesela bu kod ile barın hacim bilgisi görülüyor.Günlük veya gecen bara kadar olan hacim nasıl görünür.
Örnek 120 dakikalık periyortta 16:00 barına kadar olan hacim adet bilgisi hangi fonksiyon ile görülebilir.?
Bunun ile o anki bari görebiliyoruz.
Sistem.GrafikVerileri[Sistem.BarSayisi].Size