merhabalar,
Aþaðýdaki sorguyu Ýdeal dilinde sorgu olarak çevirebilir misiniz.
https://resmim.net/i/SyQCTk
merhabalar,
Aþaðýdaki sorguyu Ýdeal dilinde sorgu olarak çevirebilir misiniz.
https://resmim.net/i/SyQCTk
Þu dökümanýn 56. sayfasýnda bilgi varmýþ.
Dökümana göre farklý kuruma emir gönderilebiliyor diye anladým ben
https://idealdata.com.tr/downloads/i...istemGenel.pdf
Hisse bazlý bakiye giriþi yapýlabilecek hali aþaðýdaki gibi
PHP Code:
var SistemAdi = "Sistemim_1"; //sistemizin adý
var GrafikPeriyodu = "1"; //grafiðin priyodu
var ToplamPozisyon = 24; //Kaç defa alým yapýlacak
var hisseBakiye = new Dictionary<string, int>();
hisseBakiye["IMKBH'PETKM"] = 1000;
hisseBakiye["IMKBH'KRDMD"] = 2000;
hisseBakiye["IMKBH'KCHOL"] = 3000;
hisseBakiye["IMKBH'AKBNK"] = 1000;
hisseBakiye["IMKBH'EREGL"] = 2000;
hisseBakiye["IMKBH'EKGYO"] = 3000;
for (var No = 0; No < hisseBakiye.Count; No++)
{
var item = hisseBakiye.ElementAt(No);
var Sembol = item.Key;//sistemin sinyal ürettiði grafik sembolü
var Bakiye = item.Value;//sistemin sinyal ürettiði hisse için yukarýda tanýmlanan bakiye
var SonFiyat = (decimal)Sistem.SonFiyat(Sembol);
var SonYon = Sistem.SonYonGetir(SistemAdi, Sembol, GrafikPeriyodu);
var Anahtar = Sistem.Name + ", " + Sembol + ", " + GrafikPeriyodu;
var Anahtar2 = Sistem.Name + "::" + Sembol + "::" + GrafikPeriyodu;
double IslemFiyat = 0;
DateTime IslemTarih;
var Islem = "";
var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih);
var EmirTekrari = Sistem.PozisyonKontrolOku(Anahtar2);
var LotSize = (double)Math.Round(Sistem.SayiTablosunuOku(Anahtar2), 0);
var Basla = Sistem.SayiTablosunuOku(Anahtar);
if (Basla == 0)
{
Sistem.SayiTablosunuGuncelle(Anahtar, 1);
LotSize = (double)Math.Round(( Bakiye / SonFiyat), 0);
Sistem.SayiTablosunuGuncelle(Anahtar2, LotSize);
}
if (SonYon == "A" && (Pozisyon == 0 || Sistem.ZamanKontrolSaniye(Anahtar2) >= 10) && EmirTekrari <= ToplamPozisyon)
{
Islem = "ALIS";
}
if (SonYon == "F" && Pozisyon > 0 && Sistem.ZamanKontrolSaniye(Anahtar2) >= 10) // Sat
{
Islem = "SATIS";
}
if (Islem != "")
{
Sistem.ZamanKontrolGuncelle(Anahtar2);
if (Islem == "ALIS")
{
EmirTekrari++;
Sistem.PozisyonKontrolGuncelle(Anahtar2, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(Anahtar, Pozisyon + LotSize, (double)SonFiyat);
}
else if (Islem == "SATIS")
{
EmirTekrari--;
Sistem.PozisyonKontrolGuncelle(Anahtar2, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(Anahtar, Pozisyon - LotSize, (double)SonFiyat);
}
Sistem.EmirSembol = Sembol;
Sistem.EmirIslem = Islem;
Sistem.EmirSuresi = "GUN";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirMiktari = (double)Math.Abs(LotSize);
Sistem.EmirGonder();
}
}
Hocam teþekkür ederim. oldu.
Hocam tekrardan çok teþekkür ederim. Buda oldu. Sonunda güzel bir robot kalýbý olduðunu düþünüyorum Kendim için.
Bunun Parasal deðil lot olarak emir göndermek istersek nereyi düzeltmemiz lazým hocam.
Lotlu hali daha sade:
PHP Code:var SistemAdi = "Sistemim_1"; //sistemizin adý
var GrafikPeriyodu = "1"; //grafiðin priyodu
var ToplamPozisyon = 24; //Kaç defa alým yapýlacak
var hisseLot = new Dictionary<string, int>();
hisseLot["IMKBH'PETKM"] = 10;
hisseLot["IMKBH'KRDMD"] = 20;
hisseLot["IMKBH'KCHOL"] = 30;
hisseLot["IMKBH'AKBNK"] = 10;
hisseLot["IMKBH'EREGL"] = 20;
hisseLot["IMKBH'EKGYO"] = 30;
for (var No = 0; No < hisseLot.Count; No++)
{
var item = hisseLot.ElementAt(No);
var Sembol = item.Key;//sistemin sinyal ürettiði grafik sembolü
var LotSize = item.Value;//sistemin sinyal ürettiði hisse için yukarýda tanýmlanan lot
var SonFiyat = (decimal)Sistem.SonFiyat(Sembol);
var SonYon = Sistem.SonYonGetir(SistemAdi, Sembol, GrafikPeriyodu);
var PozisyonAnahtari = Sistem.Name + ", " + Sembol + ", " + GrafikPeriyodu;
var EmirAnahtari = Sistem.Name + "::" + Sembol + "::" + GrafikPeriyodu;
double IslemFiyat = 0;
DateTime IslemTarih;
var Pozisyon = Sistem.PozisyonKontrolOku(PozisyonAnahtari, out IslemFiyat, out IslemTarih);
var EmirTekrari = Sistem.PozisyonKontrolOku(EmirAnahtari);
var Islem = "";
if (SonYon == "A" && (Pozisyon == 0 || Sistem.ZamanKontrolSaniye(EmirAnahtari) >= 10) && EmirTekrari <= ToplamPozisyon)
{
Islem = "ALIS";
}
if (SonYon == "F" && Pozisyon > 0 && Sistem.ZamanKontrolSaniye(EmirAnahtari) >= 10) // Sat
{
Islem = "SATIS";
}
if (Islem != "")
{
Sistem.ZamanKontrolGuncelle(EmirAnahtari);
if (Islem == "ALIS")
{
EmirTekrari++;
Sistem.PozisyonKontrolGuncelle(EmirAnahtari, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(PozisyonAnahtari, Pozisyon + LotSize, (double)SonFiyat);
}
else if (Islem == "SATIS")
{
EmirTekrari--;
Sistem.PozisyonKontrolGuncelle(EmirAnahtari, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(PozisyonAnahtari, Pozisyon - LotSize, (double)SonFiyat);
}
Sistem.EmirSembol = Sembol;
Sistem.EmirIslem = Islem;
Sistem.EmirSuresi = "GUN";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirMiktari = (double)Math.Abs(LotSize);
Sistem.EmirGonder();
}
}
Merhaba arkadaþlar, sadece 1dk lýk grafik verileri kullanarak 5dk, 15dk, 60dk ve günlük grafik verilerini oluþturmak mümkün mü?
Sorunuzu yanlýþ anlamadý isem...
Zaten grafik veriler bu þekilde oluþur.
5 adet 1 dakikalýk grafik = 5 dakikalýk grafik,
1. dakikanýn açýlýþý = 5 dakikalýk açýlýþ,
5. dakikanýn kapanýþý = 5 dakikalýk kapanýþ,
3 adet 5 dakikalýk grafik = 15 dakikalýk grafik,
1. 5 dakikanýn açýlýþý = 15 dakikalýk açýlýþ,
3. 5 dakikanýn kapanýþý = 15 dakikalýk kapanýþ,
4 adet 15 dakikalýk grafik = 60 dakikalýk grafik,
1. 15 dakikanýn açýlýþý = 60 dakikalýk açýlýþ,
4. 15 dakikanýn kapanýþý = 60 dakikalýk kapanýþ,
...
Ýstediðinizin bu olduðunu sanmýyorum ama;
"1 dk.lýk grafik açýkken diðerlerini de göreyim" derseniz...
Benim aþaðýya eklediðim görsel Tradingview ama Ýdeal'de de "Sistem Dönem Çevir" fonksiyonu ile yapýlabilir.
Asýl istediðiniz grafik deðil, gösterge, robot vb. ise de...
Yine 1 dk.lýk grafiði kullanarak, üst periyod çizimlerini oluþturabilirsiniz. Yani aþaðýdan yukarý bakmak mümkün.
Tersi deðil!.
Repaint'i engellemek isterseniz, "kapanýþ" verilerini dikkate alýn.
![]()
Yer Ýmleri