Anlık veri geliyor ama grafiklerde herhangi bir değişim yok.
Derinlik penceresinde gerçekleşen emirler de görünmüyor. Sadece fiyat penceresinde fiyat değişimleri var o kadar.
Aynı sorunu yaşayan var mı acaba ?
Printable View
Anlık veri geliyor ama grafiklerde herhangi bir değişim yok.
Derinlik penceresinde gerçekleşen emirler de görünmüyor. Sadece fiyat penceresinde fiyat değişimleri var o kadar.
Aynı sorunu yaşayan var mı acaba ?
Ayni sorun bendede var , ideali arayan oldu mu?
Sorun giderildi. Emeği geçenlere teşekkürler. Bol kazançlar.
düzeldi...
düzeldi de piyasa çok yavaş , bişey mi oluyo , haberlere de bakmadım , fikir varmı
Eksik datası olan varmı
Grafik verilerini alamiyorum hala 2 3 bar geldi ama canli degil donuk duruyo su anda
Tam olarak duzeldimi sizde
1dk barlar ilerliyor ama çok az işlem yapılıyor gözüyor.
5 dk.da 9.30 bari yok.
LG-D855 cihazımdan hisse.net mobile app kullanarak gönderildi.
şu anda normal görünüyor
Sistem.SorguBaslik[0] = "Kapanış";
Sistem.SorguBaslik[1] = "MA500";
var MA500 = Sistem.MA(500, "Exp", "Kapanis");
var SonMA500 = MA500[Sistem.BarSayisi-1];
var C = Sistem.GrafikFiyatOku(Sistem.GrafikVerileri, "Kapanis");
{
if (Sistem.YukariKestiyse(C,MA500) || Sistem.AsagiKestiyse(C,MA500))
{
Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Close;
Sistem.SorguDeger[1] = SonMA500;
if (Sistem.YukariKestiyse(C,MA500))
Sistem.SorguAciklama = "Yukarı Kesti";
else if (Sistem.AsagiKestiyse(C,MA500))
Sistem.SorguAciklama = "Aşağı Kesti";
Sistem.SorguEkle();
}
}
http://i.hizliresim.com/69JAPk.jpg
Bu kod ve çıktısı yukarıdaki gibi ama yanlış sonuç döndürdü sorun ne olabilir.
Arkadaslar bar olusmadan emir gondermek istemiyorum ama sinyal olusur olusmaz gonderiyor.
Sinyal gonderimini nasil bar olususmu bittigi anda gonderebiliriz.
Yani 5dk bar olusupta yeni bir 5 dk dilimine girilmis ise.
yani diyelim 10:00 bar baslangici 10:02 de sinyal oretildi. Simdi bar sonuna kadar beklicaz yani sinyali 10:05 te gondercez.
Bunun kodu nedir?
Portföy penceresine Kz(Kap) sanırım bar kapanışına göre kar zarar hesaplayan bölüm gelmiş.
Robot kodu olarak lazim bana.
Ordaki bilgi olarak vardir.
daha sanalda deniyorum.
if ( (ciz == 1) )
{
if (Pozisyon == 0)
{
var Miktar = 1;
Sistem.PozisyonKontrolGuncelle(Sembol, Miktar);
Sistem.EmirSembol = Sembol;
Sistem.EmirIslem = "Alış";
Sistem.EmirMiktari = Miktar;
// Sistem.EmirFiyati = "Aktif";
Sistem.EmirFiyati = fiyatt;
Sistem.EmirSuresi = "SEANS"; // SEANS, GUN
Sistem.EmirTipi = "NORMAL"; // NORMAL, KIE, KPY, AFE/KAFE
Sistem.EmirGonder();
}
}
ciz 1 oldumu sinyal hemen iletiliyor. Sanaldami boyle sadece. Gercekte daha denemedim hic.
Gercek her zaman bar sonundami sinyal gonderiyor. ayari varmi bir yerden
anlık olarak data almıyorsanız dde aktarımda alamazsınız.
http://badgs.webege.com/20170405193048.png
Anlik olarak almak istiyorum. Su var ki DDE servira DDE client ile balanmam icin veri ayari gerek.
mesela resimdeki DDE client ayarlari bunun gibi bilgiler gerekiyor....
http://imgur.com/a/HFPsU
Anlatabildinizmi soruyu? Yada ne yaptiysaniz bilerek yaptiginiza emin misiniz?Saatlik barlarda calisan ve saatlik periyodu kullanan kod bar icinde sinyali uretir ve kapanmis barda sinyal varsa sonraki saatlik bar acilisinda emir gonderir. Normali budur. Farkli bir durumdan bahsediyorsaniz daha aciklayici şeyler yazmaniz lazim.
ciz[i-2] ise yarar.Malesef ben ciz verisini dosyadan okutuyorum. Yani gecmise donuk bilgi icermiyor. Robot sonlanip yeniden calistiginda onceki ciz diye bir veri olmuyor. Robot ise her 1 saniye veya daha az bir surede tekrarlaniyor.
Bu durumda nasil bir cozum olur?
Matriksate var onun ayari mesela sinyal olustugunda veya bar tamamlandiginda gonderiyor sinyali. Ancak idealde boyle bir ayar yok. Bu sebeple sinyal olusumunda hemen gonderiyor.
Normalde barin olusumunu beklemiyor. Sizin robot bekliyorsa kod olarak eklenmistir. veri[i-2] kullanilabilir tabi liste ideal verileri kullanirakat uretiliyorsa. ben ciz verisini text dosyasindan okutuyorum. Bu durumda cozum nasil olur?
kısa cevap o veriyi aldığınız diğer sistem yada dosyada kullanılan veriyi değiştirmek gerekir.
buradaki çoğunluk bar bitiminde emir yollama şeklinde çalıştığı için ideal tek satırlı robotla çözüm üretmişti , onu deneyebilirsiniz. muhtemelen matriksteki karşılığı o
ideal çok esnek, kendi yazılınıza istediğinizi yaptırmanız da çok sorun değil aslında
ama temel kural yazdığınız robotu ikna olduğunuz backtestin mantığıyla çalıştırmak en doğrusu, backtestte hesaplama bar kapanışından yapılmışsa tek satırlık robot uygun , belli bir seviyede aktif olan şartlı emir mantığıyla backtest yapıldıysa i-2 den veri almak uygun
Arkadaslar sirf bendemi boyle bilmiyorum.
Hem idealde hemde matrikse veriler gelmiyor zamaninda. Mesela bugun banvit 5dk grafikte 11.40 son veri su an 12. oldu veri yoktu .Simdi geldi.20 dakika boyunca yoktu verisi. Bunu diger hisselerde gozledim.
Bunun sebebi nedir acaba. ideal yada matriksle alakali oldugunu sanmiyorum. Imkb verileri geciktiriyormu acaba.
Simdide UTPYA(utopya tur insaat) en son verisi 12:15 de. Su anki saat 12:26 hala veri yok.
Ben 5dk likta robot calistirmayi dusunuyorum ama veriler eksik hem idealde hem matrikste ayni olay.
Sizdede oylemi , kontrol edebilecek varmi . Bunun sebebi nedir bilen varmi
Demek ki islem olmamis?
LG-D855 cihazımdan hisse.net mobile app kullanarak gönderildi.
Sn Keçi, size özelden ulaşamadım özel mesajları kapamışınız sanırım.
bana ulaşabilirmisiniz teşekkürler.
grafik ekraninda, sag tus periyot secim tablosunu grafigin ust bilgi cubuguna attigimiz gibi,
fare tekerligi, ileri geri, sikistirma opsiyonlari da ayni cubuga atma imkani var midir, ileriki versiyonlarda konsa fena olmaz sanki .?
daha once rsi icin, soyle bir formulverilmisti,
bunun gibi,
bir gun onceki "gunun" atr degerini "bes dakikalik" grafikte kullanmak istiyorum, repaint yapmadan nasil yazilabilir acaba.
--
var V = Sistem.GrafikVerileri;
var PrevGunC = new List<float>();
var GunTarih = new List<string>();
for (int i = 1; i < V.Count; i++)
{
if (V[i].Date.Day != V[i - 1].Date.Day)
{
PrevGunC.Add(V[i - 1].Close);
GunTarih.Add(V[i].Date.ToString("yyyyMMdd"));
}
}
var PrevGunRSI = Sistem.RSI(PrevGunC, 20);
var RSI = Sistem.Liste(0);
var StartPos = 0;
for (int i = 1; i < V.Count; i++)
{
for (int j = StartPos; j < PrevGunRSI.Count; j++)
{
if (V[i].Date.ToString("yyyyMMdd") == GunTarih[j])
{
RSI[i] = PrevGunRSI[j];
StartPos = j;
break;
}
}
}
// RSI listesi önceki günün değeridir.
//intraday grafiklerde repaint olmadan döngü içinde kullanılabilir.
Sistem.Cizgiler[0].Deger = RSI;
FORMULDE NEREDE HATA YAPIYORUM?
RSI 10 PERIYOT -->25'i kesince o barın acılış ve kapanısının cizgilerini çekmek istiyorum. (rsi alt bolge diye adlandırdıgım bolgeye. bu bolgenin 2 cizgisi var. altbolgeninaltcizgisi=açılıs altbolgeninustcizgisi=kapanıs
RSI 10 PERIYOT -->50'i kesince o barın acılış ve kapanısının cizgilerini çekmek istiyorum. (rsi orta bolge diye adlandırdıgım bolgeye. bu bolgenin 2 cizgisi var. altcizgisi=açılıs ustcizgisi=kapanıs
RSI 10 PERIYOT -->80'i kesince o barın acılış ve kapanısının cizgilerini çekmek istiyorum. (rsi ust bolge diye adlandırdıgım bolgeye. bu bolgenin 2 cizgisi var. altcizgisi=açılıs ustcizgisi=kapanıs
parametreleri giriyorum. 10 25 50 80
6 cizgiyi aktif ediyorum.
çizgiler sıfır GOSTERİYOR
FORMUL
var Veriler =Sistem.GrafikVerileri ;
var C = Sistem.GrafikFiyatOku(V , "Kapanis") ;
var O = Sistem.GrafikFiyatOku(V , "Acilis") ;
var BarSayisi = Veriler.Count;
var Rsiperiyot = Sistem.Parametreler[0];
var Rsialtbolge = Sistem.Parametreler[1];
var Rsiortabolge= Sistem.Parametreler[2];
var Rsiustbolge= Sistem.Parametreler[3];
var RSI = Sistem.RSI(Rsiperiyot);
var Rsialtbolgeninaltcizgisi = Sistem.Liste(0);
var Rsialtbolgeninustcizgisi = Sistem.Liste(0);
var Rsiortabolgeninaltcizgisi = Sistem.Liste(0);
var Rsialtbolgeninustcizgisi = Sistem.Liste(0);
var Rsiustbolgeninaltcizgisi = Sistem.Liste(0);
var Rsiustbolgeninustcizgisi = Sistem.Liste(0);
for (int i = 1; i < BarSayisi; i++)
if (Sistem.YukariKestiyse(RSI, Rsialtbolge)
{
Rsialtbolgeninaltcizgisi[i]= O[i];
Rsialtbolgeninustcizgisi[i]= C[i];
}
if (Sistem.YukariKestiyse(RSI, Rsiortabolge)
{
Rsiortabolgeninaltcizgisi[i]= O[i];
Rsialtbolgeninustcizgisi[i]= C[i];
}
if (Sistem.YukariKestiyse(RSI, Rsiustbolge)
{
Rsialtbolgeninaltcizgisi[i]= O[i];
Rsialtbolgeninustcizgisi[i]= C[i];
}
Sistem.Cizgiler[0].Deger = Rsiustbolgeninaltcizgisi[i] ;
Sistem.Cizgiler[1].Deger = Rsiustbolgeninustcizgisi[i] ;
Sistem.Cizgiler[2].Deger = Rsiortabolgeninaltcizgisi[i] ;
Sistem.Cizgiler[3].Deger = Rsiortabolgeninustcizgisi[i] ;
Sistem.Cizgiler[4].Deger = Rsialtbolgeninaltcizgisi[i] ;
Sistem.Cizgiler[5].Deger = Rsialtbolgeninustcizgisi[i] ;
HATA mesajı bu
c:\Users\ASUS\AppData\Local\Temp\aa4u5otq.0.cs(34, 44) : error CS1026: ) bekleniyor
c:\Users\ASUS\AppData\Local\Temp\aa4u5otq.0.cs(39, 45) : error CS1026: ) bekleniyor
c:\Users\ASUS\AppData\Local\Temp\aa4u5otq.0.cs(44, 44) : error CS1026: ) bekleniyor