Bir hissenin önceki günkü kapanışını bilgi olarak hangi metodlarla çekebilirim.
Printable View
Bir hissenin önceki günkü kapanışını bilgi olarak hangi metodlarla çekebilirim.
http://www.directfn.com.tr/sistemler/
Tabloya çekmekse amacınız. AylikGetiriTablosu
Grafik üzerinde göstermekse ZemineVeriYazmak bunlardan yararlanabilirsiniz.
Merhaba,
Pozisyona girdikten sonra "x puan karda isem" veya "x puan zararda isem" koşullarına göre al-sat yapmayı nasıl tanımlayabilirim? Örnek bir kod paylaşmanız mümkün mü?
M2007J20CG cihazımdan Tapatalk kullanılarak gönderildi
merhaba , bu kodu nasıl yazabilirim? x=c+h+l/3; f:=Mov(x,5,VOL);
Cevap için çok teşekkür ederim.
kod bu şekilde belki kullanan olur, matriksten çevirdim.
var V =Sistem.GrafikVerileri ;
var C = Sistem.GrafikFiyatOku(V, "Kapanis") ;
var H = Sistem.GrafikFiyatOku(V, "Yuksek") ;
var L = Sistem.GrafikFiyatOku(V, "Dusuk") ;
var O = Sistem.GrafikFiyatOku(V, "Acilis") ;
var ohlc = Sistem.GrafikFiyatSec("OHLC/4");
var x = Sistem.Liste(0);
for (var i=1; i<V.Count;i++)
{
x[i] = (5*ohlc[i])/5;
}
var vol=Sistem.Volume();
var ma1 = Sistem.MA(x, "Volume", 10);
var ma2 = Sistem.MA(x, "Volume", 15);
var ma3 = Sistem.MA(x, "Volume", 18);
var x1 = Sistem.Liste(0);
for (var i=1; i<V.Count;i++)
{
x1[i] = (ma1[i]+ma2[i]+ma3[i])/3;
}
var ma4 = Sistem.MA(x, "Volume", 20);
var ma5 = Sistem.MA(x, "Volume", 22);
var ma6 = Sistem.MA(x, "Volume", 24);
var x2 = Sistem.Liste(0);
for (var i=1; i<V.Count;i++)
{
x2[i] = (ma4[i]+ma5[i]+ma6[i])/3;
}
var x3 = Sistem.Liste(0);
for (var i=1; i<V.Count;i++)
{
x3[i] = (x1[i]+x2[i])/2;
}
Sistem.Cizgiler[0].Deger = x3;
merhaba, bu kodu nasıl yazabilirim.
y=rsi(14);
x:= ROC(C,1,$);
Z:=Wilders(If(x>0,x,0),y);
ideal datada , robot yazarken , tahtada şu kadar lot alıcı varsa veya şu kadar lot satıcı veya son 30 saniyede bekleyen kademede şu kadar emir silindiyse , işlemi yap veya iptal et gibi emir girilebiliyor mu ? yani tahtadaki lotları okuyabiliyor mu algoritma
ideal Algo kodları Visual Studio kod editörü ile nasıl birlikte kullanabilirim.eklentisi vb var mı?
visual studyoyu kullanırken ideal içindeki kullanılabilecek tüm değişkenleri nasıl okuyabilirim deseydiniz anlarlardı sanırım. :)
al sat sinyalini kesişme ile sağladıysak bunu nasıl filtreleyebiliriz?
örnek
Sistem.KesismeTara(MA, MA1); bu kesişmenin verdiği al sat sinyallerine
ADX[i]>ADXMA[i] filtresini nasıl ekleyebiliriz?
"KesismeTara" kendi içinde döngü yaratarak sinyal üretiyor içerisine müdahale edemezsiniz, kendi döngünüz ile filtreleme yapmalısınız.
Örnek:
PHP Code:
var MA1 = Sistem.MA(10,"Simple","Kapanis");
var MA2 = Sistem.MA(30,"Simple","Kapanis");
var ADX = Sistem.ADX(150);
var ADXMA = Sistem.MA(ADX, "Simple", 10);
var Sinyal = "";
var SonYon = "";
for (int i = 50; i < Sistem.BarSayisi; i++)
{
if (ADX[i] > ADXMA[i])
{
if (MA1[i] > MA2[i] && MA1[i - 1] <= MA2[i - 1]) Sinyal = "A";
if (MA1[i] < MA2[i] && MA1[i - 1] >= MA2[i - 1]) Sinyal = "S";
}
else
{
Sinyal = "F";
}
if (Sinyal != "" && SonYon != Sinyal)
{
Sistem.Yon[i] = Sinyal;
SonYon = Sinyal;
}
}
Sistem.GetiriHesapla("01/01/2000", "0.00");
Sistem.Cizgiler[0].Deger = MA1;
Sistem.Cizgiler[1].Deger = MA2;
Sistem.Cizgiler[2].Deger = ADX;
Sistem.Cizgiler[3].Deger = ADXMA;
Sistem.Cizgiler[4].Deger = Sistem.GetiriKZ;
//Period := Input("Period",1,10000,3);
//If(Cum(1) <= Period, CLOSE, PREV + sc*(CLOSE - PREV))
bu kodu nasıl yazabilirim?
Matriks ekranım yok o yüzden metastockta denemedim kendiniz test edin.
PHP Code:
var C = Sistem.GrafikFiyatSec("Kapanis");
var periyod = 10;
var sc = 1.2f;
var ind = Sistem.Liste(0);
for (int i = 0; i < Sistem.BarSayisi; i++)
ind[i] = periyod >= i ? C[i] : ind[i-1] + sc*(C[i] - ind[i-1]);
Sistem.Cizgiler[0].Deger = ind;
cevabınız için çok teşekkür ederim.
Merhabalar,
Aşağıdaki kodu ideale çevirebilir miyiz? Yardımcı olursanız memnun olurum.
MOV(C,30,VAR)-(MOV(C,30,VAR)-MOV(C,30*MOV(C,1000,VAR),VAR)) + MOV(C,1000,VAR);
OTT(MOV(C,30,VAR)-(MOV(C,30,VAR)-MOV(C,30*MOV(C,1000,VAR),VAR))+MOV(C,1000,VAR),2,1 )
Ekrana aşağıdaki gibi bir tablo çizdirmek istiyorum
Bu tabloyu dakikada bir temizleyip tekrar doldurmak istiyorum
Aşağıdaki kod sanırım loopa giriyor, tabloyu ekranda göstermiyor, ideal kitleniyor
Sorun ne olabilir
Not: kodu "Formül Test" ile deniyorum
PHP Code:
while(true){
int SatirSayisi=52;
int SutunSayisi=10;
var sembols = new string[] {
"AKBNK", "ALKIM", "ARCLK", "ASELS", "BIMAS", "DOHOL", "EKGYO", "ENJSA", "EREGL", "FROTO",
"HALKB", "HEKTS", "ISCTR", "ISFIN", "ISGYO", "KARSN", "KCHOL", "KOZAA", "KOZAL", "KRDMD", "MGROS",
"ODAS", "OYAKC", "PETKM", "PGSUS", "SAHOL", "SOKM", "TAVHL", "THYAO", "TKFEN",
"TOASO", "TRGYO", "TTKOM", "TUPRS", "TURSG", "ULKER", "VAKBN", "VESTL", "YKBNK" };
// Tablo Yarat
string TabloAd = "Arbitraj"; //İSİM VER
var SutunGenislik = new int[10] { 80, 60, 60, 50, 50, 60, 60, 50, 50, 30}; //SÜTUN SAYISI VE SÜTUN GENİŞLİKLERİ
var SutunHizala = new int[10] { 1, 1, 1, 1,1,1, 1, 1,1,1}; //HİZALAMA (1=ORTALA)
var SutunBaslik = new string[10] { "x", "x", "x","x","%x", "x", "x","x","%x","x" }; //BAŞLIKLAR
//Tablo( TabloAdi, Sol, Sag, Genislik, Yukseklik, SutunSayisi, SatirSayisi, SutunGenislik, SutunHizala, SutunBaslik, BaslikGorunur, FontBuyukluk)
Sistem.Tablo(TabloAd, 505, 100, 585, 860, SutunSayisi, sembols.Length, SutunGenislik, SutunHizala, SutunBaslik, 1, 10); //TABLOYU EKRANA GETİR
int eklenen=0;
for (int i = 0; i < sembols.Length ; i++)
{
var sembol = sembols[i];
var sembolH = "IMKBH'"+sembol ;
var sembolV = "VIP'F_"+sembol+"0522";
//TabloYazdir(TabloAdi, Sutun, Satir, Metin, ZeminRenk, YaziRenk)
var darkGreen=Color.Green;
Sistem.TabloYazdir(TabloAd, 0, eklenen, sembol , darkGreen, Color.White);
Sistem.TabloYazdir(TabloAd, 1, eklenen, "x", darkGreen, Color.White);
Sistem.TabloYazdir(TabloAd, 2, eklenen, "x" , darkGreen, Color.White);
Sistem.TabloYazdir(TabloAd, 3, eklenen, "x", darkGreen, Color.White);
Sistem.TabloYazdir(TabloAd, 4, eklenen, "x" , darkGreen, Color.Blue);
Sistem.TabloYazdir(TabloAd, 5, eklenen, "x", darkGreen, Color.White);
Sistem.TabloYazdir(TabloAd, 6, eklenen, "x" , darkGreen, Color.White);
Sistem.TabloYazdir(TabloAd, 7, eklenen, "x", darkGreen, Color.White);
Sistem.TabloYazdir(TabloAd, 8, eklenen, "x" , darkGreen, Color.Blue);
Sistem.TabloYazdir(TabloAd, 9, eklenen, "x", darkGreen, Color.White);
eklenen++;
}
System.Threading.Thread.Sleep(60000);
Sistem.TabloTemizle(TabloAd);
}
// System.Threading.Thread.Sleep(60000);
yerine
if (Sistem.ZamanKontrolSaniye("arbitraj") >= 60)
{ // ZamanKontrolSaniye
///
///
///sisteminiz
///
///
}
tablo yemizlemeyide
Sistem.Tablo(TabloAd, 505, 100, 585, 860, SutunSayisi, sembols.Length, SutunGenislik, SutunHizala, SutunBaslik, 1, 10); //TABLOYU EKRANA GETİR
Sistem.TabloTemizle(TabloAd);
şu şekilde yazarsanız bilgisayarı kilitlemez.
System.Threading ile 60 saniye bilgisayarı işlemez duruma getiren sizsiniz.
test değilde GERÇEK yada SANAL çalıştırılsa ideal o zaman patlar.
yazdığınız kodun
tablo temizleme yer değiştirilmiş ve System.Threading kapatılmış görüntüsü
https://imgyukle.com/f/2022/05/19/RZRZao.png
https://imgyukle.com/f/2022/05/19/RZRZao.png
Sonli hocam, Anıl Özekşi OTT indikatörünü farklı bir şekilde ( size yazdığım gibi) kullanarak ROTT isimli bir indikatör çıkardı. Hata varsa da matriks yada formülde onu anlayacak bilgide malesef değilim :( matematiksel olarak evet bana da tuhaf geldi :)
Şimdi baktım, Anıl Bey de "..formülden bazı yerleri çıkarırken fark etmediğini belirtmiş..".. Yorumlarda birisi de *2 olması çok birşey değiştirmedi yazmış..
https://twitter.com/Anil_Ozeksi/stat...edtZExstTBjYFg
bu formül Sistem.EnCokTekrar fonksiyonunun formülü.;
bunu farklı amaç için kullanmaya çalışıyorum , Str kısmını zemin yazısı olarak yazdırabiliyorum .
Str de elde ettiğim rakamları çizgi olarak çizdirmek istiyorum .
bir de eğer mümkünse kapanışa %10 yakınsa çizdirilsin şeklinde şart ekleyebilirsek çok memnun olurum çok teşekkür ederim .
2 gündür uğrasıyorum :(
var V = Sistem.GrafikVerileri;
var H = Sistem.GrafikFiyatSec("Yuksek");
var Tekrarlar = new SortedDictionary();
for (int i = V.Count-1000; i < V.Count; i++) // v.count-1000 den başlamak son 1000 bar demektir.
{ float Fiyat = H[i];
int Defa = 0;
if (Tekrarlar.ContainsKey(Fiyat)) Defa = Tekrarlar[Fiyat];
Defa++; Tekrarlar[Fiyat] = Defa; }
var Str = string.****("\r\n", Tekrarlar.Select(x => x.Key.ToString("0.00") + "\t " + x.Value.ToString()).ToList()); Sistem.Mesaj(Str);
yardımcı olabilecek varsa çok sevinirim :(
Ne yapmak istediğinizi anlamasam da kodu çalışır hale getirdim.
*** lı yer "J\oin" olacakPHP Code:
var V = Sistem.GrafikVerileri;
var H = Sistem.GrafikFiyatSec("Yuksek");
var Tekrarlar = new SortedDictionary<float,int>();
for (int i = V.Count - 1000; i < V.Count; i++)
{
float Fiyat = H[i];
if (Tekrarlar.ContainsKey(Fiyat))
Tekrarlar[Fiyat] += 1;
else
Tekrarlar[Fiyat] = 1;
}
var Str = (Tekrarlar.Select(x => x.Key.ToString("0.00") + "\t " + x.Value.ToString()).ToList());
Sistem.Mesaj(string.****("\r\n", Str.GetRange(0,15)));
merhaba iyi akşamlar.
İdeal'de bir hissenin bist100 karşısındaki relatif getirisini gösteren bir indikatör yaratmak istiyorum. Matriks formülü şu şekilde çalışıyordu:
aa:=C;
b:=Security("xu100",C);
cc:=aa/b;
cc
Bu konuda yardımcı olursanız memnun olurum. tşk
Tam istediğiniz şey değil ama son x bar için şöyle bir şey yazmıştım daha önce https://www.hisse.net/topluluk/showthread.php?p=3043842
Kodu güncelledim:
Geldik, gidiyoruz..PHP Code:
//verilen periyotta yüzdesel hisse fiyatı ile xu100 değişimi
int p = 240;
var C = Sistem.GrafikFiyatSec("Kapanis");
var Veriler1 = Sistem.GrafikVerileri;
var w=Sistem.BarSayisi-1;
var Veriler2 = Sistem.GrafikVerileriniOku("IMKBX'XU100", Sistem.Periyot);
Veriler2 = Sistem.GrafikVerilerindeTarihHizala(Veriler1, Veriler2);
var X = Sistem.GrafikFiyatOku(Veriler2 , "Kapanis");
var a = Sistem.Liste(0);
var b = Sistem.Liste(0);
var c = Sistem.Liste(0);
for (int i = p; i < Sistem.BarSayisi; i++){
a[i] = 100*(C[i]-C[i-p])/C[i-p];
b[i] = 100*(X[i]-X[i-p])/X[i-p];
c[i] = a[i]-b[i];
}
Sistem.Cizgiler[0].Deger = a;
Sistem.Cizgiler[0].Aciklama = Sistem.Sembol;
Sistem.Cizgiler[1].Deger = b;
Sistem.Cizgiler[2].Deger = c;
Sistem.Cizgiler[3].Deger = 0;
İdeal Arbitraj örnek bir kod yazımı/dizimi nasıl bişidir?