-

Originally Posted by
serseri26
bilgisayara sanal windows kurarsanız iki idealide aynı anda çalıştırabilirsiniz.Tabi lisansınız varsa.
[IMG]
[/IMG]
ideal teknik servisini arayarak öğrendim.
Aşamaları yazıyorum.
1- Mevcut bir ideal varsa , yeni bir ideal daha kuruyoruz. Yeni kurdugumuz idealin adı 1. idealden farklı olacak.
2. Mevcut olan idealin içinde confiğ klasörünün içine mausa sağ tıklayarak yeni metin belgesi şeciyoruz bunada multiuser ismini veriyoruz.
3. Yaptıgımız multiuser dosyasını yeni kurduğumuz idealin config dosyasının içine kopyalıyoruz.
4- Mevcut idealde yer alan patern, chart sistem, chardata gibi klasörleri yeni idealin içine kopyalıyoruz. (Bu mecburi olmayıp hangi ayarları taşımak istiyorsanız onu kopyalarsınız.
5- 2 idealide artık aynı anda açabilirsiniz artık .
6- Bu işlemleri yaparken idealler kapalı olarak yapılacak.
Ben bunu idealgo modülünde aynı anda 1 den fazla optimizasyon yapmak için kullanacagım.
Lisans bilgilerinizi yeni kurdugunuz idealin içine yazdınızmı idealgo modülü ondada açılacaktır.
-
Sistem.SorguBaslik[0] = "Hacim";
Sistem.SorguBaslik[1] = "besGunHacim";
var veri = Sistem.GrafikVerileri;
var V = Sistem.GrafikFiyatOku(veri, "Hacim");
var bes = Sistem.MA(5, "Simple", "V"); //son 5 periyot hacim ortalaması
Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Vol;
Sistem.SorguDeger[1] = bes ;
Sistem.SorguEkle();
Üsteki sorgu formülünde günün hacmini ve 5 günlük hacim ortalamasını tabloda görmek istiyorum . Günlük hacmi hesaplıyor fakat 5 günlük hacim ortalamasını hesaplamıyor.
5 günlük hacim ortalamasını nasıl yazmalıyım ki oda tabloda görünsün.
-

Originally Posted by
atakanözbaki
Sistem.SorguBaslik[0] = "Hacim";
Sistem.SorguBaslik[1] = "besGunHacim";
var veri = Sistem.GrafikVerileri;
var V = Sistem.GrafikFiyatOku(veri, "Hacim");
var bes = Sistem.MA(5, "Simple", "V"); //son 5 periyot hacim ortalaması
Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Vol;
Sistem.SorguDeger[1] = bes ;
Sistem.SorguEkle();
Üsteki sorgu formülünde günün hacmini ve 5 günlük hacim ortalamasını tabloda görmek istiyorum . Günlük hacmi hesaplıyor fakat 5 günlük hacim ortalamasını hesaplamıyor.
5 günlük hacim ortalamasını nasıl yazmalıyım ki oda tabloda görünsün.
kendim biraz daha uğraşarak yaptım
Haftalık Hacim ortalaması/ 3 aylık hacim ortalaması
Aylık hacim ortalaması / yıllık hacim ortalaması
//akşam sorgulama yaptığınızda, 120dk lık altı periyotlar 18:00 ve 18.10 kapanışlarını sorgulayacağından genelde sağlıklı çalışmaz
Sistem.SorguBaslik[0] = "Son Hacim";
Sistem.SorguBaslik[1] = "Hafta O.H";
Sistem.SorguBaslik[2] = "UcAy O.H";
Sistem.SorguBaslik[3] = "Ay O.H";
Sistem.SorguBaslik[4] = "Yıllık O.H";
Sistem.SorguBaslik[5] = "Hafta/UcAy %";
Sistem.SorguBaslik[6] = "Ay/Yıllık %";
var Hafta = Sistem.MA(5, "Simple", "Hacim"); //son 5 periyot hacim ortalaması
var UcAy = Sistem.MA(90, "Simple", "Hacim"); //son 90 periyot hacim ortalaması
var Ay = Sistem.MA(30, "Simple", "Hacim"); //son 30 periyot hacim ortalaması
var Yıl = Sistem.MA(360, "Simple", "Hacim"); //son 360 periyot hacim ortalaması
var Veriler = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatOku(Veriler, "Kapanis");
var V = Sistem.GrafikFiyatOku(Veriler, "Hacim");
var j=Sistem.BarSayisi-1;
Sistem.SorguDeger[0] = V[j];
Sistem.SorguDeger[1] = Hafta[j];
Sistem.SorguDeger[2] = UcAy[j];
Sistem.SorguDeger[3] = Ay[j];
Sistem.SorguDeger[4] = Yıl[j];
Sistem.SorguDeger[5] = ((Hafta[j]-UcAy[j])/UcAy[j])*100 ;
Sistem.SorguDeger[6] = ((Ay[j]-Yıl[j])/Yıl[j])*100 ;
Sistem.SorguEkle();
-
// YENİ TEK YÖNLÜ İŞLEM AÇAN ROBOT FORMÜLÜ . TEK YÖNLÜ İŞLEM AÇABİLMESİ İÇİN SİSTEMİN TEK YÖNLÜ OLARAK YAZILMASI GEREKİR.
//TEK YÖN SİSTEM ÖRNEĞİ TOMAHISSE SİSTEMİ YAZILMIŞTIR.
var LotSize = 1; //işlem adedi
var SistemAdi = "TOMAHISSE"; //sistemizin adı (ÖRNEK TEK YÖNLÜ TOMAHISSE SİSTEMİ SİSTEM ADI OLARAK GİRİLMİŞTİR)
var GrafikSembolu = "IMKBH'THYAO"; //sistemin sinyal ürettiği grafik sembolü
var GrafikPeriyodu = "1"; //grafiğin periyodu
var EmirSembol = "IMKBH'THYAO"; //HİSSE KODU İLE AYNI YAZILMALI
var MySistem = Sistem.SistemGetir(SistemAdi, GrafikSembolu , GrafikPeriyodu ); //sistemin adı, grafik sembolü, grafiğin periyodu
if (MySistem == null)
{
Sistem.Mesaj(Sistem.Name + "Hatalı Çalışıyor !");
}
else
{
var SonFiyat = Sistem.SonFiyat(EmirSembol);
var Anahtar = Sistem.Name + "," + EmirSembol;
double IslemFiyat = 0;
DateTime IslemTarih;
var Miktar = 0.0;
var Rezerv = "";
var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih);
var SonYon = Sistem.SonYonGetir(SistemAdi, GrafikSembolu , GrafikPeriyodu ); //sistemin adı, grafik sembolü, grafiğin periyodu
if (Sistem.Saat.CompareTo("09:30:00") <= 0 || Sistem.Saat.CompareTo("18:14:59") >= 0) // seans yok işlem yapma
{
}
else
{
if (SonYon == "F" && Pozisyon != 0) // Flata Geç
Miktar = -Pozisyon;
else if (SonYon == "A" && Pozisyon != LotSize) // Al
Miktar = LotSize - Pozisyon;
else if (SonYon == "S" && Pozisyon != -LotSize) // Sat
Miktar = -LotSize - Pozisyon;
// Emir Gönder
var Islem = "";
if (Miktar > 0) {Islem = "ALIS"; Rezerv = "ALIŞ YAPILDI";}
if (Miktar < 0) {Islem = "SATIS"; Rezerv = "SATIŞ YAPILDI";}
if (Islem != "")
{
Sistem.PozisyonKontrolGuncelle(Anahtar, Miktar + Pozisyon, SonFiyat, Rezerv);
Sistem.EmirSembol = EmirSembol ;
Sistem.EmirIslem = Islem;
Sistem.EmirSuresi = "KIE"; // GUN, KIE, IKG
Sistem.EmirTipi = "Piyasa"; // Piyasa, Limitli, Piyasadan Limite
Sistem.EmirMiktari = Math.Abs(Miktar);
Sistem.EmirGonder();
}
}
}
******************************************
Bu robotu piyasa fiyatından değilde Aktif fiyattan emir göndermesi için hangi değişiklikleri yapmam gerekiyor.
-
@atakanözbaki
tam bilmememkle beraber aklımda şöyle kalmış ;
var AktifFiyat=yuzeysel.AskPrice
Sistem.EmirFiyati=AktifFiyat
-
İyiakşamlar, günaydın
yapmakistediğim şu.
İndikatör, -500 /0/500 değerlerinden oluşuyor.
Birbirini takip eden değerlerharicinde birliste oluşturup
al koşulu: a9[i-1] 0 ve a9[i] 100ise alsın şeklinde.
yardımcıolurmusunuz
A9.jpgA9.jpg
-

