https://i.hizliresim.com/ly5qjky.png
Printable View
Aynı veri sizde de var. %200
Teşekkürler.
Sabah Emir toplama ve eşleştirme sonucu oluşan denge fiyatını 10:00 barına dahil etmeyişleri, periyoda göre değişik zamanlara sahip bir; 10:00 barından önce yer alan; öncü bir bar olarak değişkenlerde yer alması
ve de
akşam kapanış eşleştirmesinde oluşan denge fiyatını 18:00 barı olarak; ayrı bir bar verisi şeklinde; değişkenlere atamaları..
bu durum tüm gösterge hesaplamalarına da yansıyor.
Bu ne kadar doğru? Ya da yanlış değil?
https://i.hizliresim.com/iewtotg.png
https://i.hizliresim.com/6i91gv6.png
8 saatte 10 adet 60 dakikalık bar var örneğin, bar kapanışına göre hareket eden stratejilerde sorun çıkartmasın diye mi böyle tasarlandı, 18:00 barı kapanışına göre nasıl hareket edecek bu sistem, emir ertesi günün, 10:00 barından önce oluşan bara mı kayıyor? Sabahki o barda, akşamdan kalma sinyal oldu ama işlem olamaz, 10:00 barında işleme girmesi lazım. Ya da eskiden çift seanslı günlerde, açılış, kapanış, karanlık oda uygulamalarının farklı olduğu günlerde.. bilemedim.
Sistemini anlık veriye göre; işlem seviyesi değişkenini set ederek; yapmaya çalışan algoritmaların da işi zor. Akşam 18:05:00 öncesinde henüz kesinleşmemiş olan denge fiyatından emir göndermek de sözleşmeye bağlı zannedersem. karanlık odada stoploss fiyatının altına düştü, ya da alım seviyesinin üzerine çıktı.. ertesi güne kalıyor işlemler. Ertesi gün sabah işlemler başlamadan arada bir bar verisi daha var..
Düzgün bir sistem kurmaya çalışıyorum, verilerdeki aksaklıklar ve bilgi eksiklerim zorluyor. Saldım Çayıra Mevlam Kayıra sistemi olmasın ismi.
Merhaba İdeal Sakinleri,
Buradaki arkadaşlaa şöyle bir sorum olacaktı.
VIOP - Endeks kontratında algo-robot çalıştırıyorum. Robot bar kapanışından 2 saniye önce emri iletiyor.
Limitli emir gönderdiğimiz için bazen hızlı yukarı veya aşağı hareketlerde gönderilen emir karşıda eşleşemediği için sistem askıda kalıyor.
Bu kalma probleminin çözümü için USER.DLL kullanarak Sistem.EmirDuzelt veya Sistem.EmirSil kullanılabiliyor mu? (Sistem.EmirDuzelt veya Sistem.EmirSil için referans numaralarını takip edilmesi gerektiğin biliyorum.)veya başka bir yol var mıdır ?
Sistem.EmirDuzelt veya Sistem.EmirSil i Visual Studio'da görebilirsiniz fakat İdeal kendi compilerında için kullanmaya izin vermiyor.
Bu eşleşmeme sorunu otomatik çözmek gerekli diye düşünüyorum.
Yoksa telegram botunu devreye alıp, gerçek pozisyon ile teorik pozisyonu karşılaştan bir yapı oluşturup, manuel işlemle düzeltme yapacağım. Bu da çok istediğim bir yapı olmayacak.
Eminim aynı sorunu yaşayan arkadaşlar vardır.
PHP Code:
public void EmirDuzelt(string emirRefNo, double yeniFiyat, double yeniMiktar, double eskiFiyat, double eskiMiktar);
public void EmirSil(string emirRefNo);
PHP Code:
cxPortfolio.BistRobotHesapClass BistHesap = Sistem.BistHesapOku();
List<ImkbOrderRecord> GerceklesenEmirler = BistHesap.GerceklesenEmirler;
List<ImkbOrderRecord> BekleyenEmirler = BistHesap.BekleyenEmirler;
/*
public string LongAccountName;
public string AmendPermit;
public string ImprovePermit;
public string OneSessionPermit;
public string OrderRef;
public string OrderSessionNo;
public string ZincirRef;
public string Note;
public string Validity;
public string SatisTip;
public string GSaat;
public int EmirUpdateNum;
public int SiraNo;
public int MaxZincirSiraNo;
public string RefNo;
public string SessionName;
public string ExecutionStatus;
public byte Selected;
public string CancelPermit;
public string OrderType;
public string OrderEndDate;
public double GPrice;
public string OrderNo;
public string Symbol;
public string BuySell;
public double Amount;
public double AmountShowing;
public double GAmount;
public double Balance;
public string OrderUpdateDate;
public double Price;
public double Total;
public double GTotal;
public string ValorDate;
public string Status;
public string StatusCode;
public string Session;
public string OrderPermit;
public string OrderDate;
public string AccountNo;
public string AccountName;
public string OrderNoString { get; }
*/
Merhaba, EmirDuzelt ve EmirSil çalışmıyor mu?Alıntı:
Sistem.EmirDuzelt veya Sistem.EmirSil i Visual Studio'da görebilirsiniz fakat İdeal kendi compilerında için kullanmaya izin vermiyor.
// Eskiz kodlar
dynamic BistHesap = Sistem.BistHesapOku(); // var
List<dynamic> BekleyenEmirler = BistHesap.BekleyenEmirler; // var ya da List<dynamic>
foreach (BekleyenEmir in BekleyenEmirler)
{
string _refNo = BekleyenEmir.RefNo;
...
..
if(_condition) Sistem.EmirSil(_refNo);
}
İlave:
İyiymiş.. neden koyulmuş o metotlar o zaman?
"Merhabalar
Kodlama yaparak emir iptal ve iyileştirme yapabilme imkânı maalesef bulunmamaktadır.
İyi çalışmalar dileriz"
Bu cevap da algo@idealdata.com.tr'den aldığım cevap.
Bunun otomatikleştirebilmesi lazım bence.
İş Yatırım sitesinden indirdiğim csv dosyadaki tarih bilgilerini kullanacağım.
Robot kodlarına hisse için sermaye değişiminin olacağı tarihten önceki
son işlem gününde yeni pozisyon açmaması ve de
17:55:00 sonrası; varsa; mevcut pozisyonu kapatması yönünde metotlar ilave edeceğim.
Robot temettüyü ne yapsın, komisyon ödeyecek boş yere ayrıca işlem limitleri, portföy değeri, hisse bazlı kar zarar hesapları pek çok veriyi sermaye değişimleri etkisini göz önünde bulundurarak güncellemek lazım.
Eskidendi o.. ehtiyarladım. :ok:
O günün son kapanış bilgisi muhafaza edilecek.
Sonrası.. ??
Sonrasındaki işlem zamanlarında iDeal'in kendi bar verisini güncelleyip güncellemediğini sermaye değişiminin olduğu günün tarihi bilgisini kullanarak; o tarihli barın bir öncesindeki bardan veri alarak; ve de daha önce muhafaza edilmiş kapanış değeri ile farklı olup olmadığını kontrol ederek .. ancak. Bar verisi güncel değilse al sat sinyaline yönelik hesaplamalar da yana yatar, batar.
İDeal ilk açılışında Lib sınıfının constructor metodu içinde kontroller yapılır.
https://i.hizliresim.com/h7jq617.png
Bir sonraki işlem gününde hissede sermaye değişimi olup olmadığını kontrol etme yöntemi..
Topikte daha önceki gönderilerde resmi tatiller dosyasının oluşturulması ve okunmasına yönelik kodlarım mevcut, benzer mantıkla HisseSermayeDeğişimleri.csv dosyasından veriler okunuyor ve takip edilen hisseler için oluşturulan sınıf List'i içindeki veri set edilip gereken yerde kullanılıyor.
(public bool boolSürekliİşlemlerBitimindenÖncePozisyonKapat { get; set; } vb. opsiyonlar devreye alınabilir)
boolBirSonrakiİşlemGünündeSermayeDeğişimiOlacak = true olduğu durumda gün sonu fiyatının oluşmasının ardındanPHP Code:
public bool boolBirSonrakiİşlemGünündeSermayeDeğişimiOlacak { get; set; }
public float SermayeDeğişimiÖncesiSonKapanışFiyatı { get; set; }
public DateTime SermayeDeğişimiÖncesiSonKapanışFiyatıTarihVeSaati { get; set; }
public bool boolSermayeDeğişimiSonrasındaIDEALVerileriGüncellendi { get; set; }
SermayeDeğişimiÖncesiSonKapanışFiyatı
SermayeDeğişimiÖncesiSonKapanışFiyatıTarihVeSaati
boolSermayeDeğişimiSonrasındaIDEALVerileriGüncelle ndi = false yapılarak
değişkenleri takip hisselerine ait veri dosyasına kaydediliyor.
Sonraki işlem gününde ya da günlerinde
SermayeDeğişimiÖncesiSonKapanışFiyatıTarihVeSaati
zamanı ile çakışan bardaki değişiklikler rutin olarak kontrol edilip iDeal'in verisini güncelleyip güncellemediği belirleniyor.
https://i.hizliresim.com/pds0ma5.png