Aslında bar kısıtlaması ne kadar kotu degilmi? Yada periyod.
Ben arkadaşa şunu tavsiye ederim.
Tiberyus üstad da yazmıştı.
Akımı takip et. Yeşillikler orada.
Printable View
Şimdi buradaki olayımız şudur.
Size lazım öbürüne lazım, banada lazım, onada lazım,
Birisi bunların hepsini bir araya toplayıp bir şablon yapamaz mı?
Bu 3. yazışım buraya 20.de olsa yazacağım.
Tamam bu kısmı aldınız diyelim.
Başkası bu kısmı robotun neresine yazacak?
Yok mu bir istanbul delikanlısı eski tabirle 1960 lardan gelen istanbul beyefendileri vardı.
Bir robotta olabilecek koşullları yazıp da umumi olarak paylaşabilecek?
Yoksa herkes benim gibi alıcı kısmında mı??
Biraz tikkatttt li bir insan
anonim üstadı twitterda bulur.
İstanbulda tanışamadık((
merhaba arkadaşlar idealde bu formülü nasıl yazabiliriz?
C>Mov(H,20,E) AND RSI(C,10)>55 AND RSI(C,10)>Mov(RSI(C,10),10,S)
[IMG]https://i.hizliresim.com/00XDqD.png[/IMG]
İDEAL ekibine teşekkür ediyorum.........
Birde şu grafiklerde kullandığımız teknik kısıma bir el atsalar 10 numara olacak..
[IMG]https://i.hizliresim.com/od57go.png[/IMG]
sitemimde barın kapanmadan işleme girmesini nasıl yazarım ortalama kesişme canlı robot denedim sanalda kesişmede 5 6 sinyal geldi
Ichmoku İndikatörünün acık kodunu yazacak bir arkadaş var mı... Şimdiden teşekkürler..
http://www.directfn.com.tr/sistemler/
burada var indirebilirsiniz
Matriks tarafında yeni meşhur olan, herkesinde bayagı övdüğü bir indikatör olan TD Sequential indikatörü idealde varmı. Yok iste sayın ideal yetkililerinden Sistem bölümünde fonksiyon olarak görmek isteriz.
TD Sequential dökümanını sezai beye gönderdim bakıcam dedi bende bekliyorum
Merhaba,
İdeal'in özellikle robotların iyi çalışması için sistem gereksinimleri nedir ? i7 işlemci, SSD , Ram ?
int tenkansen = 9;
int kijunsen = 26;
int chikouspan = 26;
int senkouspan = 52;
int shift = 26;
var bars = Sistem.GrafikVerileri;
var ListeTENKANSEN = Sistem.Liste(0);
var ListeKIJUNSEN = Sistem.Liste(0);
var ListeCHIKOUSPAN = Sistem.Liste(0);
var ListeSENKOUSPANA = Sistem.Liste(0);
var ListeSENKOUSPANB = Sistem.Liste(0);
// TENKAN SEN
for (int i = tenkansen; i < bars.Count; i++)
{
var hhv = bars[i].High;
var llv = bars[i].Low;
for (int j = 1; j < tenkansen; j++)
{
int pos = i + j - tenkansen;
hhv = Math.Max(hhv, bars[pos].High);
llv = Math.Min(llv, bars[pos].Low);
}
ListeTENKANSEN[i] = (hhv + llv) / 2;
}
// KIJUN SEN
for (int i = kijunsen; i < bars.Count; i++)
{
var hhv = bars[i].High;
var llv = bars[i].Low;
for (int j = 1; j < kijunsen; j++)
{
int pos = i + j - kijunsen;
hhv = Math.Max(hhv, bars[pos].High);
llv = Math.Min(llv, bars[pos].Low);
}
ListeKIJUNSEN[i] = (hhv + llv) / 2;
}
// CHIKOU SPAN
for (int i = chikouspan; i < bars.Count; i++)
{
ListeCHIKOUSPAN[i-chikouspan+1] = bars[i].Close;
}
for (int i = bars.Count-chikouspan+1; i < bars.Count; i++)
{
ListeCHIKOUSPAN[i] = bars[bars.Count-1].Close;
}
// SENKOU SPAN A
for (int i = shift; i < bars.Count - shift; i++)
{
ListeSENKOUSPANA[i+shift] = (ListeTENKANSEN[i] + ListeKIJUNSEN[i]) / 2;
}
// SENKOU SPAN B
for (int i = senkouspan; i < bars.Count; i++)
{
var hhv = bars[i].High;
var llv = bars[i].Low;
for (int j = 1; j < senkouspan; j++)
{
int pos = i + j - senkouspan;
hhv = Math.Max(hhv, bars[pos].High);
llv = Math.Min(llv, bars[pos].Low);
}
ListeSENKOUSPANB[i] = (hhv + llv) / 2;
}
ListeSENKOUSPANB = Sistem.Ref(ListeSENKOUSPANB, -shift);
Sistem.Cizgiler[0].Deger = ListeTENKANSEN;
Sistem.Cizgiler[0].Aciklama = "TENKAN SEN";
Sistem.Cizgiler[1].Deger = ListeKIJUNSEN;
Sistem.Cizgiler[1].Aciklama = "KIJUN SEN";
Sistem.Cizgiler[2].Deger = ListeCHIKOUSPAN;
Sistem.Cizgiler[2].Aciklama = "CHIKOU SPAN";
Sistem.Cizgiler[3].Deger = ListeSENKOUSPANA;
Sistem.Cizgiler[3].Aciklama = "SENKOU SPAN A";
Sistem.Cizgiler[4].Deger = ListeSENKOUSPANB;
Sistem.Cizgiler[4].Aciklama = "SENKOU SPAN B";
// bölge renklendirme
var Renk1 = Sistem.Renk(100,255,0,0);
var Renk2 = Sistem.Renk(100,0,255,0);
Sistem.DolguEkle(3,4,Renk1,Renk2);
[QUOTE=sercanfx;3901019]Merhaba, yorumu olan var mı ? :)
[/Sistem Gereksinimleri Nelerdir?
iDeal programını kurabilmek ve çalıştırabilmek için aşağıdaki koşulların sağlanması gerekmektedir;
• Microsoft Windows Işletim Sistemi (En az Windows7)
• Microsoft .NET Framework 4.5
• En az 4GB RAM
• En az 20 GB Sabit Disk alanı
• 443 numaralı TCP port üzerinden internete erişim izni
• Robot Modülü kullanarak otomatik emir iletimi yapacak kullanıcıların, en az 4 çekirdekli işlemciye sahip bir bilgisayar kullanması tavsiye edilir.
İdealda CDS (Türkiye Kredi Risk Swapı ) verilerini görebilir muyuz?
Arkadaşlar merhabalar, tüm sistemlerimde ve robotlarımda kullanmak üzere; robotun çok fazla işlem yapmasına güvenlik araçlı bir kod arıyorum.Yani mesela idealde saniyede 3 işlem diyor ama saniyede 3 işlem yapıyor ve sonra durup devam ediyor.dakikada yine yüzlerce işlem yapmış oluyor.Bunun için kullandığınız bir güvenlik önlemi var mıdır mesela dakikada 10 işlem yaparsa tüm robotları durdur gibi veya portföyüm yüzde şu kadar kayba ulaştığında tüm robotları durdur gibi yardımcı olabilirseniz sevinirim.Teşekkürler.
Arsivden notlarim arasina aldigim ustadlarin ornek olabilecek bazi kodlari:
Alıntı Originally Posted by Bear_Bull
sn Tiberus
return Sistem;
komutu o komuta geldiğinde yazılı olan alttaki komutları pas geçerek sistemi en baştan mı başlatır ?
1
2
3
4 return Sistem; /// 5-6-7-satırları pas geç 1 e dön
5
6
7
doğru mudur? teşekkürler.
pratikteki etkisi öyle oluyor üstad ama gerçekte;
return olduğu yerde kod sonlandırılır sonraki satırlar işlenmez.
100 milisaniye sonra tekrar çalışınca ilk satırdan başlar.
Alıntı Originally Posted by Tiberius Yazıyı Oku
test etmek lazım
PHP Code:
// robot aynı gün sadece 3 kere çalışsın
var DefaKontrol = Sistem.SayiTablosunuOku("DEFA KONTROL, " + Sistem.Name + " , " + DateTime.Now.ToString("yyyyMMdd"));
DefaKontrol++;
Sistem.SayiTablosunuGuncelle("DEFA KONTROL, " + Sistem.Name + " , " + DateTime.Now.ToString("yyyyMMdd"), DefaKontrol);
if (DefaKontrol > 3) return Sistem;
// 1 dakikadan önce yeni emir gönderme
var SureKontrol = Sistem.SayiTablosunuOku("SURE KONTROL, " + Sistem.Name + " , " + DateTime.Now.ToString("yyyyMMdd"));
var SaatDakika = DateTime.Now.Hour * 24 + DateTime.Now.Minute;
if (SureKontrol == 0 || SaatDakika >= SureKontrol + 1)
Sistem.SayiTablosunuGuncelle("SURE KONTROL, " + Sistem.Name + " , " + DateTime.Now.ToString("yyyyMMdd"), SaatDakika);
else
return Sistem;
aşağıdaki örnek bir günde 3 defa emir gönderdikten sonra başka emir göndermez.
kod çalışır ama emir gönderimi olmaz.
test etmedim, sanalda test edin.
PHP Code:
var Anahtar = Sistem.Name + " ; " + DateTime.Today.ToString("yyyyMMdd");
var EmirSayisi = Sistem.SayiTablosunuOku(Anahtar);
if (EmirSayisi < 3)
{
var Islem = Sistem.RobotViopAktif("SISTEM", "VIP'VIP-X030" , Sistem.AktifViopKontrat, "5", 2);
if (Islem != "")
{
EmirSayisi++;
Sistem.SayiTablosunuGuncelle(Anahtar, EmirSayisi);
}
}
Selamlar herkese kolay gelsin, ben henüz idealgo kullanmıyorum onun için optimizasyonu kodlarla yapmaya çalışıyorum. Sistemlerde zaten birkaç tane örnek de var. Onlardan yararlanıp birşeyler yapmaya çalıştım fakat sistem performansındaki en güzel değerler ile en optimize edilmiş değerler birbirini tutmuyor. Hatta ordaki örnek kodda dahi değerler farklı çıkıyor. Kod karışık değil gibi açıkçası ama neyi kaçırdığımı bir türlü çözemedim. Yardımcı olabilecek arkadaşlar var mı acaba? :)
Arkadaşlar, Metastock'taki ValueWhen komutunu iDeal'de nasıl yapabiliriz?
Örneğin şu komutu iDeal'e nasıl uyarlayabiliriz?
Komut : ValueWhen(1.,CROSS(C,MOV(C,5,E)),H
(Kapanış fiyatı 5 barın kapanışı sonucu oluşan hareketli ortalamanın altında kalırsa değer olarak o anki değeri verir.)
Teşekkürler.
21.04.2016,12:48,6.883,6.883,6.883,6.883,175,1203
üste örnek akbank hissesinin 1 dk tarihsel datasına ait bir satır var. Bu datayı noktalı ve küsürat kısmını 3 basamak olarak kaydetmişler. Bunu ben kendi ideal datalarıma eklemeye çalıştıgımda datayı kabul etmiyor. Sanırım 3 basamak oldugundan kabul etmiyor. Noktalı data olacak şekilde pc ayarlı.
Şimdi ben pc ye bir ayar yaparak dataları 3 basamak olacak şekilde üsteki dataları okutayım sonra , 3 basamaklı dataları 2 basamaklı datalara çevirebilirmiyim.
Noktalı datayı nasıl ayarlıyorsunuz.
1 dklıkda Dosyaya veri yazdır dediğimde bende bu şekilde çıkıyor.
IMKBH'AKBNK,201911221759,7,79,7,80,7,78,7,80,20077 6,1564115,1
Ben şimdi virgüllü data mı kullanmış oluyorum.
virgülden sonraki 3 haneli data çalışmalarınızda sağlıklı olurmu. Sonuçta Bölünme, Temmettü eklenmiş datalar olacak gerçek K/Z yi nasıl hesaplıcaksınız. İndikatörlerde de oynaklık yapacak muhtemelen.
2 haneliye çevireyim derseniz. Data Dosyasını yükleyin Excel de çevirmeye çalışırım.
Aslında sorunun cevabını Bear-Bull 1 üstte vermiş.
var AKBNK = Sistem.SembolTanimla("DFN'AKBNKA", 3); // 3 basamaklı AKBNKA isimli sembol oluştur.
formül kaydederek Test et yapın. AKBNKA isimli sembol oluşacak. Daha sonra grafiğini açın yüklemek istediğiniz periyotu seçin. Dosyadan veri yükle >> Metatrader Text formatı. Örnekteki datalarınız Metatrader formatında ise yüklenmesi lazım.
Herkese güzel bir haftasonu geçirmek dileğiyle iki şey sormak istiyorum da birisi mesa adaptive moving average koduna ihtiyacım var arşivleri biraz karıştrdım bulamadım. Elinde olan veya yazabilecek bi babayiğit var mı acaba :D?
Bir de yazmaya çalıştığım sistemde flat yönünü bir türlü sisteme atayamadım mı diyeyim tanıtamadım mı diyeyim. Flat olması gereken yerden itibaren her bardan sonra flat sinyali çıkıyor taa ki yeni ala veya yeni açığa sata kadar... Nasıl çözülür acaba?
// İşlem yapılacak sembol
var Sembol = "IMKBH'THYAO";
//İlk alım işlemi yapılacak lot sayısı
var Lot1 = 2000;
//Her işlemde biriktirilecek lot sayısı
var Lot2 = 1000;
//Toplam biriktirilen lot sayısı
var Lot3 = 0;
//Toplam biriktirilen lot maliyeti
var Maliyet = 1;
var V = Sistem.GrafikVerileriniOku(Sembol, "G");
var Stop = Sistem.Liste(V.Count, 0);
var Dusuk = Sistem.Liste(V.Count, 0);
var Poz1 = Sistem.PozisyonKontrolOku("A1");
if (*******)
{
if (Poz1 == 0)
{
Sistem.ZamanKontrolGuncelle("IMKBH'THYAO");
Sistem.PozisyonKontrolGuncelle("A1", Lot1);
Sistem.EmirHesapAdi = *******; //Bu komut dizini emir yolluyor
Sistem.EmirSembol = "IMKBH'THYAO";
Sistem.EmirIslem = "Alış";
Sistem.EmirMiktari = Lot1;
Sistem.EmirSuresi = "KIE";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirGonder();
}
}
if (*******)
{
if (Poz1 == Lot1)
{
Sistem.ZamanKontrolGuncelle("IMKBH'THYAO");
Sistem.PozisyonKontrolGuncelle("A1", Lot2);
Sistem.EmirHesapAdi = ********; //Bu komut dizini emir yolluyor
Sistem.EmirSembol = "IMKBH'THYAO";
Sistem.EmirIslem = "Satis";
Sistem.EmirMiktari = Lot1-Lot2;
Sistem.EmirSuresi = "KIE";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirGonder();
}
}
for (int i = 1; i < V.Count; i++)
{
{
Dusuk[i] = V[i].Low;
}
if (*******)
{
Stop[i] = ********; //Bu for döngüsü içerisinde "Stop" ve "Dusuk" isimli listeleri oluşturdum
} //Bu listeleri indikatör olarak çizdirdiğimde herhangi bir sorun yok çzdirebiliyorum
else
{
Stop[i] = *******;
}
}
if (Stop >= Dusuk) //Bu komutta sıkıntı yaşıyorum :(
{ //Stop listesinin değeri Dusuk listesinden büyük olmasına rağmen emir yollamıyor
if (Poz1 == Lot2)
{
Sistem.ZamanKontrolGuncelle("IMKBH'THYAO");
Sistem.PozisyonKontrolGuncelle("A1", 0);
Sistem.EmirHesapAdi = *******;
Sistem.EmirSembol = "IMKBH'THYAO";
Sistem.EmirIslem = "Satis";
Sistem.EmirMiktari = Lot2;
Sistem.EmirSuresi = "KIE";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirGonder();
}
}
Sizce nerede hata yapıyorum?
kolay gelsin kurumlar dosyasında bozuk görünüyorda kurumlar dosyasını atacak olan var mı config klasöründeki