Originally Posted by
atakanözbaki
// YENİ TEK YÖNLÜ İŞLEM AÇAN ROBOT FORMÜLÜ . TEK YÖNLÜ İŞLEM AÇABİLMESİ İÇİN SİSTEMİN TEK YÖNLÜ OLARAK YAZILMASI GEREKİR.
//TEK YÖN SİSTEM ÖRNEĞİ TOMAHISSE SİSTEMİ YAZILMIŞTIR.
var LotSize = 1; //işlem adedi
var SistemAdi = "TOMAHISSE"; //sistemizin adı (ÖRNEK TEK YÖNLÜ TOMAHISSE SİSTEMİ SİSTEM ADI OLARAK GİRİLMİŞTİR)
var GrafikSembolu = "IMKBH'THYAO"; //sistemin sinyal ürettiği grafik sembolü
var GrafikPeriyodu = "1"; //grafiğin periyodu
var EmirSembol = "IMKBH'THYAO"; //HİSSE KODU İLE AYNI YAZILMALI
var MySistem = Sistem.SistemGetir(SistemAdi, GrafikSembolu , GrafikPeriyodu ); //sistemin adı, grafik sembolü, grafiğin periyodu
if (MySistem == null)
{
Sistem.Mesaj(Sistem.Name + "Hatalı Çalışıyor !");
}
else
{
var SonFiyat = Sistem.SonFiyat(EmirSembol);
var Anahtar = Sistem.Name + "," + EmirSembol;
double IslemFiyat = 0;
DateTime IslemTarih;
var Miktar = 0.0;
var Rezerv = "";
var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih);
var SonYon = Sistem.SonYonGetir(SistemAdi, GrafikSembolu , GrafikPeriyodu ); //sistemin adı, grafik sembolü, grafiğin periyodu
if (Sistem.Saat.CompareTo("09:30:00") <= 0 || Sistem.Saat.CompareTo("18:14:59") >= 0) // seans yok işlem yapma
{
}
else
{
if (SonYon == "F" && Pozisyon != 0) // Flata Geç
Miktar = -Pozisyon;
else if (SonYon == "A" && Pozisyon != LotSize) // Al
Miktar = LotSize - Pozisyon;
else if (SonYon == "S" && Pozisyon != -LotSize) // Sat
Miktar = -LotSize - Pozisyon;
// Emir Gönder
var Islem = "";
if (Miktar > 0) {Islem = "ALIS"; Rezerv = "ALIŞ YAPILDI";}
if (Miktar < 0) {Islem = "SATIS"; Rezerv = "SATIŞ YAPILDI";}
if (Islem != "")
{
Sistem.PozisyonKontrolGuncelle(Anahtar, Miktar + Pozisyon, SonFiyat, Rezerv);
Sistem.EmirSembol = EmirSembol ;
Sistem.EmirIslem = Islem;
Sistem.EmirSuresi = "KIE"; // GUN, KIE, IKG
Sistem.EmirTipi = "Piyasa"; // Piyasa, Limitli, Piyasadan Limite
Sistem.EmirMiktari = Math.Abs(Miktar);
Sistem.EmirGonder();
}
}
}
******************************************
Bu robotu piyasa fiyatından değilde Aktif fiyattan emir göndermesi için hangi değişiklikleri yapmam gerekiyor.
Arkadaşlar hisse senedinde kullanılmak üzere robota ihtiyacım var. Forumda olan robotların tamamı neredeyse piyasa fiyatlı emir gönderiyor. Benim aktif fiyatlı emir gönderecek bir robot gerekiyor sebebinide yazayım.
Portföy : 50,000 tl
Hisse satış fiyatı 10.05
Alınabilir Hisse adedi 4975 lot
Robota alacagı lot : 4500
Sinyal gelince sonuç: Portföyünüzdeki miktar yetersizdir.
Nedeni : Robot piyasa fiyatlı emir gönderdigi için maliyeti hissenin tavan fiyatından hesaplamaktadır. O yüzden böyle bir uyarı vermektedir. Aracı kurumundan kaynaklanan bir sebebtir.
İstediğim şudur: Hisse alırken son fiyata göre hesaplama yapsın . Fakat yine piyasa emri gibi kesin gerçekleşecek bir emiir türü olsun. Satarken yine piyasa fiyatıyla satabilsin.
Çözüm olarak şunu düşündüm: Alış yaparken son fiyat+5 gibi üst kademelere emri göndersin bu şekilde de o andaki en iyi piyasadaki fiyattan emir gerçekleşir diye düşünüyorum.
Sezai beye mail attım talebimi ilettim. O da limit emir şeklinde gönderebilirsin , aktif fiyat diye bir şey yok dedi. Halbuki biz matrikste robotu kurarken Aktif , Aktif +1 , Aktif +2 gibi emir türlerini seçerek kurardık. İdealde bu formülle yapılabilir diye düşünüyorum.
Forumdaki nerdeyse bütün robotları denedim, sanal emir gönderdim hiç birisi gerçekleşmedi. Nerede hata oldugunuda bir türlü bulamadım. Bir tanesi gerçekleşti oda döngüye girdi. 3 adet emir gönderim korumasıyla robotu durdurdu .
Sayın netkit dediginiz şeyide yapmaya çalıştım fakat beceremedim.
-
https://www.borsaistanbul.com/urunle...i/emir-tipleri
https://idealdata.com.tr/parametreler-fonksiyonu/
Sistem.EmirFiyatTipi = "PYS"; // PYS, LMT, EIF, KAP
Sistem.EmirFiyati = "Aktif"; // aktif fiyat
Fiyat Tipi LMT yapıp EmirFiyati Aktif yaptığınızda olması gerekir.
Gönderi Kuralları
- Yeni konu açamazsınız
- Konulara cevap yazamazsınız
- Yazılara ek gönderemezsiniz
- Yazılarınızı değiştiremezsiniz
-
Forum Rules
Yer İmleri