İdeal içinden SQL yazmak için UserDLL kullanmanız gerekiyor.
Printable View
:ok:
PozisyonKontrolGuncelle metodu gönderilen emrin tam, kısmi, vb. şekilde gerçekleşip gerçekleşmediğini kontrol ediyor mu?PHP Code:
if ( Sistem.BaglantiVar )
{
Sistem.EmirGonder ( );
double YVF = İşlem.Tipi == enuİşlemKayıtTipi.AL ? (double) SatışFiyatı : (double) AlışFiyatı;
Sistem.PozisyonKontrolGuncelle ( PozisyonKontrolKodu , EmirSonrasındaBirikimliLotMiktarı , YVF , EmirRezerv );
}
else
return false;
Aslında bu topiğe gönderilmiş bir soru değildi. :one:
BistHesapOku; 20 defa denese de hala null değer geri dönüşleri olmuyor değil..
Forumun klişe sözü: "Yabcak bişey yok"
https://i.hizliresim.com/g9usmfg.png
iDeal'i ikinci laptopa kurdum, eski laptopta kullandığım iDeal'in tüm ayarlarını yeniye aktarmak için eskisindeki C:\iDeal klasörünü kopyala, yenisine yapıştır yapmayı düşünüyorum.., nasıl üşenmeyeyim :rules: bu soruydu işte.
en kolay çözüm.Alıntı:
iDeal'i ikinci laptopa kurdum, eski laptopta kullandığım iDeal'in tüm ayarlarını yeniye aktarmak için eskisindeki C:\iDeal klasörünü kopyala, yenisine yapıştır yapmayı düşünüyorum.., nasıl üşenmeyeyim :rules: bu soruydu işte.
eski laptoptan harddiski söküp bir aparatla yeni laptopa USB girişle bağlayıp kopyalamak.
1-2 ay önce yeni laptop alıp bu işlemi uyguladım.
belki daha kolay yolu vardır ama ben bu şekil yaptım.
Teşekkürler Sayın Bear_Bull;
Ağdan bilgisayarları tokuşturdum,
21,3 GByte klasör içeriği şu anda eskisinden yenisine aktarılıyor 3 saat 30 dakika sürecekmiş.
:)
Merhaba, mevcut sisteme lot artırma ve azaltma ekledim. Mevcut getiri eğrisine ek lot artmasıyla oluşan kar ve zarar için ikinci getiri eğrisini çizdirmem lazım. Nasıl yapabilirim? Bir destek olsanız memnun olurum.
Bu değişkenlerin kullanımı için bilgi verebilecek var mı?PHP Code:
// Sistem.EmirTeyidSembol
// Sistem.EmirTeyidMiktar
// Sistem.EmirTeyidFiyat
// public string EmirSartSembol;
// public bool EmirSartBool;
// public object EmirSartFiyat;
// public string EmirSartTipi;
Yukarıdaki metotları iDeal kullanıma açmamış ya da sonradan kapatmış.PHP Code:
// public void EmirDuzelt ( string emirRefNo , double yeniFiyat , double yeniMiktar , double eskiFiyat , double eskiMiktar );
// public void EmirSil ( string emirRefNo );
Robotlar_Saat örneğinde
Sistem.EmirFiyati = "Aktif"; // aktif fiyat
şeklinde kod yazılmış.
Öte yandan o bir ... string değil, bir şekilde handle ediliyorsa sorun yok.
Kargaşanın dahası mı; bini beş para.. :)
Kafa kıra kıra :vk: 11 ay oldu (bunu yazabileceğim son güne geldim ya..) :yahoo: daha da robot işlemlerine geçemedim,
ki "bendeniz (!!)" 1980'lerin başından beri bu işe kafa yoruyorum.
https://i.hizliresim.com/q0s66wf.png
Çok zorlandım iDeal'e uyum sağlamak için.. yöntemlerin pek çoğu içime sinmedi.
Olmadığı yerde iDeal'in içinde başka bir şeyler yaratmak isteyene kapı açmışlar zaten, o kapıdan geçtim gibi..
Evet ama yetmez; programın alt yapısı modernleştirilmeli; sanırım o işi sil baştan başka bir ekip yapacak.
Genel olarak ihtiyaç olmayacak bir bilgi de olsa
belki birilerine faydası olur; ancak bu kadarını derleyebildim.
Belki doğru olmayan, hataya yol açabilecek kısımlar vardır, bilgilendiren olursa..
PHP Code:
/// <summary>
/// Örnek kullanım: Sistem.EmirSatisTipi = enuIMKB_EmirSatisTipi.NORMAL_SATIŞ;
/// </summary>
public static class enuIMKB_EmirSatisTipi
{
public const string BELİRTİLMEYECEK = "";
public const string NORMAL_SATIŞ = "NORMAL";
public const string AÇIĞA_SATIŞ = "ACIGA";
public const string VİRMANDAN_SATIŞ = "VIRMANDAN";
}
PHP Code:
/// <summary>
/// Örnek kullanım: Sistem.EmirFiyatTipi = enuIMKB_EmirFiyatTipi.PİYASA_FİYATI;
/// </summary>
public static class enuIMKB_EmirFiyatTipi
{
public const string BELİRTİLMEYECEK = "";
// Piyasa Emri (PYS)
// Emrin girildiği anda ilgili sözleşmede piyasada bulunan
// en iyi fiyatlı emirden başlayarak emrin
// karşılanması amacıyla kullanılan emir yöntemidir
public const string AKTİF_FİYAT = "PYS";
public const string PİYASA_FİYATI = "PYS";
// Limitli Emir (LMT)
// Belirlenen limit fiyat seviyesine kadar işlem gerçekleştirmek
// için kullanılan emir yöntemidir. Bu
// yöntem kullanıldığında fiyat girilmesi zorunludur
public const string LİMİTLİ_FİYAT = "LMT";
// "En İyi Fiyat" emir sadece piyasada o anda bekleyen
// en iyi fiyat seviyesindeki emirlerle eşleşir
public const string EN_İYİ_FİYAT = "EIF";
// Kapanış Fiyatından Emir (KAP)
// Gün sonunda hesaplanan uzlaşma fiyatı üzerinden işlem
// gerçekleştirmek amacıyla kullanılan emir yöntemidir.
// Uzlaşma fiyatı hesaplandıktan sonra "kapanış fiyatından" emirler karşı tarafta
// bekleyen "kapanış fiyatından" emirlerle eşleşir.
// Alış ve satış tarafında bekleyen "kapanış fiyatından" emirler eşleştikten sonra
// kalan "kapanış fiyatından" emirler uzlaşma fiyatını karşılayan
// normal seans emirleri ile eşleşir. Kapanış Fiyatından emirler sadece "kalanı pasife
// yaz" emir türü ve "seans" emir süresi kullanılarak sisteme gönderilebilir.
public const string KAPANIŞ_FİYATI = "KAP";
}
PHP Code:
/// <summary>
/// Örnek kullanım : Sistem.EmirSuresi = enuIMKB_EmirSüresi.GÜN;
/// </summary>
public static class enuIMKB_EmirSüresi
{
public const string BELİRTİLMEYECEK = "";
// Piyasa emirlerinde SÜRE = KIE olmalıdır
public const string PİYASA_KIE = "KIE"; // ( Örneklerden birinde bu şekilde kullanılmış )
// Günlük Emir (GUN)
// Emir girildiği günde geçerlidir.
// Gün sonuna kadar eşleşemezse sistem tarafından otomatik
// olarak iptal edilir.
public const string GÜN = "GUN";
// Günlük akış içerisinde sadece bir seans olduğu için
// "seans" ve "gün" emirleri aynı süreye işaret etmektedir.
// Her iki süre için de günlük fiyat hareket limitleri geçerlidir.
// Seans Emri (SNS) - (İPTAL - Bunu kullanma)
// Emir sadece girildiği seansta geçerlidir.
// Seans sonuna kadar eşleşemezse sistem tarafından
// otomatik olarak iptal edilir.
public const string SEANS_YA_DA_SNS = "SEANS";
// İptale Kadar Geçerli Emir (İKG)
// Emir girildiği seanstan itibaren iptal edilene kadar geçerlidir.
// Bu emir süresi seçildiğinde, emrin iptal edilmediği ve eşleşmediği durumda,
// emir sözleşmenin vade sonuna kadar geçerli olur ve vade sonunda
// sistem tarafından otomatik olarak iptal edilir.
public const string İPTALE_KADAR_GEÇERLİ = "IKG";
// "İptale kadar geçerli" ve "tarihli" sürelerinin seçilmesi durumunda, günlük fiyat hareket
// limitlerinin dışında emir girilebilir.
// Tarihli Emir( TAR)
// Emir, sisteme girilen tarihe kadar geçerlidir.Belirtilen tarihe kadar eşleşmezse ya da iptal
// edilmezse, bu tarihte gün sonunda sistem tarafından otomatik olarak iptal edilir.Sistemde,
// sözleşmenin vade sonundan daha ileri bir tarih girilmesine izin verilmez.
}
PHP Code:
/// <summary>
/// Örnek kullanım: Sistem.EmirTipi = enuIMKB_EmirTipi.PİYASA_EMRİ;
/// </summary>
public static class enuIMKB_EmirTipi
{
public const string BELİRTİLMEYECEK = "";
public const string NORMAL = "NORMAL";
// Piyasa : Emrin gerçekleşmesi; hisse tavan değilse, devre kesmemişse; kesindir
public const string PİYASA_EMRİ = "Piyasa";
// LİMİT : gerçekleşmeyen kısım fiyat ve zaman öncelik sıralamasına uygun olarak
// hisse senedinin bekleyen (pasif) emirleri arasına yazılır
public const string FİYATA_LİMİTLİ_EMİR = "Limit";
public const string FİYATA_LİMİTLİ_EMİR_VIOP = "Limitli";
// Kalanı İptal Et (KİE)
// Girildiği anda, pasifte karşı tarafta bekleyen emirlerin
// durumuna göre emrin tamamının gerçekleşmesi,
// aksi takdirde gerçekleşmeyen kısmının iptal edilmesi
// için kullanılan emir türüdür.
//Fiyat ve miktar belirtilerek girilen ve emrin girildiği anda
//karşılanmayan bölümünün otomatik olarak iptal edildiği emir türüdür.
public const string KALANI_İPTAL_ET = "KIE";
// Kalanı Pasife Yaz (KPY)
// Emrin girildiği anda tamamının gerçekleşmesi esas olmakla birlikte,
// tamamının gerçekleşmemesi durumunda kalan miktarın
// maksimum emir miktarına kadarlık kısmının, emrin gerçekleştiği
// son fiyat üzerinden pasife limit emir olarak yazılması için
// kullanılan emir türüdür.
public const string KPY = "KPY";
// Gerçekleşmezse İptal Et (GİE)
// Girildiği anda, pasifte karşı tarafta bekleyen emirlerin
// durumuna göre emrin tamamının gerçekleşmesi,
// aksi takdirde tamamının iptal edilmesi için kullanılan emir türüdür.
// (!) GIE yalnızca VİOP’ta kullanılmaktadır (!)
// Emir gönderildikten veya aktif olduktan sonra bir eşleşme olmaması
// durumunda pasif kademede beklemeden iptal olur.
public const string GERÇEKŞEŞMEZSE_İPTAL_ET = "GIE";
// Şarta Bağlı Emir (SAR)
// Bu emir türü, emri giren tarafından ilgili sözleşme için
// belirlenen fiyattan( aktivasyon fiyatı )
// ya da
// daha kötü fiyatlardan Borsada işlem olması durumunda,
// emrin sistemde aktif hale gelmesi amacıyla kullanılır.
// Şarta bağlı emir türünün kullanılması durumunda, emrin fiyat giriş
// yönteminin yanı sıra aktivasyon fiyatının belirtilmesi de zorunludur.
public const string SAR = "SAR";
// AFE : Açılış seansına iletilmek üzere girilebilen fiyat bilgisi olmadan
// sadece miktar bilgisi içeren alış ya da satış emirleridir.
// KAFE : Kapanış seans saatleri içerisinde belirlenecek kapanış fiyatından
// işlem görmek üzere BIST’a fiyat bilgisi olmadan,
// sadece miktar bilgisi girilerek gönderilen, kapanış fiyatından emirle
// karşılaşması durumunda işlem gerçekleştirecek alış ya da satış emirleridir.
public const string AÇILIŞ_FİYATLI_EMİR_KAPANIŞ_FİYATLI_EMİR = "AFE/KAFE";
}
Merhaba.
Getiri eğrisini iDeal'in hesapladığı şekilde kullanmayı çok denedim.. hiç kafam basmadı.
Borsa işinde acemiyim. Kodlama konusunda size söyleyebileceğim şudur; sınıf (class) yapılarınızı oluşturun ve metotlarınızı yazın. Her türlü veriyi kontrolünüz altına alın.
Belki de bunu zaten yapıyorsunuz.
Örneğin aşağıdakine benzer bir değişken grubu oluşturun ve bunlara uygun şekilde değerler atayıp kullanan metotlar yazın.
PHP Code:
public List<string> BarAS_Yönler { get; set; } // "A", "S", "F", "T", "B"
public List<string> BarAS_Sinyaller { get; set; }
public List<string> BarAS_Açıklamalar { get; set; }
public List<float> BarAS_İşlemSeviyeleri { get; set; }
public List<string> BarAS_İşlemTarihleri { get; set; }
public List<float> BarAS_TakipEdenZararKesDeğerleri { get; set; }
//
public List<float> BarAS_SistemPortföyDeğerleri { get; set; }
public List<float> BarAS_SabitPortföyDeğerleri { get; set; }
//
public float BarAS_SabitPortföy_İlkAlışFiyatı { get; set; }
public float BarAS_SabitPortföy_İlkAlışLotMiktarı { get; set; }
public string BarAS_SabitPortföy_İlkAlışBarTarihi { get; set; }
public string BarAS_SabitPortföy_EnYüksekKapanışFiyatıBarTarihi { get; set; }
public int BarAS_SabitPortföy_EnYüksekKapanışFiyatıiDealBarID { get; set; }
//
public float BarAS_SistemPortföyü_BaşlangıçİşlemLimiti { get { return 100.0f; } }
public int BarAS_SistemPortföyü_İlkAlışiDealBarID { get; set; }
public float BarAS_SistemPortföyü_İlkAlışFiyatı { get; set; }
public string BarAS_SistemPortföyü_İlkAlışBarTarihi { get; set; }
public float BarAS_SistemPortföyü_EnYüksekKapanışFiyatı { get; set; }
public float BarAS_SistemPortföyü_EnYüksekPortföyDeğeri { get; set; }
public float BarAS_SistemPortföyü_EnYüksekPortföyDeğeriBarKapanışFiyatı { get; set; }
public string BarAS_SistemPortföyü_EnYüksekPortföyDeğeriBarTarihi { get; set; }
public int BarAS_SistemPortföyü_EnYüksekPortföyDeğeriiDealBarID { get; set; }
//
public int BarAS_SistemPortföyü_AlışİşlemiSayısı { get; set; }
public int BarAS_SistemPortföyü_SatışİşlemiSayısı { get; set; }
//
public float BarAS_SonFiyat { get; set; }
public string BarAS_SonFiyatBarTarihi { get; set; }
https://i.hizliresim.com/fkyuv7s.pngPHP Code:
// GRAFİK ve SORGU İÇİN
if ( oTH.boolGrafikÇizimiİçinKullanılacak || oTH.boolSorguHesaplamalarıİçinKullanılacak )
{
if ( boolPozisyonDeğişikliğiOldu )
{
BarAS_İşlemTarihleri [ iDealBarID ] = oPV.pvVeriler [ iDealBarID ].Date.ToString ( "G" );
if ( BarAS_İşlemSeviyeleri [ iDealBarID ] == 0.0f ) // bu koşulu kaldırma, değer daha önceden set edilmiş olabilir
BarAS_İşlemSeviyeleri [ iDealBarID ] = İşlemFiyatı;
BarAS_TakipEdenZararKesDeğerleri [ iDealBarID ] = TakipEdenZararKes;
BarAS_SistemPortföyDeğerleri [ iDealBarID ] = NakitVarlıkBarKapanışı ( iDealBarID );
}
else // POZİSYON DEĞİŞİKLİĞİ OLMADI
{
if ( false )
{ }
else if ( boolPozisyondayken_İlaveAlışYapıldı )
{
// Kodlar
...
}
else if ( boolPozisyondayken_ParçalıSatışYapıldı )
{
...
}
else // İşlem yapılmadı
{
...
BarAS_İşlemSeviyeleri [ iDealBarID ] = 0.0f;
...
}
}
}
Bu arada iDeal kullanma zamanım yarın tam 11 ay olacak ve gerçek anlamdaki ilk robot işlemleri günüm olacak.
Sayın Bear_Bull dostumun dediği gibi: "Düğmeye Basacağım"
Bana şans dileyin.. :one:
Merhabalar, Viop emirlerimi kontrol eden bi yapı kurmak istiyorum bu mümkün mü acaba ? Yardımcı olabilir misiniz ? Yapmak istediğim şey şu şekilde;
Viop emirlerinde herhangi bir senette veya endexte bekleyen emir varsa, bu emrin gönderildiği sürenin üzerinden 15 saniye geçmiş ise, bu emri sil ve piyasa fiyatından emir gönder veya kısmi gerçekleşmişse, sil ve gerçekleşmeyen lot kadar piyasa emri gönder.
Böylelikle algoritmanın gönderdiği limit emirlerin gerçekleşmeme durumunu oluşacak kaymayı göze alarak ortadan kaldırmak istiyorum.
Yardımcı olursanız sevinirim.