Bu arada, idealin son versiyonlarında EXCEL OKU fonksiyonu ekledik.
Her türlü amaç için kullanılabilir.
Mesela: önceden tanımlanan hisseler (veya varantlar, vadeli kontratlar vs.) için, Şu fiyata gelirse al, şu fiyata gelirse KarAl yapıp pozisyonu kapat, şu fiyata gelirse stoplan pozisyonu kapat gibi bir robota exceli bağlayabilirsiniz.
(excelin açık olması gerekmez.)
örnek kod:
Kod:
string FileName = "C:\\ideal\\HisseRobot.Xlsx";
bool DevamEt = true;
if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday) DevamEt = false;
if (DateTime.Now.DayOfWeek == DayOfWeek.Sunday) DevamEt = false;
if (DateTime.Now.ToString("HHmm").CompareTo("1000") <= 0) DevamEt = false;
if (DateTime.Now.ToString("HHmm").CompareTo("1800") >= 0) DevamEt = false;
if (DateTime.Now.ToString("HHmm").CompareTo("1300") >= 0 && DateTime.Now.ToString("HHmm").CompareTo("1400") <= 0) DevamEt = false;
if (System.IO.File.Exists(FileName) == false) DevamEt = false;
if (DevamEt)
{
var ExcelArray = Sistem.NesneGetir(FileName + ";" + DateTime.Now.ToString("yyyyMMdd"));
if (ExcelArray == null)
{
ExcelArray = Sistem.ExcelOku(FileName);
Sistem.NesneKaydet(FileName + ";" + DateTime.Now.ToString("yyyyMMdd"), ExcelArray);
}
//Excel dosyasını 5 dk'da bir tekrar oku.
if (Sistem.ZamanKontrolDakika(FileName + ";" + DateTime.Now.ToString("yyyyMMdd")) >= 5)
{
Sistem.ZamanKontrolGuncelle(FileName + ";" + DateTime.Now.ToString("yyyyMMdd"));
ExcelArray = Sistem.ExcelOku(FileName);
Sistem.NesneKaydet(FileName + ";" + DateTime.Now.ToString("yyyyMMdd"), ExcelArray);
}
int SatirSayisi = ExcelArray.GetLength(0); //satırların sayısını bul
for (int i = 2; i <= SatirSayisi; i++)
{
var Sembol = ExcelArray[i, 1].ToString();
var AlisFiyat = (decimal)ExcelArray[i, 2];
var HedefFiyat = (decimal)ExcelArray[i, 3];
var StopFiyat = (decimal)ExcelArray[i, 4];
var Lot = (int)ExcelArray[i, 5];
var Anahtar = Sistem.Name + " , " + Sembol;
double IslemFiyat = 0;
DateTime IslemTarih;
var Rezerv = "";
var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih, out Rezerv);
var EmirSembol = "IMKBH'" + Sembol;
var basicitem = Sistem.YuzeyselVeriOku(EmirSembol);
var sonfiyat = basicitem.LastPrice;
var bidfiyat = basicitem.BidPriceDec;
var askfiyat = basicitem.AskPriceDec;
var Islem = "";
var Miktar = 0.0;
if (askfiyat >= AlisFiyat && Pozisyon == 0 && Rezerv == "") // AL
{
Rezerv = "AL";
Miktar = Lot;
IslemFiyat = Sistem.SonFiyat(EmirSembol);
}
else if (Pozisyon > 0 && askfiyat >= HedefFiyat && Rezerv == "AL") // KARLA KAPAT
{
Rezerv = "KAR AL";
Miktar = -Lot;
}
else if (Pozisyon > 0 && bidfiyat < StopFiyat && Rezerv == "AL") // STOP
{
Rezerv = "STOP";
Miktar = -Lot;
}
if (Miktar > 0) Islem = "ALIS";
if (Miktar < 0) Islem = "SATIS";
if (Islem != "")
{
Sistem.PozisyonKontrolGuncelle(Anahtar, Miktar + Pozisyon, IslemFiyat, Rezerv);
Sistem.EmirSembol = EmirSembol;
Sistem.EmirIslem = Islem;
Sistem.EmirSuresi = "KIE";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirMiktari = Math.Abs(Miktar);
Sistem.EmirGonder();
}
}
}
Yer İmleri