Teşekkür ederim sağolun.
ASUS_X00TD cihazımdan Tapatalk kullanılarak gönderildi
Printable View
Sorgu taraması yapar iken karşıma çıkan verileri hisse üzerinde bakmak istediğimde hisse datalarını güncellemek gerektiğini farkkettim. Hisse dataları otomatik arka planda inmiyor mu?
Syg.
Yav arkadaş bu idealin dilini öğrenmek büyük bir eziyet . İdealin yazdıgı formülleri inceliyorum. Sadece fiyatın 5 lik emanın kesmesine dayanan bir formül için 100 satırlık formül yazılmış. Aşama aşama anlatın, satır,satır anlatın 2 sayfa döküman ekleyin. Sıfırdan öğrenir gibi bizde öğrenelim.
Sanki sınırlı bir kitle öğrensin kullansın diye bir amaç güdülmüş.
Volume Weighted Moving Average kodlaması paylaşıldı mı daha önce acaba?
Merhabalar
İdealde var olan YataySeviyeler isimli kodu bahsedeceğim şekilde değiştirmek istiyorum, yardımcı olur musunuz?
2 tane seviye seçeceği olacak manuel olarak 2 rakam belirticem, rakamlar arası flat olucak onun haricinde üstünde long altında short şeklinde.
Yani Long seviyenin 100 puan üstünde long olcak, aynı seviyenin 100 puan altında flat olcak. aynı işlem short içinde geçerli..
var Seviyeler = new List<float>();
//istediğiniz kadar destek ve direnç seviyeesi ekleyebilirsiniz.
//Seviyeler küçükten büyüğe doğru gitmeli.
Seviyeler.Add(112.000F);
Seviyeler.Add(114.000F);
Seviyeler.Add(116.000F);
Seviyeler.Add(118.000F);
Seviyeler.Add(120.000F);
Seviyeler.Add(122.000F);
Seviyeler.Add(124.000F);
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
for (int i = 0; i < Seviyeler.Count; i++)
{
Sistem.Cizgiler[i + 10].ActiveBool = true;
Sistem.Cizgiler[i + 10].Deger = Sistem.Liste(Seviyeler[i]);
Sistem.Cizgiler[i + 10].Panel = 1;
Sistem.Cizgiler[i + 10].Renk = Color.IndianRed;
Sistem.Cizgiler[i + 10].Stil = 2;
}
var KesimYonu = 0;
var KesimSeviyesi = 0.0;
var Adim = 0.250f; //Çizgi kırıldıktan sonra 250 puan daha giderse AL (vey SAT)
var SonYon = "";
for (int i = 1; i < V.Count; i++)
{
for (int j = 0; j < Seviyeler.Count; j++)
{
if (C[i - 1] < Seviyeler[j] && C[i] >= Seviyeler[j])
{
KesimYonu = 1;
KesimSeviyesi= Seviyeler[j];
}
else if (C[i - 1] > Seviyeler[j] && C[i] <= Seviyeler[j])
{
KesimYonu = -1;
KesimSeviyesi = Seviyeler[j];
}
}
if (KesimYonu == 1 && C[i] >= KesimSeviyesi + Adim && SonYon != "A")
{
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}
if (KesimYonu == -1 && C[i] <= KesimSeviyesi - Adim && SonYon != "S")
{
Sistem.Yon[i] = "S";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}
}
İşinize yararsa elimde aşağıdaki gibi bir kod var..
var Per = 50;
var C = Sistem.GrafikFiyatSec("Kapanis");
var Lot = Sistem.GrafikFiyatSec("Lot");
var VAMA = Sistem.Liste(0);
for (int i = Per+100; i < Sistem.BarSayisi; i++)
{
var Hacim = 0.0;
var Lotlar = 0.0;
for (int j = 0; j < Per; j++)
{
Hacim += (Lot[i-j] * C[i-j]) ;
Lotlar += Lot[i-j];
}
if (Lotlar != 0)
VAMA[i] = (float)(Hacim/Lotlar);
}
Sistem.Cizgiler[0].Deger = VAMA;
Bu konuda yardımcı olabilecek kimse yok mudur? Bu hale getirdim en son çorba olduiyice. El attığım yer kuruyor foruma da kimse uğramaz olmuş.
var Short = new List<float>();
var Long = new List<float>();
//istediğiniz kadar destek ve direnç seviyeesi ekleyebilirsiniz.
//Seviyeler küçükten büyüğe doğru gitmeli.
Short.Add(121.300F);
Long.Add(123.450F);
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
for (int i = 0; i < Short.Count; i++)
{
Sistem.Cizgiler[i + 10].ActiveBool = true;
Sistem.Cizgiler[i + 10].Deger = Sistem.Liste(Short[i]);
Sistem.Cizgiler[i + 10].Panel = 1;
Sistem.Cizgiler[i + 10].Renk = Color.IndianRed;
Sistem.Cizgiler[i + 10].Stil = 2;
}
for (int i = 0; i < Long.Count; i++)
{
Sistem.Cizgiler[i + 11].ActiveBool = true;
Sistem.Cizgiler[i + 11].Deger = Sistem.Liste(Long[i]);
Sistem.Cizgiler[i + 11].Panel = 1;
Sistem.Cizgiler[i + 11].Renk = Color.IndianRed;
Sistem.Cizgiler[i + 11].Stil = 2;
}
var KesimYonu = 0;
var KesimSeviyesi = 0.0;
var Adim = 0.200f; //Çizgi kırıldıktan sonra 250 puan daha giderse AL (vey SAT)
var SonYon = "";
for (int i = 1; i < V.Count; i++)
{
for (int l = 0; l < Long.Count; l++)
{
if (C[i - 1] < Long[l] && C[i] >= Long[l])
{
KesimYonu = 1;
KesimSeviyesi= Long[l];
}
else if (C[i - 1] > Long[l] && C[i] <= Long[l])
{
KesimYonu = 0;
KesimSeviyesi = Long[l];
}
}
for (int s = 0; s < Short.Count; s++)
{
if (C[i - 1] < Short[s] && C[i] >= Short[s])
{
KesimYonu = -1;
KesimSeviyesi= Short[s];
}
else if (C[i - 1] > Short[s] && C[i] <= Short[s])
{
KesimYonu = 0;
KesimSeviyesi = Short[s];
}
}
//------------------------------------------------------------------------------
if (KesimYonu == 1 && C[i] >= KesimSeviyesi + Adim && SonYon != "A")
{
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}
if (KesimYonu == -1 && C[i] <= KesimSeviyesi + Adim && SonYon != "F")//eklenen
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}
if (KesimYonu == -1 && C[i] <= KesimSeviyesi - Adim && SonYon != "S")
{
Sistem.Yon[i] = "S";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}
if (KesimYonu == 1 && C[i] >= KesimSeviyesi - Adim && SonYon != "F")//eklenen
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}
}
Tekrar data isteyen arkadaşlar olmuştu.
Viob 5 dk'lık.
https://pkamc-my.sharepoint.com/:t:/...KbNxA?e=Edl6ye
Kast ettiğim şöyle bir şeydi, ben vestel e göre seviyeleri rastgele yazdım;
Görüntüde kesikli çizgiler işlem giriş, mavi çizgiler kar alma seviyeleri..
https://i.hizliresim.com/y67AQ0.pngPHP Code:
var C = Sistem.GrafikFiyatSec("Kapanis");
float buy = 12.90f;//ana long seviye, long stop
float sell = 12.40f;//ana short seviye, short stop
float marj = 0.15f;//işleme giriş marjı
float karal = 0.50f;//işleme giriş fiyatına göre kar al marjı
var SonYon="";
for (int i = 1; i < Sistem.BarSayisi; i++)
{
if ( C[i-1] < buy+marj && C[i] > buy+marj && SonYon != "A") // AL
{
SonYon = Sistem.Yon[i] = "A"; // alış
}
if ( C[i-1] > sell-marj && C[i] < sell-marj && SonYon != "S") // SAT
{
SonYon = Sistem.Yon[i] = "S"; // satış
}
//flat: short veya long kar al seviyelerinde, short-long aralığında
if (( C[i] < sell-marj-karal && SonYon != "F") ||( C[i] > buy+marj+karal && SonYon != "F") || ( C[i] > sell && C[i] < buy && SonYon != "F")) // FLAT
{
SonYon = Sistem.Yon[i] = "F";
}
}
// listeleri çizgilere aktar
Sistem.Cizgiler[0].Deger = Sistem.Liste(buy);
Sistem.Cizgiler[1].Deger = Sistem.Liste(sell);
Sistem.Cizgiler[2].Deger = Sistem.Liste(buy+marj);
Sistem.Cizgiler[3].Deger = Sistem.Liste(sell-marj);
Sistem.Cizgiler[4].Deger = Sistem.Liste(buy+marj+karal);
Sistem.Cizgiler[5].Deger = Sistem.Liste(sell-marj-karal);
okadar zor değil basit bir mantığı var. Aslında çoğu şeyi bende bilmiyorum gerçi uğraşsam uğraşırım da saldım çayıra.
nasılsa kodcu arkadasım var o yapıveriyor bilemediğim kodlamaları.
Öğrenılmeyecek birşey değil aslında ben ugrasmıyorum fazla.
Asıl kafa yorulması gereken şey algoritma. Kod bır kaç adet C ye özel terimlerin ezberlenmesi dışında hiçbirşey yok.
Asıl mesele algorıtma ve matematiği kurgulamakta kodu yazsanız bıle algorıtma kurma yetenegı yoksa kafanızdan dumanlar cıkıyor.
istediğin kadar kod bil algorıtma yoksa 0'sın
İstediğim şeyi bu kodda yapıyor Teşekkür ederim Sonli. Kodlama bilgim olmadığı için var olan kod üzerinde bişeyler yapmaya çalışmıştım.
Kodla alakalı olarak kâr al işlemini manuel yapmak istiyorum, kod içerisinden karal yazan kısımları çıkarırsam bunu halletmiş olur muyum, bu işlem kodda bozulmaya yol açar mı?
Aşağıdaki kodda kar al kısımları yok, ama ilk kodda da kar al marjını çok yüksek tutarak istemediğiniz zaman anlamsızlaştırabilirsiniz..
PHP Code:
var C = Sistem.GrafikFiyatSec("Kapanis");
float buy = 12.90f;//ana long seviye, long stop
float sell = 12.40f;//ana short seviye, short stop
float marj = 0.15f;//işleme giriş marjı
var SonYon="";
for (int i = 1; i < Sistem.BarSayisi; i++)
{
if ( C[i-1] < buy+marj && C[i] > buy+marj && SonYon != "A") // AL
{
SonYon = Sistem.Yon[i] = "A"; // alış
}
if ( C[i-1] > sell-marj && C[i] < sell-marj && SonYon != "S") // SAT
{
SonYon = Sistem.Yon[i] = "S"; // satış
}
//flat: short-long aralığında
if ( C[i] > sell && C[i] < buy && SonYon != "F") // FLAT
{
SonYon = Sistem.Yon[i] = "F";
}
}
// listeleri çizgilere aktar
Sistem.Cizgiler[0].Deger = Sistem.Liste(buy);
Sistem.Cizgiler[1].Deger = Sistem.Liste(sell);
Sistem.Cizgiler[2].Deger = Sistem.Liste(buy+marj);
Sistem.Cizgiler[3].Deger = Sistem.Liste(sell-marj);
Geldik, gidiyoruz..
1 dk'lık veri isteyen arkadaşlar olmuştu.
Son 1 yıla ait 1 dk'lık viob verileri linktedir.
https://pkamc-my.sharepoint.com/:t:/...24sfw?e=x1LyuT
Arkadaşlar bana xu030 endeksine ve bist-50 veya bist-100 içindeki hisselere ait 1 dk lık geçmiş veri lazım , bendekiler çok eski değil yeni biriktirmeye başladım. Buradan paylaşabilir veya mail olarak gönderebilir misiniz.
mail : ssilentmanntr@gmail.com
Merhaba arkadaşlar, kod ile idealgo robotunu başlatmak, durdurmak, sembol ve emir miktarında değişiklik yapmak mükün mü?
Merhabalar, İdeal Robot ta canlı barda işlem yapıyorum sinyal geldiği zaman bir kere işlem yapmam lazım, nasıl yaparım.
Canlı Barda işlem
var SonYon = Sistem.SonYonGetirCanli(SistemAdi, Sembol, Periyot);
merhaba, idealde veya matrikste optimizasyon yaparken opt1 , opt2 ve adım sayısını nasıl girmeliyim? Opt1, opt2 ve adım sayısı ne demek. Bir türlü anlamadım. Neye göre belirlenir, yazılır. Yardımcı olursanız memnun olurum. Teşekkürler
Mesela 2 ma kesişimini optimize edeceksiniz; ma1, 2 ile 20 arasında(opt1) 1 er(adım) artırarak ma2 yi de 9 ile 100 arasında(opt2) 1 er artırarak denetirsiniz.. Bu durumda optimizasyon esnasında sistem ma1 e 2-20 arasında, ma2 ye de 9-100 arası değerleri 1 er artırarak bütün olasılıkları test eder ve en uygun ma çiftini bulmaya çalışır. Ama toma veya most optimizasyonu yapacaksanız ema yı yine 2-20 arası 1 er adım kullanırken yüzde kısmını 0.3-3 arasında 0.1 adım seçersiniz... Rakamları farazi yazdım, yani optimize edeceğiniz indikatöre ve periyota göre bu değerler değişir...
Geldik, gidiyoruz..
yukledim ama demo kullanma ile ilgili bir sey bulamadim? Yardimci olabilecek bir arkadas varmi? Demo surumunde yazdigim kodun calisip calismayacagini kontrol etmek istiyorum..
c:\Users\Admin\AppData\Local\Temp\ehctmymk.0.cs(90 ,2) : error CS1513: } expected
c:\Users\Admin\AppData\Local\Temp\ehctmymk.0.cs(90 ,2) : error CS1513: } expected
c:\Users\Admin\AppData\Local\Temp\ehctmymk.0.cs(90 ,2) : error CS1513: } expected
iyi gunler bu hatayi neden veriyor olabilir?
ideal twitırda idealgo kullanıma açıldı %50 indirimli kullamaya başlayabilirsiniz yazmış. Bu şuanki algo,robot kullanmaktan ayrı bir şeymi oluyor. Algo,robot lisansı + İde Algo lisans şeklinde bir şey oluyor.
selam arkadaslar burada nerde hata yapiyorum
var Veriler = Sistem.GrafikVerileri ;
var Sembol = Sistem.Sembol ;
var Bars1 = Sistem.GrafikVerileriniOku(Sembol, "G") ;
var Kapanislar1 = Sistem.GrafikFiyatOku(Bars1, "Kapanis") ;
var MA1 = Sistem.MA(Kapanislar1, "Simple", 10) ;
var MA2 = Sistem.MA(Kapanislar1, "Simple", 20) ;
var MA3 = Sistem.MA(Kapanislar1, "Simple", 50) ;
var Bars2 = Sistem.GrafikVerileriniOku(Sembol, "60") ;
var Bars2 = Sistem.GrafikFiyatOku(Bars2, "Kapanis") ;
var MA2 = Sistem.MA(Kapanislar2, "Simple", 60) ;
MA2 = Sistem.DonemCevir(Bars2, Bars1, MA1) ;
MA2 = Sistem.DonemCevir(Bars2, Bars1, MA2) ;
MA3 = Sistem.DonemCevir(Bars2, Bars1, MA3) ;
Sistem.Cizgiler[0].Deger = MA1 ;
Sistem.Cizgiler[0].Aciklama = "MA1" ;
Sistem.Cizgiler[1].Deger = MA2 ;
Sistem.Cizgiler[1].Aciklama = "MA2" ;
Sistem.Cizgiler[3].Deger = MA3 ;
Sistem.Cizgiler[3].Aciklama = "MA3" ;
Var SonYon = "" ;
for (int i = 1; i < Bars1.Count; i++) ;
{
If ( MA1[i]>MA2[i] && MA2[i]>MA3[i] )
If ( SonYon ! = "A")
{
Sistem.Yon[i] = "A" ;
SonYon = "A" ;
}
}
If (MA1[i]<MA2[i] && MA2[i]<MA3[i])
{
If (SonYon ! = "S") ;
Sistem.Yon[i] = "S" ;
SonYon = "S" ;
}
}
c:\Users\Admin\AppData\Local\Temp\5fdb3awq.0.cs(72 ,1) : error CS1519: Invalid token 'catch' in class, struct, or interface member declaration
c:\Users\Admin\AppData\Local\Temp\5fdb3awq.0.cs(72 ,23) : error CS1002: ; expected
c:\Users\Admin\AppData\Local\Temp\5fdb3awq.0.cs(74 ,23) : error CS1519: Invalid token '(' in class, struct, or interface member declaration
c:\Users\Admin\AppData\Local\Temp\5fdb3awq.0.cs(74 ,39) : error CS1519: Invalid token ')' in class, struct, or interface member declaration
c:\Users\Admin\AppData\Local\Temp\5fdb3awq.0.cs(78 ,1) : error CS1022: Type or namespace definition, or end-of-file expected
c:\Users\Admin\AppData\Local\Temp\5fdb3awq.0.cs(79 ,1) : error CS1022: Type or namespace definition, or end-of-file expected
İlk bakışta görebildiğim For döngüsündeki ilk if ile 2. if arasında { eksik.. Sonda da } ile for döngüsü kapanmamış.. Ama if kısımlarını sadeleştirseniz daha iyi olur.. 2-3 sayfa geride paylaştığım kodun if kısımlarına bakabilirsiniz.. Ayrıca http://www.directfn.com.tr/idealsistem/ buradaki örnekleri incelerseniz iyi olur..
Geldik, gidiyoruz..
PHP Code:
var Veriler = Sistem.GrafikVerileri ;
var Sembol = Sistem.Sembol ;
var SonYon = "" ;
var Bars1 = Sistem.GrafikVerileriniOku(Sembol, "G") ;
var Kapanislar1 = Sistem.GrafikFiyatOku(Bars1, "Kapanis") ;
var MA1 = Sistem.MA(Kapanislar1, "Simple", 10) ;
var MA2 = Sistem.MA(Kapanislar1, "Simple", 20) ;
var MA3 = Sistem.MA(Kapanislar1, "Simple", 50) ;
var Bars2 = Sistem.GrafikVerileriniOku(Sembol, "60") ;
var Kapanislar2 = Sistem.GrafikFiyatOku(Bars2, "Kapanis") ;
var MA60 = Sistem.MA(Kapanislar2, "Simple", 60) ;
MA1 = Sistem.DonemCevir(Bars2, Bars1, MA1) ;
MA2 = Sistem.DonemCevir(Bars2, Bars1, MA2) ;
MA3 = Sistem.DonemCevir(Bars2, Bars1, MA3) ;
Sistem.Cizgiler[0].Deger = MA1 ;
Sistem.Cizgiler[0].Aciklama = "MA1" ;
Sistem.Cizgiler[1].Deger = MA2 ;
Sistem.Cizgiler[1].Aciklama = "MA2" ;
Sistem.Cizgiler[3].Deger = MA3 ;
Sistem.Cizgiler[3].Aciklama = "MA3" ;
Sistem.Cizgiler[4].Deger = MA60 ;
Sistem.Cizgiler[4].Aciklama = "MA60 dk" ;
for (int i = 10; i<Sistem.BarSayisi; i++)
{
if ( MA1[i] > MA2[i] && MA2[i] > MA3[i] && SonYon != "A" )
{Sistem.Yon[i] = "A" ; SonYon = "A" ;}
else
if (MA1[i] < MA2[i] && MA2[i] < MA3[i] && SonYon != "S" )
{ Sistem.Yon[i] = "S" ; SonYon = "S" ; }
}
if (Sistem.Periyot != "60") Sistem.Mesaj(" 60 dk Grafik açın");
Cevaplar icin cok sagolun Bear_Bull ve Sonli,
1-i degiskenini 10 dan itibaren artirarak tanimlamanizin sebebi 10 luk ho dan artirarak gitmesi degil mi?
2-bu kodu yazdiktan sonra aciklama ve parametreler tablosunda bir islem yapmam gerekiyor mu?
3-Hata kodlarindan hatanin hangi satirda oldugunu anlayabilirmiyiz?
4-eger ekranimizda 60 dakikalik islem yapacagimiz hissenin ekrani yoksa otomatik olarak actirabilirmiyiz? yoksa kodu calistirmadan once islem yapmamiz gereken hissenin grafigi acik mi kalmali?
Tesekkurler....