Teşekürler hocam
Printable View
Teşekürler hocam
ideal'in arbitraj modülünü kullanabilmek için neleri satın almalıyız? hem veri terminalini hem de roboto mu satın almamız gerek?
Merhaba,
Bu fonksiyonların tam olarak ne işe yaradığını bilen var mı ?
Sistem.SayiTablosunuGuncelle()
Sistem.SayiTablosunuOku()
Sistem.SozcukTablosunuGuncelle();
Sistem.SozcukTablosunuOku();
Sayın kenten cevap için teşekkürler.
Peki tam olarak bu aşağıdaki kodda anlamadığım noktalar var bunlar hakkında bilgilendirme yapabilir misiniz.
Bu kodu idealin yardım sayfasından aldım
PHP Code:
var Senet = "ASELS";
var Miktar = 1;
var Anahtar = Sistem.Name + DateTime.Now.Date.ToString("yyyyMMdd");
var TradeID = Sistem.SayiTablosunuOku(Anahtar); // burada guncelle yapmadan nasıl sayi tablosunu okuyoruz ? Önce güncelle yapmamız gerekmiyor mu ? //anahtar değişkeninin değerini ne zaman yazdırdıkki okumaya başladık ?
//sayı tablosunda daha önce bu değişkenin değeri ne zaman yazıldı ?
var Emirler = Sistem.HisseIslemleriniOku(TradeID); // Bu kodda hisse işlemlerini istediğimiz bir aralıkta okumamızımı sağlıyor?
var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar+Senet);
if (TradeID > 0 && Emirler.Count > 0)
{
foreach (var item in Emirler)
{
if (item.Symbol == Senet && (item.BuyerCode == "CIM"))
{
Sistem.PozisyonKontrolGuncelle(Anahtar+Senet, Pozisyon+Miktar);
Sistem.EmirSembol = "IMKBH'"+Senet;
Sistem.EmirIslem = "Alış";
Sistem.EmirMiktari = (int)Miktar;
Sistem.EmirSuresi = "KIE";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirGonder();
}
}
}
TradeID = Emirler[Emirler.Count - 1].TradeID;
Sistem.SayiTablosunuGuncelle(Anahtar, TradeID);
https://resimyukle.io/r/O2iwyz3c4Q
ilk turda boş geliyor, ilk turdan sonra liste doluyor.
ile listenin boş olduğu yada emir olmadığı durumda emir blokuna girmiyorKod:if (TradeID > 0 && Emirler.Count > 0)
son satırda da sayı tablosu dolduruluyor.
ama kodu genel olarak anlamadım , her dönüşte 1 adet ASELS alıyor gibi, her saniye emir iletimiyle falan 10 kere dönse aynı gün ya herru ya merru olur
edit: şimdi baktım örneğe her citibank işleminde 1 lot almak üzerine kurulmuş"&& (item.BuyerCode == "CIM")". Bariz eğitim amaçlı
kolay gelsin.
K1:=VALUEWHEN(20.,L>REF(L,-1),REF(L,-1));
K1
formülünü nasıl cizdirebilirim. teşekkürler.
mesela ben nasıl kullanıyorum onu örnek vereyim
risk yönetiminde kullanmak üzere 2-3 grafiğin günlük datasını çekip RSI vs hesaplatıyorum.
bunu her turda yaparsam data alımı hesaplamalar derken vakit kaybedecek, bunun için sabah ilk çalışmasında bu hesaplamaları yapıp sayı tablosuna atıyorum , gün boyunca sayı tablosundan okuyup kullanıyorum. günde sadece 1 kere hesaplanmış oluyor.
Bu fonksiyonda işlemlerin tamamını okumamıza gerek yok sanırım. Fonksiyona bir ID gönderiyoruz ve o ID den sonrasını okuyor fakat bu ornekte "Anahtar" dediği kısmı hala anlamadım,
var Anahtar = Sistem.Name + DateTime.Now.Date.ToString("yyyyMMdd");
var TradeID = Sistem.SayiTablosunuOku(Anahtar);
Bunun anlamı bu değil mi ? Anahtar = tradekurumlar20220913
ve bu TradeID değeri nasıl oluyorda var Emirler = Sistem.HisseIslemleriniOku(TradeID); değerine uyuyor ?
iyice kafam karıştı.
bu Sistem.SayiTablosunuOku() fonsiyonundaki sayi tablosu ile Sistem.HisseIslemleriniOku(TradeID) fonsiyonundaki TradeID değeri aynı mı ?
TradeID = Emirler[Emirler.Count - 1].TradeID;
Sistem.SayiTablosunuGuncelle(Anahtar, TradeID);
bu kısımla her dönüşte okuduğu son tradeid yi sayıtablosuna atıyor , tekrar tekrar emir vermemek için
anahtar dediği gün detayı , önceki günün işlemleriyle karıştırmamak için
-günün işlemlerini alıyor
-en son kaldığı yerden işlemleri listeliyor
-listedeki her CITI emir için kendiside emir veriyor
-en son kaldığı yeri işaretleyip sonraki tura geöiyor
umarım eğitim amaçlı düzenleyeceksiniz. adet ayrımı yapmıyor kendi sermayesini kontrol etmiyor , hedef miktar fiyat falan yok satmıyor
çok hızlı batırır
elimde macd benzeri bir indikatör var ona fibo çizdirmek istiyorum. buna benzer bir kod daha önce paylaşıldı mı? elinde olan varsa paylaşabilir mi?
Bunu deneyin.
PHP Code:
var l = Sistem.GrafikFiyatSec("Dusuk");
var vw = Sistem.Liste(0);
var lookBack = 20;
var que = new Queue<int>();
for (int i = 1; i < l.Count; i++)
{
if (l[i] > l[i - 1])
{
que.Enqueue(i);
if (que.Count >= lookBack)
vw[i] = l[que.Dequeue() - 1];
}
else
{
vw[i] = vw[i - 1];
}
}
Sistem.Cizgiler[0].Deger = vw;
Sistem.Cizgiler[0].Aciklama = "ValueWhen";
merhaba,
eski gönderilerden, keçi'nin linkteki https://www.hisse.net/topluluk/showt...394#post205394 yaptığı paylaşımdaki formasyonlara ait dosya elinde olup da gönderebilecek olan var mı?
Telefondan el ile endeks kontrat ceviriyorum günde 30-40 adet arası olduğu günler oluyor yıllardır burda bu soruyu sorar dururum
Evet pozisyonu telefondan açmak istiyorum fakat pozisyonumu açtığımda bunu kapatma kısmını bilgisayarın yani robotun yapmasını istiyorum yani pozisyonu görecek her 200 puanın 100 puanını izleyerek maksimum 1000 puanda kar al yapacak örneğinde olduğu gibi bir robot 🤖 yokmudur olamaz mı halen yapılmamışmıdır kör olacağım yoksa yakında yada beynim yanacak
Merhaba, bende ideal almak istiyorum; kafamda bir al sat sistemim var bu sistemi idealgo olmadan kod olarak yazıp robot ile otomatik işlem yaptırabilir miyim?
sanal çalışıyor ancak gerçek yapınca robot lisansınız bulunmamaktadır diyor :)
Olabilir ama aracı kurum taraflı okuma yapılması gerektiğinden risklidir, aracı kurumdan veri alamadığı durumda büyük zarara uğrayabilirsiniz. Ayrıca hesap okuma fonksiyonunda bazı aracı kurumlar arada dönüş vermeyebiliyor, mesela şu an döndürse de daha önce bir ara Global den dönmüyordu veri.. https://idealdata.com.tr/downloads/i...istemGenel.pdf sayfa 188 VIOP Hesap Oku - Sistem. ViopHesapOku() Bu arada ben viop yapmadığımdan bu fonksiyonun spot kısmını kulllanmışlığım var sadece..
Alternatif yol olarak; kullandığım kurumlardan Osmanlı da Özel Emirler, Trive da Gelişmiş Emirler var.. İkisinde de ideal,matriks vs gerekmeksizin hareketli(izsüren) veya sabit zarar durdur-kar al emri verebilirsiniz; oran veya puan bazlı.. Bunu alım emrini verirken belirleyebileceğiniz gibi, elinizdeki hisse/sözleşme için de yapabilirsiniz.. Tabi kurumlardan bu emirleri kullanırken sistemden kaynaklanabilecek gerçekleşmeme ihtimallerini de kabul etmiş sayılırsınız; mesela "çat" diye bir basma olduğunda -kendi robotunuzda da olabileceği gibi- epey kayma olabilir..
Piyasasın son günlerdeki hali malumunuz. Bazı durumlarda robot ile gerçek hesabın pozisyonu farklı olabiliyor. Bu durumda elle düzeltme yapmak gerekiyor.
Bu fonksiyonu kullanarak saat başı pozisyon kontrolü yaptıran kod bloğunu robotlarıma eklemeyi düşünüyordum. Sadece test amaçlı denemeler yaptım şimdiye kadar sorun tespit etmedim.
Bu şekilde tecrübe ettiğiniz mi? Nasıl problemlerle karşılaştınız?
Mesala bir kurumdan düzenli olarak hesap bilgisi alınırken HesapOku fonksiyonu anlık veya geçici süreyle boş mu dönmeye başladı yoksa belli kurumlarda bu fonksiyon hiç mi çalışmıyordu?
Hesap bilgisi kurumdan alınamayınca portoydeki miktar 0 mı görünüyordu?
Hocam aslında yazım -gördüğüm kadarıyla- sizin gibi kendi kodunu yazıp editleyebileceklerden ziyade "taşıma su" ile değirmen döndürenlere. Sonuçta siz oraya birçok olasılığa dair önlem satırları koyabilirsiniz, ya da yaşanan sıkıntıya anında müdahale edebilirsiniz ve en önemlisi riskinizi bilirsiniz. Kodlamaya hakim olmayan birçok kişi, robotta pas geçilmiş tek bir satırın(olasılığın) bile büyük sonuçları olabileceğinin farkında değil, ya da farkında olmak istemiyor :)
Belli kurumlarda bu fonksiyon dönemsel hiç çalışmıyordu, ayrıca sürekli istek halinde geçici aksaklık da olabiliyor(saat başı pozisyon kontrolü diyerek zaten düşünmüşsünüz). Kurum yanıt vermediğinde fonksiyon null dönüyor, dolayısıyla işi yapacak bölüm if (BistHesap != null){...} bloğunda oluyor.. Bu bloğa else {email,sms vs} ekleyebilirsiniz..
Ben sistemci değilim, arada grid, eğlence(:)), özel durumlar vs sebeple robot kullandığım oluyor. Dolayısıyla sistemci düzeniyle(full vardiya) kullanmadım. Bir arkadaşım 200-250 hisseye sistem çalıştırıyordu, arada aynen dediğiniz gibi gerçek hesap ile robot pozları arasında fark oluyormuş, bu kadar hissenin manuel kontrolü de zor. Tüm riskleri anlatıp bunun çözümüne dair bir şeyler yapmıştık, ama ben onun kodu düzenleme bilgisi olmadığından "robotla düzeltme işleminden ziyade sıkıntı olan hisseleri email veya ekrana baskı ile de kontrol edebilirsin" demiştim..
Sayın kenten belki daha sağlıklı bilgi verebilir; bu fonksiyonu ilk 2-3 yıl önce onun paylaştığı bir koddan test etmiştim..
Selam forumdaşlar, algoritmaya dayalı robotik işlemlere ilgi duymaya başladım. Spot ve viop işlemlerde tecrübesi olan biri için tavsiyeleriniz ne olur?
Benim çalıştığım üç aracı kurumun alt yapısında İdeal yok, hangi aracı kurumu tavsiye edersiniz?
İdeal bünyesindeki hazır sistemler ile ilgi tecrübe paylaşabilirseniz sevinirim.
Sistem trend çizgilerini dikkate alabiliyormu, bunun için bir yazılım varmı?
Şimdiden teşekkürler
Teşekkürler Sonli hocam.
Herhangi bir kodlama diline aşinalığınız varsa ideal platformu bar sayısı, hız, kodlama dilinin getirdiği imkanlar açısından kendi sisteminizi yaratmada çok büyük avantaja sahip. Tanıdığı geniş esneklik kontrol edilmesi gereken bir çok husus olması bakımından yük de getiriyor. Optimizasyon modülü maalesef zayıf. Ben çözüm olarak aynı kodu grafiğe atınca sistem, optimizasyon modülünde çalıştırınca 10 değişkene kadar optimizasyon yapacak şekilde dizayn ederek bu sorunu nispeten aştım. Hiç kodlama yapmadan idealgo modülü ile hazır sistemler optimize edilebiliyor.
Trend çizgisinden kastınız elle çizilmiş bir trend çizgisine emir bağlamak ise ben yapmadım ama yapıldığını biliyorum. Trend çizgilerini de kodlayarak çizdirmekten bahsediyorsanız bu orta düzeyin üstünde bilgi ve beceri gerektiriyor ama yapanlar var tabi.
İlginiz için teşekkür ederim. Maalesef hiç kodlama diline aşina değilim. İdeal C sharp kullanıyor, bende anca kısa yazılımları okuyabiliyorum. Bir yerden başlamaya karar verirsem, kendimi bu konuda geliştirebilirim, gerekirse yazılım için yardım alabilirim diye düşünüyorum.
Ben esasında indikatörlerlerle çok haşır neşir değilim, daha çok yatırımcı statüsündeyim ve temettü odaklıyım. Geçmiş verilerle geleceği tahmin etmek benim görüşüme göre zor. Merakım esasında İdeal platformunda kullanıcılar ideAlgo ve Paradise hazır sistemlerinde optimize edilmiş şekilde robotik performanstan memnun mu?
Evet elle çizilmiş trend çizgisinden bahsediyorum. Ben MA ve trend çizgileri ile piyasayı takip ediyorum, kulağa çok basit gelebilir ama less is more. Trend çizgisine emir bağlamak benim için önemli gözüküyor. Bu arada aracı kurumlarda aradığınız vasıflar hangileri?
Ben kodlama tarafında olduğum için kısa bir süre hariç hazır modülleri kullanmadım ve özellikle gelişime engel olur diye hazırdan uzak durdum, kullananlar yorumlarsa daha iyi olur. Aracı kurumda komisyon ve yüksek kaldıraç kullanılacaksa teminat durumlarını önemsiyorum.
Tabi bunlar 1 kerelik emirler, robot gibi döngüsel değil.. Ama zincir yapabilirsiniz.
https://youtu.be/pZF6FtNx2QM
Geldik, gidiyoruz..
Bakın o kadar ideal videosu izledim ama bunu kaçırmışım, teşekkürler. Zincir yapabilirsiniz derken bu trend cizgisini c shap içindede kullanabiliyorsam süper. Örneğin MA kesişmesi gerçekleşti alım yap, elle çizilen trendi aşağı kırdı sat ve dur gibi, tabi birde stoploss eklemek gerek herhalde.
Merhaba
Merhaba
Matriks formülü aşağıdaki gibi olan Anıl Özekşi'nin indikatörünü ideale çevirmeye çalıştım fakat farklı değerler elde ettim. Sanıyorum variable hesaplamasından olabilir ama farklı değerler olsa bile indikatördeki genel görüntü de farklı geldi. Bir yerde yanlış mı yapıyorum rica etsem kontrol edebilir misiniz?
//MATRIKS FORMÜLÜ
X1:=250;
X2:=200;
X3:=0.2;
STOSK(X1,X2,111,VAR)+1000;
OTT(STOSK(X1,X2,111,VAR)+1000,2,X3)
//İDEAL
int PD1 = 200;
int PD2 = 250;
int PD3 = 300;
int PD4 = 350;
float PD5 = 0.2f;
float PD6 = 0.3f;
float PD7 = 0.4f;
var STOSK1 = Sistem.StochasticSlow(PD2, PD1);
var STOSMA1 = Sistem.MA(STOSK1, "Variable", 111);
for (int i = 1; i < Sistem.BarSayisi; i++)
{
STOSMA1[i] += 1000;
}
var SOTT = Sistem.TTI(STOSMA1, 2, PD5, "Variable");
Bende bu var
var X1 = 200;
var X2 = 300;
var X3 = 1;
var STOSK = Sistem.MA(Sistem.StochasticFast(X1,1),"Variable",X 2);
var STOSD = Sistem.MA(STOSK, "Variable", 33);
var L1 = Sistem.Liste(0);
for ( int i = 1; i< Sistem.BarSayisi ; i++)
L1[i] = STOSK[i] + 1000;
var OTT = Sistem.TTI(L1,2,X3,"Simple");
Sistem.Cizgiler[0].Deger = L1;
Sistem.Cizgiler[1].Deger = OTT;
Sn.JordanBelfort,
Stosk'un MA sını alıp TTI ını hesaplatmışınız. Oysa doğrudan Stosk'a 1000 ekledikten sonra TTI 'sini almanız yeterli olacaktı.
Bir diğer husus ortalama türüyle ilgili.
StochasticSlow, StochasticFast'in ortalamasının alınmasından elde edilir. Matriks tarafında seçilen ortalama türü fast a uygulanan ise Sn.fasem'in attığı yöntem problemi çözecektir. Ideal tarafında ortalama türü sabit Exp görünüyor. Bende matriks olmadığından deneyemiyorum. Siz deneyip sonucu bildirin lütfen.
Merhabalar arkadaşlar , 5 barlık hareketli ortalamanın 20 yi kesmesiyle oluşan alım koşuluna, 20 nin 5 i kesmesiyle oluşan satım koşulu veya aldığı değerin %1.2 altına stop loss veya pozisyondan çıkmazsa ertesi gün saat 10.02 barında satış yapmasını isteyen bir kod yazmak istiyorum. Yardımcı olabilen olursa çok memnun oluruz.
bymehmet ve fasem teşekkür ederim, ilettiğiniz şekilde oldu.
Ana damara volatilite ve aşırı alım indikatörleri ile eklentiler yapmaya çalışıyorum. Ana amacım çok ani yükseliş ve düşüşlerde daha küçük parametreler ile yakından takip etmesi. Bunları bool fonksiyonu ile halletmeye çalışıyorum. Aşağıdaki şekilde oluyor gibi.
bool RSI70üstü = false;
for (int i = 1; i < Sistem.BarSayisi; i++)
{
if (RSI[i] > 700)
{
RSI70üstü = true;
}
if (RSI70üstü == true)
{
if (C[i] < MA1[i]) Sinyal = "F";
}
}
Bu şekilde yaptığımda, ani yükselişten sonra çok düşüş gerçekleşmeden (TERS V ŞEKLİNDE HAREKET) tepeye yakın sattırabiliyorum ama en ufak harekette hemen işleme girmemesi için "sattığın fiyattan önce 60 bardaki tepe geçilmeden VEYA sattığın fiyattan %2 düşmeden alış yapma" demesini ve o aralıkta alış şartlarını pasife almasını istiyorum.
if (Sinyal == "F" && SonYon != "F")
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
SonFiyat = V[i].Close;
BarNo = i;
}
Kısmında sattığı fiyat belirtilebiliyor ama bu şartı nasıl yazabilirim ufkumu açabilecek olan veya daha önce bu tarz bir çalışma yapmış olan var mı?
Öncelikle RSI70üstü değişkeni bir kere true olduktan sonrada döngü içerisinde onu tekrar false yapacak bir satır var ama siz buraya yapıştırmadınız diye tahmin ediyorum eğer yoksa else bloku ile ekleyin.
Sattıktan sonra 60 barın yükseğini aşmadan alımı engelleyebilirsiniz. Sistem.HHV kullanarak hh60 diye bir indikatör tanımlayın. Sonrasında için alış şartının olduğu if blokuna ( ....&& hh60[i] > hh60[i-1]) eklemeniz yeterli olacaktır. Tabi sisteminiz cross kullanıyorsa bunu tavsiye etmem bu durumda sistemde stop tarzı başka bir sistem yönü değiştiren şart yoksa uzunca bir süre sisteminiz askıda kalabilir.