|
|
Anladım. O konuyu hiç denemedim ama şöyle uydurma bir fikir geldi aklıma. Örneğin sadece emir gönderen bir robot arka planda sürekli çalışsa ve bu robot bir txt dosyasında eğer emir bilgileri varsa gönedercek şekilde dizayn edilse. Sonrasında siz formdaki tuşa basınca, bu txt dosyasına emir bilgilerini gönderse ve emir gönderen robotta txt e bilgi düşünce emiri gönderip txt deki emir bilgilerini silse muhtemelen işiniz görülecektir. Ama illaki robot çalıştırmadan yapmak istiyorum derseniz bu konuda bilgim yok.
Banada emir iptali, değiştirme vs işlemleri robot üzerinden nasıl yapabilirim sorusunun cevabı lazım Bir kaç denemem oldu fakat olumlu sonuçlanmadı. Bu konuda bilgisi olan arkadaşlar yardımcı olurlarsa sevinirim.
Eski yazılardan alıntı bu mesajla kabaca nasıl yapılacağı anlatılıyor.Bunu çözmek lazım.
cxSistem altına eklenmiştir diye düşünüp yapılıyor diye yazmıştım ama şimdi kontrol ettim cxSistem altında sanırım yok hala
Bundan dolayı maalesef sizler için örnek kod paylaşamıyorum.
nasıl yapıldığını kabaca anlatayım.
C:\iDeal\Config\TradeKurumlar.Txt dosyasında kurumlara ait web servis adresleri bulunuyor.
Örneğin Gedik https://gob.gedik.com/gendexweb/jsps...ternet_api.jsp adresini kullanıyor.
ideal ile aracı kurum servisleri arasındaki haberleşme bu adres üzerinden gerçekleşiyor.
Peki bunu nasıl yapıyor?
C:\iDeal\TradeLog içerisinde log atılan web servis paramları var.Manuel bir işlem yapıp düşen loga bakabilirsiniz..
örneğin emir iptelinde gönderilen param;
komut=HISSEEMIRSIL¶meter1=accountX.AccountName ¶meter2=11111111¶meter3=accountX.Passwo rd& parameter7=123456789¶meter38=176.88.88.88
gibi..(güvenlik nedeniyle log atarken parola-şifre gibi değerler yazılmıyor bunlarıda işleyeceksiniz.)
bunu adres sonunda "url?param" formatına dönüştürüp chrome da dahi çalıştırsanız komut çalışır
demekki ihtiyacınız olan csharp kodu, string işlemler yoluyla elde ettiğiniz adresi Request eden bir kod iletişim için yeterli.
(Fakat şunu belirtyelim aracı kuruma göre değişen farklı olaylar var.Bunlar için ideal içerisinde farklı caseler var, bunları görmeden ezbere bu işi yapmak sakıncalı.)
HttpWebRequest mn = (HttpWebRequest)WebRequest.Create(url);
gibi.
Aracı kurumların kendi yönetim yazılımları var, örneğin gendeks, bunu kullanan tüm kurumların çalışma mantığı ise aynıdır.
Özetle ideal ile aracı kurum servisleri arasındaki tüm iletişim protokolüne kodlarıda gördüğüm için hakimim ve bu yönemi kullanarak hallediyorum kendi işlerimi ve manuel yapılan her işi otomatikleştirebiliyorum..
İptal ve iyileştirme için idealin sistem altına metod koymasını talep ederseniz yapacaklardır bence.Manuelde sakıncası olmayan bir şeyin otomatikde de sakıncası olamaz.
Evet bunu denemeye calismistim ama malesef sonuc alamadim. Bu sekilde denedigimde araci kurumdan hata aliyorum. Biraz daha arastirmak lazim sanirim
Twitter @umittorhan
Algo.... Sistemli Yatırımcı. Namıdiğer: ykoc
ideal de alım satım stratejisiyle kod yazmayla ilgilenen arkadaşların takip etmesinde fayda var
Kendisi bu konuda derya denizdir
ideal sorgudipzirve sorgu formülünü nasıl bulabilirim kendi sitesindeki formül çalışmıyor
|
|
bu işe yarar mı?
1250 gün için tarama yapıyor
istediğiniz rakamla değiştirip taratabilirsiniz.
PHP Code:
///renkler
var sarı = Sistem.Renk(255, 255, 255, 1);
var yesil = Sistem.Renk(240, 120, 255, 1);
var kırmızı = Sistem.Renk(255, 255, 0, 0);
var mavi = Sistem.Renk(255, 50, 100, 200);
var amavi = Sistem.Renk(240, 100, 255, 255);
var mkırmızı = Sistem.Renk(255, 200, 1, 1);
var myesil = Sistem.Renk(255, 1, 140, 1);
var gri = Sistem.Renk(100, 100, 100, 100);
// sembol tanımlama
var Sembol = Sistem.Sembol;
//// kullanılacak değişkenler
var sor = Sistem.Parametreler[0]; /// G
var sor2 = Sistem.Parametreler[1]; /// 1250
// Programcı Logo + Sistem İsmi
Sistem.ZeminYazisiEkle("Bear -", 1, 260, 1, mkırmızı , "Tahoma", 15);
Sistem.ZeminYazisiEkle("- Bull", 1, 310, 1, myesil , "Tahoma", 15);
Sistem.ZeminYazisiEkle("- DİP TEPE BUL - ", 1, 400, 1, amavi , "Tahoma", 15);
// Senet ismini Grafik üzerine yaz
Sistem.ZeminYazisiEkle(Sembol , 1, 150, 35, amavi , "Tahoma", 12);
//var YilBar = Sistem.GrafikVerileriniOku(Sistem.Sembol, "Y")
var dataYuksek = Sistem.GrafikFiyatOku(Sistem.Sembol, sor, "Yuksek");
var dataDusuk = Sistem.GrafikFiyatOku(Sistem.Sembol, sor, "Dusuk");
var tepe = Sistem.HHV(sor2 ,dataYuksek );
var dip = Sistem.LLV(sor2 ,dataDusuk );
var verikulllan = Sistem.GrafikVerileriniOku(Sembol, sor); /////gün/hafta/ay/yıl ___G-H-A-Y
// Sistem fonksiyonu kullanmadan yapılan hesaplamalarda liste yaratıp, döngü kullanmamız gerekiyor
var BarSayisi = verikulllan.Count; // kolaylık olsun diye grafikteki bar sayısını değişkene aktar
var Orta = Sistem.Liste(BarSayisi , 0); // boş liste oluştur
var x1 = Sistem.Liste(BarSayisi , 0);
var x2 = Sistem.Liste(BarSayisi , 0);
//var dip = Sistem.Liste(BarSayisi , 0);
//// Kullanıcı Kontrolü
for (int i = 1; i < verikulllan.Count; i++)
{
x1[i] = tepe[i]; // verikulllan[i].High; // yüksek
x2[i] = dip[i]; //verikulllan[i].Low; // düşük
Orta[i] = (tepe[i] + dip[i]) / 2;
////////////explorer
//var Periyot = Sistem.Periyot;
var veri2 = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Close;
var Explorer = Sistem.Parametreler[9];
if (Explorer == "E")
{
Sistem.SorguBaslik[0] = "Bugün";
Sistem.SorguBaslik[1] = " Dip Fiyatı ";
Sistem.SorguBaslik[2] = "Orta seviye ";
Sistem.SorguBaslik[3] = "Üst seviye ";
//Sistem.SorguBaslik[7] = "Satış Hedef ";
/////////////////////////////
if (veri2 > Orta[i])
{
Sistem.SorguAciklama = sor2 + " " + sor + " " + "Orta fiyatın üstünde";
}
else
{
Sistem.SorguAciklama = sor2 + " " + sor + " " + "Orta fiyatın altında";
}
Sistem.SorguOndalik[0] = 2;
Sistem.SorguOndalik[1] = 2;
Sistem.SorguOndalik[2] = 2;
Sistem.SorguOndalik[3] = 2;
Sistem.SorguDeger[0] = veri2;
Sistem.SorguDeger[1] = x2[i];
Sistem.SorguDeger[2] = Orta[i];
Sistem.SorguDeger[3] = x1[i];
Sistem.SorguEkle();
/////////////////////
}
}
////////hesaplanan verileri çizgilere aktar ve açıklama ekle
Sistem.Cizgiler[0].Deger = Sistem.DonemCevir(Sistem.GrafikVerileri, verikulllan, x1);
Sistem.Cizgiler[0].ActiveBool = true;
Sistem.Cizgiler[1].Deger = Sistem.DonemCevir(Sistem.GrafikVerileri, verikulllan, Orta);
Sistem.Cizgiler[1].ActiveBool = true;
Sistem.Cizgiler[2].Deger = Sistem.DonemCevir(Sistem.GrafikVerileri, verikulllan, x2);
Sistem.Cizgiler[2].ActiveBool = true;
Sistem.Cizgiler[0].Aciklama = "Üst seviye ";
Sistem.Cizgiler[1].Aciklama = "Orta seviye ";
Sistem.Cizgiler[2].Aciklama = " Dip Fiyatı ";
//// Bitti
Not : FORMUL hem explorer/sorgu hem de Grafik üstünde çalışacak şekildedir.
Bear_Bull
@BearBull26
Yer İmleri