Grafikte sağ klik yap.
"Veri" üzerine gel "dosyaya veri yazdır" a tıkla.
Printable View
İlk kez resim yüklüyorum, cevirememis olabilirim. 1 dakikalık 87-88 aylık getiri egrisi, nasıl sizce?
Darvas box formülünü Sezai KILIÇ Hocam çevirmiş.Kendisine çok teşekkür ediyorum.İhtiyacı olan faydalansın.
var LOW = Sistem.GrafikFiyatSec("Dusuk");
var HIGH = Sistem.GrafikFiyatSec("Yuksek");
var boxp = 5;
var LLV = Sistem.LLV(boxp, LOW);
var HHV = Sistem.HHV(boxp, HIGH);
var HHV3 = Sistem.HHV(boxp-2, HIGH);
var HHV4 = Sistem.HHV(boxp-1, HIGH);
var LowL = Sistem.Liste(0);
var NewH = Sistem.Liste(0);
var box1 = Sistem.Liste(0);
var box2 = Sistem.Liste(0);
var box3 = Sistem.Liste(0);
var bsince=0;
for (int i=5; i< Sistem.BarSayisi; i++)
{
if (LOW[i] == LLV[i])
LowL[i] = LOW[i];
if (LOW[i-1] == LLV[i])
LowL[i] = LOW[i-1];
if(LOW[i-2] == LLV[i])
LowL[i] = LOW[i-2];
if(LOW[i-3] == LLV[i])
LowL[i] = LOW[i-3];
if(LOW[i-4] == LLV[i])
LowL[i] = LOW[i-4];
else
LowL[i] = LLV[i];
if (HIGH[i] > HHV[i-1])
NewH[i] = HIGH[i];
else
NewH[i] = NewH[i-1];
if(HHV3[i] < HHV4[i])
box1[i] = 1;
else
box1[i] = -1;
if (HIGH[i] > HHV[i-1] && box1[i] == -1)
bsince = i;
if (i-bsince == 3)
{
bsince = 0;
box2[i]= NewH[i];
box3[i]= LowL[i];
}
else
{
box2[i] = box2[i-1];
box3[i] = box3[i-1];
}
}
Sistem.Cizgiler[0].Deger = box2;
Sistem.Cizgiler[1].Deger = box3;
İyi akşamlar ;
Her günün ilk barının numarasını alan bir kod paylaşabilecek var mı acaba? Örneğin beş dakikalık periyotta her gün ilk kapanan bar no sunu tutmak istiyorum.Nasıl bir kod yazmalıyım teşekkürler.
Selamlar.
İdeal sistem kütüphanesinde bu konuda verilmiş örnekler var.
Mesela aşağıdaki örnek işinizi görür.
Koşuldan sonra, parantez içindeki bölümde, anlık bar numarasını bir değişkene atama yaparak istediğiniz fonksiyonu elde edebilirsiniz.
PHP Code:
var saat = Sistem.Saat;
if (saat.CompareTo("10:00:00") == 0)
{
//YAPILMASI İSTENEN İŞLEMLER
}
Daha fazlası da şurada:
http://www.directfn.com.tr/idealsistem/
\\İdeal Sistem Fonksiyonlar
\\Tarih ve Saat Fonksiyonu
Yok hocam bu şekilde yapınca backtest' e katkısı maalesef olmuyor. Anlık saati tutuyor.
Kod:var LOW = Sistem.GrafikFiyatSec("Dusuk");
var HIGH = Sistem.GrafikFiyatSec("Yuksek");
var boxp = 5;
var LLV = Sistem.LLV(boxp, LOW);
var HHV = Sistem.HHV(boxp, HIGH);
var HHV3 = Sistem.HHV(boxp-2, HIGH);
var HHV4 = Sistem.HHV(boxp-1, HIGH);
var LowL = Sistem.Liste(0);
var NewH = Sistem.Liste(0);
var box1 = Sistem.Liste(0);
var box2 = Sistem.Liste(0);
var box3 = Sistem.Liste(0);
var bt15 = Sistem.Liste(0);
var bt25 = Sistem.Liste(0);
var bsince = 0 ;
for (int i=5; i< Sistem.BarSayisi; i++)
{
if (LOW [i] == LLV[i]) LowL[i] = LOW[i] ;
if (LOW[i-1] == LLV[i]) LowL[i] = LOW[i-1] ;
if (LOW[i-2] == LLV[i]) LowL[i] = LOW[i-2] ;
if (LOW[i-3] == LLV[i]) LowL[i] = LOW[i-3] ;
if (LOW[i-4] == LLV[i]) LowL[i] = LOW[i-4] ;
else LowL[i] = LLV[i]; //LowL:=If(L=LLV(L,5),L,
//If(Ref(L,-1)=LLV(L,5),Ref(L,-1),
//If(Ref(L,-2)=LLV(L,5),Ref(L,-2),
//If(Ref(L,-3)=LLV(L,5),Ref(L,-3),
//If(Ref(L,-4)=LLV(L,5),Ref(L,-4), 0)))));
if ( HIGH[i] > HHV[i-1] ) NewH[i] = HIGH[i];
else NewH[i] = NewH[i-1]; //NewH:=ValueWhen(1,H>Ref(HHV (H,5),-1),H);
if( HHV3[i] < HHV4[i] ) box1[i] = 1;
else box1[i] = -1; //box1:=HHV(H,3)<HHV(H,4);
if ( HIGH[i] > HHV[i-1] && box1[i] == -1 ) bsince = i ;
if ( i-bsince == 3 )
{
bsince = 0 ;
box2 [i] = NewH[i] ;
box3 [i] = LowL[i] ;
}
else
{
box2 [i] = box2 [i-1] ; //box2:=ValueWhen(1,BarsSince(H>Ref(HHV(H,5),-1))=3 AND box1=true,NewH);
box3 [i] = box3 [i-1] ; //box3:=ValueWhen(1,BarsSince(H>Ref(HHV(H,5),-1))=3 AND box1=true,LowL);
}
bt15 [i] = box3[i] - ( box3[i] * 1.5f ) /100 ; //BottomBox-(BottomBox*1.5)/100;
bt25 [i] = box3[i] - ( box3[i] * 2.5f ) /100 ; //BottomBox-(BottomBox*2.5)/100
}
Sistem.Cizgiler[0].Deger = box2 ;
Sistem.Cizgiler[0].Aciklama = "TopBox";
Sistem.Cizgiler[1].Deger = box3 ;
Sistem.Cizgiler[1].Aciklama = "BottomBox";
Sistem.Cizgiler[2].Deger = bt15 ;
Sistem.Cizgiler[2].Aciklama = "1.5f-";
Sistem.Cizgiler[3].Deger = bt25 ;
Sistem.Cizgiler[3].Aciklama = "2.5f-";
////
Ek 26229
kolay gelsin tiberius üstadın paylaşmış olduğu sistemi nasıl yazabilirim? yardımcı olabilir msiniz
PHP Code:
var V = Sistem.GrafikVerileri ;
var C = Sistem.GrafikFiyatOku(V, "Kapanis" ) ;
var MA = Sistem.MA3(C, "Exp", 100);
var MA2 = Sistem.MA3(MA, "Exp", 10);
var TOMA = Sistem.TOMA(3,2) ;
var SonYon = "";
var Sinyal = "";
double SonFiyat = 0.0;
for (int i = 100; i < V.Count; i++)
{
// Strateji
if (MA[i] > TOMA[i] && MA[i] > MA2[i]) Sinyal = "A";
if (MA[i] < TOMA[i] && MA[i] < MA2[i]) Sinyal = "S";
if (SonYon=="A" && C[i] > SonFiyat * 1.002 && MA[i-1] > TOMA[i-1] && MA[i] < TOMA[i]) Sinyal = "F";
if (SonYon=="S" && C[i] < SonFiyat * 0.998 && MA[i-1] < TOMA[i-1] && MA[i] > TOMA[i]) Sinyal = "F";
if (SonYon=="A" && C[i] < SonFiyat * 0.994) Sinyal = "F";
if (SonYon=="S" && C[i] > SonFiyat * 1.006) Sinyal = "F";
// Yön Kalıbı
if (Sinyal == "A" && SonYon != "A" )
{
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
SonFiyat = V[i].Close;
}
if (Sinyal == "S" && SonYon != "S" )
{
Sistem.Yon[i] = "S";
SonYon = Sistem.Yon[i];
SonFiyat = V[i].Close;
}
if (Sinyal == "F" && SonYon != "F")
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
SonFiyat = V[i].Close;
}
}
Sistem.GetiriHesapla("01/07/2010", 0.0);
Sistem.Cizgiler[0].Deger =TOMA;
Sistem.Cizgiler[1].Deger =MA;
Sistem.Cizgiler[3].Deger =MA2;
Sistem.Cizgiler[2].Deger =Sistem.GetiriKZ;
tiberius hocanınkine hiç benzemedi :(
Selamlar ben idelgoyu yeni aldım ve 3 gündür mevcut stratejileri optimize etmeye çalışarak geçiriyorum elimde sadece 19 aylık viop 30 verisi var ancak bu veriyle 19 ayda %14 getiriyi geçecek bir optimizasyon yapamadım sizce bir yerde yanlış mı yapıyorum ?
ve viop 30 un daha eski verilerine nasıl ulaşabilirim ideala mail attım ancak bir dönüş yapan olmadı
teşekkürler
Merhabalar.Elimdeki bu kodu ideal sorgu sistemine çevirebilirmisiniz?
BAR:=144;
Fibo:=61.8;
Yuzde:=5;
HV:=HHV(H,BAR);
LV:=LLV(L,BAR);
HV-(HV-LV)*(Fibo-Yuzde)/100>C AND C>HV-(HV-LV)*(Fibo+Yuzde)/100 and BarsSince(HLBTop(BAR)=H)<BarsSince(HLBBot(BAR)=L)
İdealalgo hangi aracıkurumla daha iyi çalışıyor bankalarlada robot kurulabilirmi aracı kurum tavsiyeniz varmı arkadaşlar
https://estore.idealdata.com.tr/aracikurumlar
idealin anlaşmalı olduğu kurumlar
kurumu seçmek size kalmış
potfoy buyukluğunuze işlem sıklığınıza göre komisyon miktarına göre seciminizi yapmak size kalmıoş
Birde idealgo nun çalışabilmesi için otomatik alım satımda bilgisayarın illa i5 filanmı olması lazım
Redmi K30 cihazımdan hisse.net mobile app kullanarak gönderildi.
Merhaba arkadaslar
Yazdigim sistemin islemde kalma suresini gosteren bir grafigi hangi kodla cizdirebilirim ? Tek yonlu alis yapan bir sistem uzerine calisiyorum.
Selam idealdeki paçal örneğini biraz değiştirdim ama idealdeki gibi sistem al verdiğinde maliyeti düşürecek şekilde lot toplayıp TP olunca satmıyor? sizce sebebi nedir? Ben sadece al koşulu idealde RSI olan yere MA koydum sadece bir kere alıyor TP görünce satıyor. nerede hata yapıyorum sızce?
Saygılar..
var Bakiye = 1000 ;
var Bars = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
//var RSI = Sistem.RSI(14);
var Cum = 0.0;
var Maliyet = 0.0;
var Miktar = 0;
var TP = 1.01f; //YÜZDE 1
//var C = Sistem.GrafikFiyatSec("Kapanis");
var L = Sistem.GrafikFiyatSec("Dusuk");
var H = Sistem.GrafikFiyatSec("Yuksek");
var MA1 = Sistem.MA(C, "Exp", 3);
var MA2 = Sistem.MA(C, "Exp", 10);
var MA3 = Sistem.MA(H, "Exp", 10);
//var SonYon = "";
var SonYon = "";
var Pozisyon = Sistem.SayiListesi;
var OrtalamaMaliyet = Sistem.Liste(0);
var ToplamMaliyet = Sistem.Liste(0);
var MiktarList = Sistem.Liste(0);
var Liste = new List<string>();
for (int i = 1; i<Sistem.BarSayisi; i++)
{
Pozisyon[i] = Sistem.SayiListesi[i-1];
//for (int i = 1; i<Sistem.BarSayisi; i++)
//{
if (MA1[i] > MA3[i] && SonYon != "A") // AL
{
// Sistem.Yon[i] = SonYon = "A"; // alış
// if (RSI[i-1] < 50 && RSI[i] > 50)
SonYon = "A";
Sistem.Yon[i] = "A";
Miktar = (int)Sistem.SayiYuvarla(Bakiye / C[i],0);
MiktarList[i] = Miktar;
Cum = Cum + Miktar * C[i];
ToplamMaliyet[i] = (float)Cum;
Pozisyon[i] += Miktar;
Maliyet = (float) Cum / Pozisyon[i];
OrtalamaMaliyet[i] = (float)Maliyet ;
}
else if (C[i] >= Maliyet * TP && SonYon != "F")
{
SonYon = "F";
Sistem.Yon[i] = "F";
MiktarList[i] = 0;
Miktar = 0;
Cum = 0.0;
Maliyet = 0.0;
Pozisyon[i] = 0;
OrtalamaMaliyet[i] = 0;
ToplamMaliyet[i] = 0;
Liste.Add(Bars[i].Date.ToString("dd.MM.yyyy")
+ ";" + Bars[i].Date.ToString("HH:mm")
+ ";" + Bars[i].Close.ToString()
+ ";" + Sistem.Yon[i]
+ ";" + Pozisyon[i]);
}
else
OrtalamaMaliyet[i] = OrtalamaMaliyet[i-1];
}
//var DosyaAdi = "d:\\Ideal\\Rapor\" + Sistem.Sembol + "_" + Sistem.Periyot + ".CSV";
//File.WriteAllLines(DosyaAdi, Liste);
Sistem.Cizgiler[0].Deger = Pozisyon;
Sistem.Cizgiler[0].Aciklama = "Pozisyon";
Sistem.Cizgiler[1].Deger = OrtalamaMaliyet;
Sistem.Cizgiler[1].Aciklama = "Ortalama Maliyet";
Sistem.Cizgiler[2].Deger = MiktarList;
Sistem.Cizgiler[2].Aciklama = "Miktar";
Sistem.Cizgiler[3].Deger = ToplamMaliyet;
Sistem.Cizgiler[3].Aciklama = "Cum";
//Sistem.Cizgiler[4].Deger = RSI;
//Sistem.Cizgiler[4].Aciklama = "RSI";
Arkadaşlar merhaba, derinlik okutmak istiyorum ama sıkıntı yaşıyorum.
Halihazırda hissenin derinlik penceresi açık değilse aşağıdaki mesaj 0, 0, 0 dönüyor. Pencereyi açtıktan sonra veri normal şekilde alınıyor. Bu sorunu nasıl çözebilirim? Örneğin İdeal'i yeni açtım, GARAN derinliği penceresi aktif diyelim. Örnek olarak AKFGY derinliği soruyorum, 0,0,0 dönüyor. GARAN'ı AKFGY penceresi yaparsam bu sefer geliyor.
Kodum aşağıda, yardımcı olabilecek bir arkadaşımız çıkarsa çok sevinirim.
Kod:var hisse = "IMKBH'AKFGY";
var derinlik = Sistem.DerinlikVerisiOku(stock);
var fiyat1 = derinlik.Asks[0].Price;
var miktar1 = derinlik.Asks[0].Size;
var tl1 = Convert.ToInt32(fiyat1 * miktar1);
Sistem.Mesaj(fiyat1.ToString() + " " + miktar1.ToString() + " " + tl1.ToString());
///////////// derinlik bilgisi ///////////////
PHP Code:
var NetLot = Sistem.NetLot(Sistem.Sembol); //Anlık olarak Net lot bilgisini gösterir
var NetHacim = Sistem.NetHacim(Sistem.Sembol);//Anlık olarak net hacimi gösterir
var OncekiKapanis = Sistem.OncekiKapanisGun(Sistem.Sembol); //Anlık olarak
var Derinlik = Sistem.DerinlikVerisiOku(Sistem.Sembol);
var AlisFiyatKademe0 = Derinlik.Bids[0].Price; //Anlık olarak alış tarafta en üst satırdaki fiyatı verir (ilk satır numarası 0, son satır numarası 9 olacak şekilde derinlik tablosundaki bilgileri çekebilirsin)
var AlisLotKademe0 = Derinlik.Bids[0].Size; // Anlık olarak alış tarafta en üst satırdaki lot miktarını verir
var AlisEmirSayisi = Derinlik.Bids[0].OrderCount; //Anlık olarak alış tarafta en üst satırdaki emir sayısını gösterir
var SatisFiyatKademe0 = Derinlik.Asks[0].Price;
var SatisLotKademe0 = Derinlik.Asks[0].Size;
var SatisEmirSayisi = Derinlik.Asks[0].OrderCount;
var SatisEmirSaati = Derinlik.Asks[0].Time;
var AlisEmirSayisi_3 = Derinlik.Bids[3].OrderCount;
var SatisEmirSayisi_3 = Derinlik.Asks[3].OrderCount;
Sistem.Mesaj("Netlot =" + NetLot.ToString() + "\r\n" + "Onceki Gun Kapanis =" + OncekiKapanis.ToString() + "\r\n" + "Alış Fiyatı =" + AlisFiyatKademe0.ToString() + "\r\n" + "SatisEmirSayisi_3 =" + SatisEmirSayisi_3.ToString() + "\r\n" + "AlisEmirSayisi_3 =" + AlisEmirSayisi_3.ToString() + "\r\n" + "Alış Lot = " + SatisEmirSaati.ToString() + "\r\n" + "Alış Emir = " + AlisEmirSayisi.ToString()+ "\r\n" + "Satış Emir Sayısı = " + SatisEmirSayisi.ToString());
//////////// derinlik tablo /////////////
PHP Code:
/////////// TABLO 1
string TabloAd = "GARAN Derinlik";
var SutunGenislik = new int[4]{100,70,70,100};
var SutunHizala = new int[4]{1,1,1,1};
var SutunBaslik = new string[4]{"A.Lot","A.Fiyat","S.Fiyat","S.Lot"};
Sistem.Tablo(TabloAd, 500, 200, 400, 180, 4, 5, SutunGenislik, SutunHizala, SutunBaslik);
Sistem.TabloTemizle(TabloAd);
var Derinlik = Sistem.DerinlikVerisiOku("IMKBH'GARAN");
for (int i=0;i<5;i++)
{
Sistem.TabloYazdir(TabloAd, 0, i, Derinlik.Bids[i].Size.ToString("0,000"));
Sistem.TabloYazdir(TabloAd, 1, i, Derinlik.Bids[i].Price.ToString("0.00"));
Sistem.TabloYazdir(TabloAd, 2, i, Derinlik.Asks[i].Price.ToString("0.00"));
Sistem.TabloYazdir(TabloAd, 3, i, Derinlik.Asks[i].Size.ToString("0,000"));
}
//////////// TABLO 2
TabloAd = "SAHOL Derinlik";
Sistem.Tablo(TabloAd, 500, 400, 400, 180, 4, 5, SutunGenislik, SutunHizala, SutunBaslik);
Sistem.TabloTemizle(TabloAd);
Derinlik = Sistem.DerinlikVerisiOku("IMKBH'SAHOL");
for (int i=0;i<5;i++)
{
Sistem.TabloYazdir(TabloAd, 0, i, Derinlik.Bids[i].Size.ToString("0,000"));
Sistem.TabloYazdir(TabloAd, 1, i, Derinlik.Bids[i].Price.ToString("0.00"));
Sistem.TabloYazdir(TabloAd, 2, i, Derinlik.Asks[i].Price.ToString("0.00"));
Sistem.TabloYazdir(TabloAd, 3, i, Derinlik.Asks[i].Size.ToString("0,000"));
}
sayın santi affınıza sığınarak bir şey söylemek istiyorum
borsada paçal yapmak borsada yapılabilecek en buyuk yanlışlardandır hele viop ta çok buyuk yamlış
borsada paçal yapmak benim gözümde aynen şu
izmirden istanbula gitmek üzere yola çıkılmış ama sehven ankara yoluna girilmiş yanlış yolda gaza basmak gibi bir şey
saygılar
Burada paylaşmış olduğum yorum ve grafik çalışmaları eğitim amaçlı olup ,yatırım danışmanlığı kapsamında değildir.Kesinlikle al-sat-tut tavsiyesi değildir.
Merhaba arkadaslar
Yazdigim sistemin islemde kalma suresini gosteren bir grafigi hangi kodla cizdirebilirim ? Tek yonlu alis yapan bir sistem uzerine calisiyorum.
ayrica bu kayma komisyon isini sisteme eklemek icin getiri egrisinin yanindaki rakami giriyoruz sanirim. Ama hangi degeri girmek mantikli ben butun hisselerde bakiyorum sisteme. Ordaki deger yuzde mi fiyat mi ? Bu konularda maalesef ideal sitesinde cok eksik bilgi var :s Yeni baslayanlar icin rehber niteliginde bi dokuman bulamadim bu tip konularda
Sistem.SorguAciklamaGenislik = 50;
Sistem.SorguBaslik[0] = "Fiyat";
Sistem.SorguBaslik[1] = "Dip";
Sistem.SorguBaslik[2] = "Tepe";
Sistem.SorguBaslik[3] = "Fibo382";
Sistem.SorguBaslik[4] = "Fibo50";
Sistem.SorguBaslik[5] = "Fibo618";
Sistem.SorguBaslik[6] = "Fibo786";
Sistem.SorguBaslik[7] = "Fibo886";
Sistem.SorguOndalik[0] = 2;
Sistem.SorguOndalik[1] = 2;
Sistem.SorguOndalik[2] = 2;
Sistem.SorguOndalik[3] = 2;
Sistem.SorguOndalik[4] = 2;
Sistem.SorguOndalik[5] = 2;
Sistem.SorguOndalik[6] = 2;
Sistem.SorguOndalik[7] = 2;
var Dip = Sistem.LLV(144);
var Tepe = Sistem.HHV(144);
var Fiyat = Sistem.GrafikFiyatSec("Kapanis");
var Fibo50 = Sistem.Liste(0);
var Fibo618 = Sistem.Liste(0);
var Fibo382 = Sistem.Liste(0);
var Fibo786 = Sistem.Liste(0);
var Fibo886 = Sistem.Liste(0);
for (int i = 0; i < Sistem.BarSayisi; i++)
{
Fibo886[i] = Tepe[i] - ((Tepe[i]-Dip[i])*0.886F);
Fibo786[i] = Tepe[i] - ((Tepe[i]-Dip[i])*0.786F);
Fibo50[i] = Tepe[i] - ((Tepe[i]-Dip[i])*0.5F);
Fibo618[i] = Tepe[i] - ((Tepe[i]-Dip[i])*0.618F);
Fibo382[i] = Tepe[i] - ((Tepe[i] - Dip[i]) * 0.382f);
}
if(Fiyat[Sistem.BarSayisi-1] > Fibo618[Sistem.BarSayisi-1] && Fiyat[Sistem.BarSayisi-1] > Fibo786[Sistem.BarSayisi-1] && Fiyat[Sistem.BarSayisi-1] > Fibo886[Sistem.BarSayisi-1] &&Fiyat[Sistem.BarSayisi-1] < Fibo50[Sistem.BarSayisi-1] && Fiyat[Sistem.BarSayisi-1] < Fibo382[Sistem.BarSayisi-1] )
{
Sistem.SorguDeger[0] = Fiyat[Sistem.BarSayisi-1];
Sistem.SorguDeger[1] = Dip[Sistem.BarSayisi-1];
Sistem.SorguDeger[2] = Tepe[Sistem.BarSayisi-1];
Sistem.SorguDeger[3] = Fibo382[Sistem.BarSayisi-1];
Sistem.SorguDeger[4] = Fibo50[Sistem.BarSayisi-1];
Sistem.SorguDeger[5] = Fibo618[Sistem.BarSayisi-1];
Sistem.SorguDeger[6] = Fibo786[Sistem.BarSayisi-1];
Sistem.SorguDeger[7] = Fibo886[Sistem.BarSayisi-1];
Sistem.SorguEkle();
}
Sistem.SorguAciklamaGenislik = 89;
Sistem.SorguBaslik[0] = "Fiyat";
Sistem.SorguSutunGenislik[0] = 44;
Sistem.SorguBaslik[1] = "Dip";
Sistem.SorguSutunGenislik[1] = 44;
Sistem.SorguBaslik[2] = "Tepe";
Sistem.SorguSutunGenislik[2] = 44;
Sistem.SorguBaslik[3] = "F382";
Sistem.SorguSutunGenislik[3] = 44;
Sistem.SorguBaslik[4] = "F50";
Sistem.SorguSutunGenislik[4] = 44;
Sistem.SorguBaslik[5] = "F618";
Sistem.SorguSutunGenislik[5] = 44;
Sistem.SorguBaslik[6] = "F786";
Sistem.SorguSutunGenislik[6] = 44;
Sistem.SorguBaslik[7] = "F886";
Sistem.SorguSutunGenislik[7] = 44;
Sistem.SorguBaslik[8] = "Ö.Kapanis";
Sistem.SorguSutunGenislik[8] = 59;
Sistem.SorguBaslik[9] = "Dusen";
Sistem.SorguSutunGenislik[9] = 55;
Sistem.SorguBaslik[10] = "Hacim";
Sistem.SorguSutunGenislik[10] = 66;
Sistem.SorguBaslik[11] = "STK";
Sistem.SorguSutunGenislik[11] = 55;
Sistem.SorguBaslik[12] = "RSI";
Sistem.SorguSutunGenislik[12] = 55;
Sistem.SorguBaslik[13] = "MOM";
Sistem.SorguSutunGenislik[13] = 55;
Sistem.SorguBaslik[14] = "CCI";
Sistem.SorguSutunGenislik[14] = 55;
Sistem.SorguBaslik[15] = "MACD";
Sistem.SorguSutunGenislik[15] = 65;
Sistem.SorguBaslik[16] = "AVR";
Sistem.SorguSutunGenislik[16] = 65;
Sistem.SorguBaslik[17] = "Fark*100";
Sistem.SorguSutunGenislik[17] = 65;
Sistem.SorguOndalik[0] = 2;
Sistem.SorguOndalik[1] = 2;
Sistem.SorguOndalik[2] = 2;
Sistem.SorguOndalik[3] = 2;
Sistem.SorguOndalik[4] = 2;
Sistem.SorguOndalik[5] = 2;
Sistem.SorguOndalik[6] = 2;
Sistem.SorguOndalik[7] = 2;
Sistem.SorguOndalik[8] = 2;
Sistem.SorguOndalik[9] = 2;
Sistem.SorguOndalik[10] = 2;
Sistem.SorguOndalik[11] = 2;
Sistem.SorguOndalik[12] = 2;
Sistem.SorguOndalik[13] = 2;
Sistem.SorguOndalik[14] = 2;
Sistem.SorguOndalik[15] = 2;
Sistem.SorguOndalik[16] = 2;
Sistem.SorguOndalik[17] = 2;
var Dip = Sistem.LLV(144);
var Tepe = Sistem.HHV(144);
var Fiyat = Sistem.GrafikFiyatSec("Kapanis");
var Fibo50 = Sistem.Liste(0);
var Fibo618 = Sistem.Liste(0);
var Fibo382 = Sistem.Liste(0);
var Fibo786 = Sistem.Liste(0);
var Fibo886 = Sistem.Liste(0);
var TrendPeriyodu = 233;
var SonXbar = 5;
var Sembol = Sistem.Sembol;
var V= Sistem.GrafikVerileriniOku(Sembol, Sistem.Periyot);
var C = Sistem.GrafikFiyatOku(V, "Kapanis");
var Yukselen = Sistem.OtoTrendYukselen(V, TrendPeriyodu, SonXbar);
var Dusen = Sistem.OtoTrendDusen(V, TrendPeriyodu, SonXbar);
Sistem.Cizgiler[0].Deger = Yukselen;
Sistem.Cizgiler[1].Deger = Dusen ;
var RSI= Sistem.RSI(14);
var STK= Sistem.StochasticOsc(5, 3);
var MOM = Sistem.Momentum(12);
var CCI = Sistem.CommodityChannelIndex(14);
var MACD = Sistem.MACD(12, 26);
var AVR = Sistem.MA(MACD, "exp", 9);
var x = Sistem.BarSayisi-1;
var SonAVR = AVR[Sistem.BarSayisi-1];
var SonMACD = MACD[Sistem.BarSayisi-1];
var SonRSI = RSI[Sistem.BarSayisi-1];
var SonSTK = STK[Sistem.BarSayisi-1];
var SonMOM = MOM[Sistem.BarSayisi-1];
var SonCCI = CCI[Sistem.BarSayisi-1];
var Fark = Math.Abs( SonMACD - SonAVR )/ SonMACD;
for (int i = 500; i < Sistem.BarSayisi; i++)
{
if ( Fark*100 <= 0.5 && MACD[x] < AVR[x] && MACD[x] > MACD[x - 1])
{}
}
for (int i = 0; i < Sistem.BarSayisi; i++)
{
Fibo886[i] = Tepe[i] - ((Tepe[i]-Dip[i])*0.886F);
Fibo786[i] = Tepe[i] - ((Tepe[i]-Dip[i])*0.786F);
Fibo50[i] = Tepe[i] - ((Tepe[i]-Dip[i])*0.5F);
Fibo618[i] = Tepe[i] - ((Tepe[i]-Dip[i])*0.618F);
Fibo382[i] = Tepe[i] - ((Tepe[i] - Dip[i]) * 0.382f);
}
if ( V[V.Count-1].Close < V[V.Count-TrendPeriyodu].Close && V[V.Count-1].High > Dusen[Dusen.Count-1] && Dusen[Dusen.Count-1] != 0)
{
if(Fiyat[Sistem.BarSayisi-1] > Fibo618[Sistem.BarSayisi-1] && Fiyat[Sistem.BarSayisi-1] > Fibo786[Sistem.BarSayisi-1] && Fiyat[Sistem.BarSayisi-1] > Fibo886[Sistem.BarSayisi-1] &&Fiyat[Sistem.BarSayisi-1] < Fibo50[Sistem.BarSayisi-1] && Fiyat[Sistem.BarSayisi-1] < Fibo382[Sistem.BarSayisi-1] )
{
Sistem.SorguDeger[0] = Fiyat[Sistem.BarSayisi-1];
Sistem.SorguDeger[1] = Dip[Sistem.BarSayisi-1];
Sistem.SorguDeger[2] = Tepe[Sistem.BarSayisi-1];
Sistem.SorguDeger[3] = Fibo382[Sistem.BarSayisi-1];
Sistem.SorguDeger[4] = Fibo50[Sistem.BarSayisi-1];
Sistem.SorguDeger[5] = Fibo618[Sistem.BarSayisi-1];
Sistem.SorguDeger[6] = Fibo786[Sistem.BarSayisi-1];
Sistem.SorguDeger[7] = Fibo886[Sistem.BarSayisi-1];
Sistem.SorguDeger[8]= C[C.Count-2];
Sistem.SorguDeger[9]= Dusen[Dusen.Count-1];
Sistem.SorguDeger[10] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Vol;
Sistem.SorguDeger[11] = SonSTK;
Sistem.SorguDeger[12] = SonRSI;
Sistem.SorguDeger[13] = SonMOM;
Sistem.SorguDeger[14] = SonCCI;
Sistem.SorguDeger[15] = MACD[x];
Sistem.SorguDeger[16] = AVR[x];
Sistem.SorguDeger[17] = Fark*100 ;
Sistem.SorguAciklama = "Yukarı Kırıldı";
if (SonRSI < 100 && SonRSI > 55 )
Sistem.SorguHucreZeminRengi[12] = Color.Green;
if (SonRSI < 55 && SonRSI > 45 )
Sistem.SorguHucreZeminRengi[12] = Color.LightGreen;
if (SonSTK < 105 && SonSTK > 55 )
Sistem.SorguHucreZeminRengi[11] = Color.Blue;
if (SonSTK < 55 && SonSTK > 45 )
Sistem.SorguHucreZeminRengi[11] = Color.LightBlue;
if (SonMOM < 180 && SonMOM > 99.9 )
Sistem.SorguHucreZeminRengi[13] = Color.Orange;
if (SonCCI < 380 && SonCCI > 55 )
Sistem.SorguHucreZeminRengi[14] = Color.Red;
Sistem.SorguEkle();
}
}
Burada bulunan formüllerden yararlanarak açılış barının yüksek,düşüğü ile günlük ortalamayı alan bir formül yazmaya çalıştım.Bazı günler açılış barının yükseğini hatalı gösteriyor nedenini anlayamadım.
//Veriler
var V =Sistem.GrafikVerileri ;
var C = Sistem.GrafikFiyatSec( "Kapanis");
//Değişkenler
var OncekiGunKapanis = Sistem.Liste(0);
var GunlukOrtalama = Sistem.Liste(0);
var GunlukYuzde = Sistem.Liste(0);
int OncekiGunKapanisBar =0;
List<double> GunlukFiyatList = new List<double>();
//Günlük Durum Listelerini Hesapla
for (int i = 1; i < V.Count; i++)
{
if (V[i].Date.Day != V[i-1].Date.Day)
{
OncekiGunKapanis[i] = C[i-1];
OncekiGunKapanisBar = i;
GunlukFiyatList.Clear();
GunlukOrtalama[i] = GunlukOrtalama[i-1];
}
else {
OncekiGunKapanis[i] = OncekiGunKapanis[i-1];
GunlukFiyatList.Add(C[i]);
GunlukOrtalama[i] = (float)GunlukFiyatList.Average();
}
if ( C[i]>=OncekiGunKapanis[i]) {GunlukYuzde[i] = (C[i]-OncekiGunKapanis[i]);}
if ( C[i]<OncekiGunKapanis[i]) {GunlukYuzde[i] = -(-C[i]+OncekiGunKapanis[i]);}
}
//Çizgiler
var H = Sistem.GrafikFiyatOku(V, "Yuksek" ) ;
var L = Sistem.GrafikFiyatOku(V, "Dusuk" ) ;
//Değişkenler
var GunYuksek = Sistem.Liste(0);
var GunDusuk = Sistem.Liste(0);
int GunYuksekBar =0;
List<double> GunYuksekFiyatList = new List<double>();
int GunDusukBar =0;
List<double> GunDusukFiyatList = new List<double>();
//Günlük Durum Listelerini Hesapla
for (int i = 1; i < V.Count; i++)
{
if (V[i].Date.Day != V[i-1].Date.Day)
{
GunYuksek[i] = H[i];
GunDusuk [i] = L[i];
GunYuksekFiyatList.Clear();
GunDusukFiyatList.Clear();
GunYuksekBar = i;
GunDusukBar = i;
}
else {
GunYuksek[i] = GunYuksek[i-1];
GunDusuk[i] = GunDusuk[i-1];
GunYuksekFiyatList.Add(H[i]);
GunDusukFiyatList.Add(L[i]);
}
}
//Çizgiler
Sistem.Cizgiler[0].Deger = GunYuksek; //Panel 1
Sistem.Cizgiler[0].Aciklama = "GunYuksek";
Sistem.Cizgiler[1].Deger = GunDusuk; //Panel 1
Sistem.Cizgiler[1].Aciklama = "GunDusuk";
Sistem.Cizgiler[2].Deger = OncekiGunKapanis;
Sistem.Cizgiler[2].Aciklama = "OncekiGunKapanis";
Sistem.Cizgiler[3].Deger = GunlukOrtalama; //Panel 1
Sistem.Cizgiler[3].Aciklama = "GunlukOrtalama";
Sistem.Cizgiler[4].Deger = GunlukYuzde ; //Panel 2
Sistem.Cizgiler[4].Aciklama = "GunlukYuzde";
Merhabalar, ideal veri sağlayıcısını yeni edindim ve kodlama namına hiçbir şey bilmiyorum. Hazır sistemlerin değerlerini değiştirerek bir şeyler yapmaya çalışıyorum. Şimdi kurduğumuz bu sistemleri robota bağlayıp o sisteme göre al veren hisseleri aldırmak istiyorum. Piyasada mevcut olan robot kodlarında tek hisseler mevcut. sorgudan cıkan bütün hisseleri nasıl aldırıp kar al yada stop oldurabilirim.
teşekkür ederim şimdiden.
merhabalar ideal kullanmaya yeni basladım ,matrikste kullandıgım bir indikatoru burada indikator olarak yazabilmek mumkun mu ve kapanıs fiyatının son 5 barda bu indikatoru yukarı kestiği senetlerin sorgusu için yardımcı olabilirmisiniz? indikatorun formulunu asagıda paylaşıyorum
P:=input("Period", 5, 100, 10);
Pds:=P+1;
Long:=2/(2+1);
Short:=2/(30+1);
Dir:=Abs(C-Ref(C,-P));
Voli:=Sum(Abs(ROC(C,1,%)),P);
DV:=Dir/Voli;
LS:=DV*(Long-Short)+Short;
Cnst:= POWER(LS,2);
SRI:=If(Cum(1) = Pds,Ref(C,-1)+Cnst*(C-Ref(C,-1)),PREV+Cnst*(C-PREV));
SRI
şimdiden teşekkürler
Formul için teşekkürler. Bu kodu "sistem tanımları" penceresini açarak boş sayfaya ekliyorum. kaydedip isim veriyorum. sonra bu sistemi grafiğe uyguluyorum. ama hiç bir şey cıkmıyor. bu indikatoru kullanmak için ne yapmam gerekli? ufak bilgi verebilirseniz cok memnun olurum
selamlar arkadaşalar bu ideal nasıl misal foreksfx plus gibi zırt pırt kopuyor mu yada matrisk gibi çok özellik ekleyelim derken karama karışık mı yada çok ağır ve pc yi kasıyor mu matriks gibi ideal fiyatımı uygun yoksa gerçek anlamda analiz çıkartma kopma yaşamadan sadece borsa verilerine odaklı mı kullanmadan bilemiyoruz kullancılardan tavsiye bekliyorum yardımcı olacaklara şimdiden teşekürler