Bir pc nin içinde 2 ayrı ideali aynı anda çalıştırmanın yöntemi varmıdır, yada böyle bir şey mümkünmü.
Bir ideali C ye , diğer ideali D ye kurdum birisi çalışırken diğeri program çalışıyor uyarısı verdiginden çalışmadı.
Printable View
Bir pc nin içinde 2 ayrı ideali aynı anda çalıştırmanın yöntemi varmıdır, yada böyle bir şey mümkünmü.
Bir ideali C ye , diğer ideali D ye kurdum birisi çalışırken diğeri program çalışıyor uyarısı verdiginden çalışmadı.
Merhaba,
ideAlgo da robotlarda pozisyona giriş emrini bar kapandıktan sonra gönderebiliyorum. Sadece "stop" u canlı barda yapabiliyorum. Alış ya da satış yönünde pozisyona da canlı bar içerisinde girecek şekilde emir gönderilebiliyor mu?
Saygılarımla,
Celal Can
iDealAlgo
@Algoyardim
·
57d
Akşam seansında robot kullanmak isteyen kullanıcılarımız;
mevcut robot kodlarındaki emir satır bölümü içerisine Sistem.EmirAksamSeansi = 1; komutunu ekleyerek akşam emir gönderebilir.
Tek satır robot kodu için ise Sistem.RobotViopTumGun komutu kullanılabilir.(ver8.06) #ideal
Yaptıgım işlemi yazayım. 2019 Eylül ayından beri çalışan ideal abonesiyim. C/İdeal/Chartdata klasörünü zipledim arşivime ekledim. Hisse senetlerinde 5 dk grafikte 13 aylık data birikmiş (25000-30000 bar). Aylar ilerledikçe Chartdata klasörünü sürekli arşivleyip eski arşivlediğimi silecegim. Bu şekilde ay ay datalar birikecek biraz uzun zaman alacak. Tabi bu süreçte ideal her zaman açık, canlı veri alıyor olması lazım. Pc de yada idealde bir sıkıntımı oldu mu, tekrar kurma ihtiyacımı oldu mu, bu arşivlediğim chardata klasörünü kullanacagım.
Bearbull bunu daha profesyonel olarak yapıyor üste tarif etmiş. Beni biraz aşıyor.
https://resmim.net/f/3CcFyP.jpg
Böyle kutucuk çıkıyor,
Acil yardım edebilecek var mı?
Tesekkurler bear_bull ustad. Ben de bu sorunu arsivden buldugum biraz daha zahmetli bir yontemle asmaya calisiyordum.
"İDEAL Versiyon Güncelle >> http://www.directfn.com.tr/terminal/ideal.exe
Farklı Kaydet
c:\ideal
üzerine yaz. yes"
Bu arada 8.08 yayina girmis, 8.07 den itibaren bar replay ozelligi eklenmis:
iDeal grafiklerinde "Replay" özelliği ile, barları istediğiniz tarihten itibaren, istediğiniz hızda oynatma imkanı geldi. (v8.07
https://twitter.com/Algoyardim/statu...317614082?s=20
Merhabalar; 5 dakika ve altındaki periyotlarda stabil çalışmıyor program. Geç tepki veriyor, neden olabilir? Bilgisi olan var mı?
Yazdıklarım ve çizdiklerin eğitim amaçlı çalışmalardır. Yatırım tavsiyesi olarak algılanmasın
[IMG]https://i.hizliresim.com/7BO2gL.png[/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.
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
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.
Biraz araştırınca rastladım. Bear_Bull hocanın şu formülü işinizi görür.
https://www.hisse.net/topluluk/showt...=615&p=1576256
5 kademe ise (adım*5)
Arkadaslar selam,
daha önce bu konuşuldu mu bilmiyorum ama bilen arkadaşlar varsa yardım isteyecektim.
aynı veri terminali üzerinden 2 ayrı hesaptan farklı robotlarla emir gönderimi nasıl oluyor? formülü var mıdır
var Islem = Sistem.RobotViopAktif("TRENDSCORE_01", "VIP'VIP-X030" , Sistem.AktifViopKontrat, "1", 4)
Arkadaşlar bu kodu
var Islem = Sistem.RobotViopTumGun("TRENDSCORE_01", "VIP'VIP-X030-T" , Sistem.AktifViopKontrat, "1", 4)
Olarak değiştiriyorum
Sanalda çalışıyor , gerçektede emir gönderdiğinde fiyat aralığı geçersiz diye mesaj çıkıyor.
Emiri iletiyor ama gerçekleşmiyor.
Viop tüm günde çalışması için nasıl bir yol izlemeliyiz?
Yardımcı olabilecek birileri varmıdır?
Teşekkürler.
Teşekkürler Bear_Bull. Her zamanki gibi yetiştin.
Hazır robot emirlerinde de "Sistem.RobotViopTumGun" bu işlemin önüne koşul koyarakta yapablir miyim?
yani aracı kurum ve hesap şuysa hazır robotu çalıştır. Emir bloğu içinde olmuyor o zaman ama yine de sorayım istedim.
Saygılar sevgiler...
Akşam seansı da dahil tüm gün, tek satır kodla işlem yapabilen var mı?
Tek satır robot kodu, bir türlü beceremedim.
var Islem = Sistem.RobotViopTumGun("TRENDSCORE_01", "VIP'VIP-X030-T" , Sistem.AktifViopKontrat, "1", 4)
Bu şekilde yaptım çalışmadı,
Sanırım tek satır robot koduyla olmuyor, akşam seansında emir göndermiyor,daha doğrusu gönderiyor da akşam seansı olduğundan emir fiyat aralığı geçersiz diyor.
Ya komple uzun kod yazılacak ya da ideal demene yapıp bu işe el atması gerekecek,
Cevabınız için teşekkür ederim.
sanalda şu alttaki örneği denermisin ?
dikkat sanalda 1-2 gün denemeden gerçek çalıştırmayın.
PHP Code:
string SistemAdi = "TRENDSCORE_01";
string kontrat = Sistem.AktifViopKontrat;
string SysDakika = "5";
var LotSize = 1;
var MySistem = Sistem.SistemGetir(SistemAdi , kontrat , SysDakika ); //Sisteminizin adı, grafik sembolünüz, periyot
if (MySistem == null)
{
Sistem.Mesaj("Sistem Dosyası Okunamadı !");
}
else
{
var EmirSembol = Sistem.AktifViopKontrat;
var Pozisyon = Sistem.PozisyonKontrolOku(Sistem.Name + " , " + EmirSembol);
var SonYon = "";
for (int i = 0; i < MySistem.Yon.Count; i++)
{
if (MySistem.Yon[i] != "")
SonYon = MySistem.Yon[i];
}
// Emir Miktarını Hesapla
var Miktar = 0.0;
if (Sistem.Saat.CompareTo("09:30:00") >= 0 && Sistem.Saat.CompareTo("22:59:58") <= 0) // Seans Başlamadı işlem yapma
{
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 = "";
var Fiyat = 0;
if (Miktar > 0) { Islem = "ALIS"; Fiyat = Sistem.SatisFiyat(EmirSembol);}
if (Miktar < 0) { Islem = "SATIS";Fiyat = Sistem.AlisFiyat(EmirSembol);}
if (Islem != "")
{
Sistem.PozisyonKontrolGuncelle(Sistem.Name + " , " + EmirSembol, Miktar + Pozisyon);
Sistem.EmirSembol = EmirSembol;
Sistem.EmirIslem = Islem;
Sistem.EmirMiktari = Math.Abs(Miktar);
///////////// akşam seansı tanımlama ////////////
if (Sistem.Saat.CompareTo("19:00:00") >= 0 ) {Sistem.EmirSuresi = "GUN"; Sistem.EmirAksamSeansi = 1;} else { Sistem.EmirSuresi = "GUN";}
///////////// akşam seansı tanımlama ////////////
Sistem.EmirTipi = "Limitli"; // KPY, KIE, GIE, SAR
Sistem.EmirFiyati = Fiyat ;
Sistem.EmirGonder();
}
}
İyi akşamlar arkadaşlar. Bu akşam gün sonu dağılımını açamadım. Diğerleri açılıyor. Neden olabilir acaba bileğisi olan var mı?
Tapatalk kullanarak iPhone aracılığıyla gönderildi
Sistem çalışmıyor,
Sanalda çalıştırdığımda pozisyon kontrol bölümüne 0 kontrat olarak açıyor ama herhangi bir işlem yapmıyor,
0 kontrat kalıyor, acaba ilk sinyalimi bekliyor anlamadım, hiçbir tepki yok.
Akşam seansında kullandığım için henüz bir sinyal gelmedi,
Eğer ki ilk sinyali beklemiyorsa;
Benim tahminim alış satış bölümünde flata geç bölümü sürekli flat olarak bırakıyor olabilir,
Yada saat bölümde bir yanlışlık olabilir diye düşündüm.
Yani sisteme bağlandığında pozisyon kontrol bölümüne 0 yazıyor ama lot gönderim yapmıyor.
https://i.hizliresim.com/6MYl27.png
https://i.hizliresim.com/8Xm9gQ.png
https://i.hizliresim.com/GGbpY6.png
test edildi onaylandı
gece çalışan, limit fiyat emir gönderen robot.
PHP Code:
string SistemAdi = "*********Sisteminizin Adı *********";
string kontrat = Sistem.AktifViopKontrat;
string SysDakika = "5";
var LotSize = 1;
var MySistem = Sistem.SistemGetir(SistemAdi , kontrat , SysDakika ); //Sisteminizin adı, grafik sembolünüz, periyot
if (MySistem == null)
{
Sistem.Mesaj("Sistem Dosyası Okunamadı !");
}
else
{
var EmirSembol = Sistem.AktifViopKontrat;
var Pozisyon = Sistem.PozisyonKontrolOku(Sistem.Name + " , " + EmirSembol);
var SonYon = "";
for (int i = 0; i < MySistem.Yon.Count; i++)
{
if (MySistem.Yon[i] != "")
SonYon = MySistem.Yon[i];
}
// Emir Miktarını Hesapla
var Miktar = 0.0;
if (Sistem.Saat.CompareTo("09:30:00") >= 0 && Sistem.Saat.CompareTo("22:59:58") <= 0) // Seans Başlamadı işlem yapma //
{
// 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 = ""; var Fiyat = 0;
if (Miktar > 0) Islem = "ALIS"; // Fiyat = Sistem.SonFiyat(EmirSembol);}
else
if (Miktar < 0) Islem = "SATIS"; //Fiyat = Sistem.SonFiyat(EmirSembol);}
if (Islem != "")
{
Sistem.PozisyonKontrolGuncelle(Sistem.Name + " , " + EmirSembol, Miktar + Pozisyon);
Sistem.EmirSembol = EmirSembol;
Sistem.EmirIslem = Islem;
Sistem.EmirMiktari = Math.Abs(Miktar);
///////////// akşam seansı tanımlama ////////////
if (Sistem.Saat.CompareTo("19:00:00") >= 0 ) {Sistem.EmirSuresi = "GUN"; Sistem.EmirAksamSeansi = 1;} else { Sistem.EmirSuresi = "GUN";}
///////////// akşam seansı tanımlama ////////////
Sistem.EmirTipi = "Limitli";
Sistem.EmirFiyati = (Islem == "ALIS") ? Sistem.SatisFiyat(EmirSembol) : Sistem.AlisFiyat(EmirSembol) ;
Sistem.EmirGonder();
}
}
https://resmim.net/f/QgJ3Sv.jpg
Üstat bende niye emir fiyat adımı geçersiz çıkıyor ki nerde hata yapıyorum bulamadım, sanalda falan gayet güzel çalışıyor, gerçekte de emir gönderiyor ama viop kabul etmiyor.
Teşekkürler.