Aşağıdaki fonksiyonları ekledik;
Sistem.KAMA(10,2,30);
Sistem.KAMA(Veriler,10,2,30);
Sistem.VIDYA(30,9);
Sistem.VIDYA(Veriler,30,9);
Sistem.FRAMA(Veriler);
Sistem.FRAMA();
Kullanmak isteyenler varsa Versiyon güncellemesi yapılabilir durumda.
Printable View
Aşağıdaki fonksiyonları ekledik;
Sistem.KAMA(10,2,30);
Sistem.KAMA(Veriler,10,2,30);
Sistem.VIDYA(30,9);
Sistem.VIDYA(Veriler,30,9);
Sistem.FRAMA(Veriler);
Sistem.FRAMA();
Kullanmak isteyenler varsa Versiyon güncellemesi yapılabilir durumda.
Sezai bey dün eklediğiniz non linear ehler filters değiştimi,dünki haliyle çalışmıyor mu
Sonra fark ettim tek parametreli olmuş
ZigZag indikatörü için Peak/Through değerleri ve bunların bar sayılarını veren listeler için ekleme yaptık
Sistem.ZigZagPeakThrough(C,1, %3); fonksiyonu eklendi.
Bunu yazdıktan sonra aşağıdaki dört liste elde edilebilir.
var Z = Sistem.ZigZagPeakThrough(C,1, 3);
var Peak = Z.Peak;
var Through = Z.Through;
var PeakBars = Z.PeakBars;
var ThroughBars = Z.ThroughBars;
Sistem.Cizgiler[0].Deger = Peak;
Sistem.Cizgiler[1].Deger = Through;
Sistem.Cizgiler[2].Deger = PeakBars;
Sistem.Cizgiler[3].Deger = ThroughBars;
Çok acemeice olacak biliyorum ama grafikteki fiyat alanını nasıl daraltacağım.
Daha önce yapmıştım şimdi bulamadım
Sezai bey teşekkürler.
Belirlediğim İki tarih veya iki saat arası Open. HHV LLV Close değerlerini grafiğe nasıl çizdirebilirim. C# kodu kullanmam mı lazım. Bi türlü beceremedim.
SM-N935F cihazımdan Tapatalk kullanılarak gönderildi
şöyle bir şey vardı birde;
https://www.mql5.com/en/code/10650
ZigZag ile çok uzun süre uğraştığım için net bir şekilde söyleyebilirim, yukarıdaki örneğin repaint yapmama ihtimali yok. Örnekteki arkadaş 2 tane zigzag ile bunu çözeceğini düşünerek yazmış ama ben test ettiğini düşünmüyorum. Ben kendi testlerimde, H, L, C, O ve veriler ile birlikte 6 farklı yüzde değerine sahip sistem test ettim ancak getirisi yüksek bir sistem bulamadım.
Ayrıca repaint yapan sistemler için backtest yapmak münkün ancak test edeceğiniz sisteme ait indikatörleri her barda tekrar hesaplamanız gerekiyor. Bu hem uzun sürüyor hem de bellek kullanıyorsanız 2 gb bellek kullanımından sonra OutOfMemoryException yiyorsunuz.
Sent from my SM-N910C using Tapatalk
doğrudur hocam, işe yaramayacağını düşündüğüm için çevirmeye üşenmiştim zaten:)
ikinci paragrafta belirttiğiniz konuya bir çıkış yolu bulunabilir belki.bu konuyu alıyorum to do liste:) denediğimde olumlu olumsuz yazarım yine buraya.orjinal metodu modifiye edip hesaplamayı kümülatif devretmenin bir yolu olabilir belki.
Aynı bar içerisinde al sat yaptırmanın bir imkanı var mıdır (system tester) ? Gelecek dönemde olması planlanıyor mu? Html yeni sürümünde bazı sitelerde bu yapılıyor. Üst periyotla çalışanlar için gerekli olabiliyor.
Mümkün ancak ideal altyapısı ile bunu test edemezsiniz. Ben kendi order sınıfımı yazdım, barlardan bağımsız alım satım kararlarını test edebiliyorum. Eğer C# a hakim değilseniz, yani visual studio ile istediğiniz kodu yazamıyorsanız işiniz epey zor. Saygılar...
Sent from my SM-N910C using Tapatalk
Merhaba arkadaşlar. Yazdığımız bir sistemin robot tarafından mı yoksa grafik tarafından mı çağrıldığını anlamamız mümkün müdür? Neden sordum, bazen yazdığım sistemi robota bağlıyorum bazen ise sadece grafikte görmek için kullanıyorum. Robota bağladığım zaman bazı değerlerin değişmesini (mesela okunacak bar sayısı) bazı verilerin ve hesaplamaların performans açısından hiç kullanılmamasını istiyorum (Mesela getiri hesabı, zemin yazıları, grafik ayarları vs). Sistemi kim çağırırsa ona göre işlem yapacak fazlalık hesaplamalar yapmayacak. Bunu yapmanın bir yolu var mı?
İyi akşamlar
bi sorgu konusunda yardımınız gerekiyor, benim istediğim 2 tarih aralığında ortalama hacmi yukarı kıranları listelemek ve hacim için de 1 milyon vb. şartlar koymak istiyorum, bu konuda yardımcı olur musunuz?
Merhaba değerli dostlar nereye gittiysem istediğim formülü alamadım. Bana yardımcı olabilecek var mı? bir sorgu formülü yapmak istiyorum yardımcı olursanız minnetar olurum. Kalıbı basitçe anlatayım.
Dip ve Zirveleri tespit edecek ve son 5 dip ve zirve üzerinden karşılaştırma yapacak, şartları taşıyanı ekranda gösterecek. Basit bir karşılaştırma yazayım bana sadece bunu c# ideal dökerseniz gerisini ben yapabilirim. Testlerden sonra başarılı olması halinde tüm formülü ve stratejiyi sizinle paylaşırım.
X,A,B,C,D son beş dip ve zirve noktaları diyelim,
BA/XA =fibo 618 ile 786 arasında ise
BC/BA= Fibo 382-886 arasında ise
DA/XA =fibo 127-141 arasında ise
ve DC/BC=Fibo 1618-2224 arsında ise buna kelebek formasyonu diye yazacak.
https://tradingstrategyguides.com/wp...Harmonic-2.png
kalıp bu şekilde eğer zor deniyorsa ücret dahi verebilirim. Şimdiden teşekkür ederim.
sorgu olduğu için son 5 noktayı ZigZagPeakThrough ile kolayca bulabilirsiniz. sezai bey bir kaç sayfa geride bunun örneğini paylaştı.
diğer harmonic değerlerde burada, dinamik yazılırsa kodlar sadece butterfly değil diğer harmonik patternlerde aynı kodla bitecektir.benden bu kadar, yazana kolay gelsin :)
PHP Code:
List<double> butterfly = new List<double>() {0.786,0.786,0.382,0.886,1.618,2.618,1.272,1.618,0,0,0,0,0,0 };
List<double> trendlike1_abcd = new List<double>() {0,0,0.382,0.382,2.618,2.618,0,0,0,0,0,0,0,0};
List<double> trendlike2_abcd = new List<double>() {0,0,0.5,0.5,2.0,2.0,0,0,0,0,0,0,0,0};
List<double> perfect_abcd = new List<double>() {0,0,0.618,0.618,1.618,1.618,0,0,0,0,0,0,0,0};
List<double> ideal1_abcd = new List<double>() {0,0,0.707,0.707,1.41,1.41,0,0,0,0,0,0,0,0};
List<double> ideal2_abcd = new List<double>() {0,0,0.786,0.786,1.27,1.27,0,0,0,0,0,0,0,0};
List<double> rangelike_abcd = new List<double>() {0,0,0.886,0.886,1.13,1.13,0,0,0,0,0,0,0,0};
List<double> alt127_trendlike1_abcd = new List<double>() {0,0,0.382,0.382,2.618,3.618,0,0,0,0,0,0,1.272,1.272};
List<double> alt127_trendlike2_abcd = new List<double>() {0,0,0.5,0.5,2.0,3.618,0,0,0,0,0,0,1.272,1.272};
List<double> alt127_perfect_abcd = new List<double>() {0,0,0.618,0.618,1.618,3.618,0,0,0,0,0,0,1.272,1.272};
List<double> alt127_ideal1_abcd = new List<double>() {0,0,0.707,0.707,1.41,3.618,0,0,0,0,0,0,1.272,1.272};
List<double> alt127_ideal2_abcd = new List<double>() {0,0,0.786,0.786,1.27,3.618,0,0,0,0,0,0,1.272,1.272};
List<double> alt127_rangelike_abcd = new List<double>() {0,0,0.886,0.886,1.13,3.618,0,0,0,0,0,0,1.272,1.272};
List<double> rec_trendlike1_abcd = new List<double>() {0,0,2.618,2.618,0.382,0.382,0,0,0,0,0,0,0,0};
List<double> rec_trendlike2_abcd = new List<double>() {0,0,2.0,2.0,0.5,0.5,0,0,0,0,0,0,0,0};
List<double> rec_perfect_abcd = new List<double>() {0,0,1.618,1.618,0.618,0.618,0,0,0,0,0,0,0,0};
List<double> rec_ideal1_abcd = new List<double>() {0,0,1.41,1.41,0.707,0.707,0,0,0,0,0,0,0,0};
List<double> rec_ideal2_abcd = new List<double>() {0,0,1.27,1.27,0.786,0.786,0,0,0,0,0,0,0,0};
List<double> rec_rangelike_abcd = new List<double>() {0,0,1.13,1.13,0.886,0.886,0,0,0,0,0,0,0,0};
List<double> gartley = new List<double>() {0.618,0.618,0.382,0.886,1.272,1.618,0.786,0.786,0,0,0,0,0,0};
List<double> bat = new List<double>() {0.382,0.5,0.382,0.886,1.618,2.618,0.886,0.886,0,0,0,0,0,0 };
List<double> altbat = new List<double>() {0.382,0.382,0.382,0.886,2.0,3.618,1.13,1.13,0,0,0,0,0,0 };
List<double> fiveo = new List<double>() {1.13,1.618,1.618,2.24,0.5,0.5,0,0,0,0,0,0,0,0};
List<double> crab = new List<double>() {0.382,0.618,0.382,0.886,2.24,3.618,1.618,1.618,0,0,0,0,0,0 };
List<double> deepcrab = new List<double>() {0.886,0.886,0.382,0.886,2.0,3.618,1.618,1.618,0,0,0,0,0,0 };
List<double> threedrives = new List<double>() {1.272,1.618,0.618,0.786,1.272,1.618,0,0,0,0,0,0,0,0};
List<double> shark = new List<double>() {0,0,1.13,1.618,1.618,2.24,0,0,0.886,1.13,0,0,0,0};
List<double> cypher = new List<double>() {0.382,0.618,0,0,0,0,0,0,0.786,0.786,1.13,1.414,0,0};
List<double> nenstar = new List<double>() {0.382,0.618,0,0,0,0,0,0,1.272,1.272,1.13,1.414,0,0};
List<double> blackswan = new List<double>() {1.382,2.618,0.236,0.5,1.128,2,1.128,2.618,0,0,0,0,0,0};
List<double> whiteswan = new List<double>() {0.382,0.724,2,4.237,0.5,0.886,0.382,0.886,0,0,0,0,0,0};
List<double> one2one = new List<double>() {0.5,0.786,1.128,3.618,0.382,0.786,0.382,0.786,0,0,0,0,0,0};
List<double> newcypher = new List<double>() {0.382,0.618,0,0,0,0,0,0,0.786,0.786,1.414,2.14,0,0};
List<double> navarro200 = new List<double>() {0.382,0.786,0.886,1.128,0.886,3.618,0.886,1.128,0,0,0,0,0,0};
List<double> leonardo = new List<double>() {0.5,0.5,0.382,0.886,1.128,2.618,0.786,0.786,0,0,0,0,0,0};
List<double> kane = new List<double>() {0.685,0.685,0.382,0.886,0,0,1.460,1.460,0,0,0,0,0,0};
List<double> garfly = new List<double>() {0.618,0.618,0.382,0.886,1.618,2.24,1.272,1.272,0,0,0,0,0,0};
List<double> maxbat = new List<double>() {0.382,0.618,0.382,0.886,1.272,2.618,0.886,0.886,0,0,0,0,0,0};
List<double> maxgartley = new List<double>() {0.382,0.618,0.382,0.886,1.128,2.236,0.618,0.786,0,0,0,0,0,0};
List<double> maxbutterfly = new List<double>() {0.618,0.886,0.382,0.886,1.272,2.618,1.272,1.618,0,0,0,0,0,0};
List<double> gartley113 = new List<double>() {0.618,0.618,0.382,0.886,1.13,1.13,0.786,0.786,0,0,0,0,0,0};
List<double> butterfly113 = new List<double>() {0.786,1,0.618,1,1.128,1.618,1.128,1.128,0,0,0,0,0,0 };
List<double> anti_gartley = new List<double>() {0.618,0.786,1.129,2.618,1.618,1.618,1.272,1.272,0,0,0,0,0,0};
List<double> anti_bat = new List<double>() {0.382,0.618,1.129,2.618,2.000,2.618,1.129,1.129,0,0,0,0,0,0};
List<double> anti_altbat = new List<double>() {0.276,0.500,1.129,2.618,2.618,2.618,0.885,0.885,0,0,0,0,0,0};
List<double> anti_fiveo = new List<double>() {2.000,2.000,0.446,0.618,0.618,0.885,0,0,0,0,0,0,0,0};
List<double> anti_butterfly = new List<double>() {0.382,0.618,1.129,2.618,1.272,1.272,0.618,0.786,0,0,0,0,0,0};
List<double> anti_crab = new List<double>() {0.276,0.446,1.129,2.618,1.618,2.618,0.618,0.618,0,0,0,0,0,0};
List<double> anti_deepcrab = new List<double>() {0.276,0.500,1.129,2.618,1.129,1.129,0.618,0.618,0,0,0,0,0,0};
List<double> anti_threedrives = new List<double>() {0.618,0.786,1.272,1.618,0.618,0.786,0,0,0,0,0,0,0,0};
List<double> anti_shark = new List<double>() {0.446,0.618,0.618,0.885,0,0,0,0,0.885,1.129,0,0,0,0};
List<double> anti_cypher = new List<double>() {0,0,0,0,1.618,2.618,0,0,1.272,1.272,0.707,0.885,0,0};
List<double> anti_nenstar = new List<double>() {0,0,0,0,1.618,2.618,0,0,0.786,0.786,0.707,0.885,0,0};
List<double> anti_blackswan = new List<double>() {0.500,0.887,2.000,4.237,0.382,0.724,0.382,0.887,0,0,0,0,0,0};
List<double> anti_whiteswan = new List<double>() {1.129,2.000,0.236,0.500,1.381,2.618,1.129,2.618,0,0,0,0,0,0};
List<double> anti_one2one = new List<double>() {1.272,2.618,0.276,0.887,1.272,2.000,1.272,2.618,0,0,0,0,0,0};
List<double> anti_newcypher = new List<double>() {0,0,0,0,1.618,2.618,0,0,1.272,1.272,0.467,0.707,0,0};
List<double> anti_navarro200 = new List<double>() {0.276,1.129,0.887,1.129,1.272,2.618,0.887,1.129,0,0,0,0,0,0};
List<double> anti_leonardo = new List<double>() {0.382,0.887,1.129,2.618,2.000,2.000,1.272,1.272,0,0,0,0,0,0};
List<double> anti_kane = new List<double>() {0,0,1.129,2.618,1.460,1.460,0.685,0.685,0,0,0,0,0,0};
List<double> anti_garfly = new List<double>() {0.446,0.618,1.129,2.618,1.618,1.618,0.786,0.786,0,0,0,0,0,0};
List<double> anti_maxbat = new List<double>() {0.382,0.786,1.129,2.618,1.618,2.618,1.129,1.129,0,0,0,0,0,0};
List<double> anti_maxgartley = new List<double>() {0.447,0.887,1.129,2.618,1.618,2.618,1.272,1.618,0,0,0,0,0,0};
List<double> anti_maxbutterfly = new List<double>() {0.382,0.786,1.129,2.618,1.129,1.618,0.618,0.786,0,0,0,0,0,0};
List<double> anti_gartley113 = new List<double>() {0.885,0.885,1.129,2.618,1.618,1.618,1.272,1.272,0,0,0,0,0,0};
List<double> anti_butterfly113 = new List<double>() {0.618,0.887,1.000,1.618,1.000,1.272,0.887,0.887,0,0,0,0,0,0};
arkadaşlar nedenini anlamadım ama özelden filtre ile ilgili sorular geliyor düzenli olarak.genelden yazıp kapatıyorum bu konuyu.
forumda 2015 yılında paylaşılan pek çok filtre var. son zamanda idealin eklediği yeni pek çok filtre var.bunları deneyip kendi sisteminiz için en uygun olanını bulmak size kalmış. tek dokunuşla her şeyi mükemmel yapan bir filtre arıyorsanız öyle bir şey yok.
ben ana sistemimde filtre kullanmıyorum ama bazı sistemlerim de sn anonimin forumda paylaştığı chebyshev filter'in revize edilmiş halini kullanıyorum.
çok teşekkür ederim, Sezai hocamın zigzag formülü ile
baştaki listeyi uyarlayacak bir yiğit çıktı gerisi halolur gibi...PHP Code:
var Z = Sistem.ZigZagPeakThrough(C,1, 3);
var Peak = Z.Peak;
var Through = Z.Through;
var PeakBars = Z.PeakBars;
var ThroughBars = Z.ThroughBars;
Sistem.Cizgiler[0].Deger = Peak;
Sistem.Cizgiler[1].Deger = Through;
Sistem.Cizgiler[2].Deger = PeakBars;
Sistem.Cizgiler[3].Deger = ThroughBars;
Arkadaşlar, Kullanıcı Tanımlı bir endeks oluşturduğum zaman(INX), RSI indicator penceresinden eklediğimde hiç bir sorun olmadan ekliyor. Fakat grafiğin üzerine sistem atamıyorum. Bu neden olabilir?
Sezai Bey, sağolsun yardımcı oldu. şuanki yapı dagilinde INX lere sistem atılamıyormuş.
Merhabalar,
iDeal yetkilileri burayı takip ediyor bildiğim kadarıyla, o bakımdan buraya yazayım dedim.
Terminalden çok memnunum, ihtiyaçlarımı karşılıyor. Ancak bir ufacıkta olsa terminalde eksiklikler var. Terminalde "HotKey" yani "Kısayol Tuşları" olsa benim gibi Robot değil de, manuel işlem yapanlar için çok iyi olurdu.
Mesela ekranı izliyorum, istediğim rakama geldi o anda emir yollayacağım, Portföy sayfasından ziyade ben F1 'e bastığım da mesela F1 'e 5BIN LOT ALIM atadım, buna bastıkça AKTİF fiyattan emir yollayacak. F2 'de tam tersi Satış için emir yollayacak.
Bence bu tür DayTrader diye tabir ettiğimiz kişiler için yapılsa İdeal vazgeçilmez bir hal alır. Umarım yöneticiler dikkate alır.
Sistem.Cizgiler[0].Deger = MA1;
Sistem.Cizgiler[0].Aciklama = "MA " + Periyot1;
Sistem.Cizgiler[1].Deger = MA2;
Sistem.Cizgiler[1].Aciklama = "MA " + Periyot2;
// strateji
Sistem.KesismeTara(MA1, MA2);
1 sorum: Burada MA1 MA2 yukarı kestiğinde ve son bardaki hacim büyüktür 1500000 ise koşulunda AL sinyali ver
2 sorum: Burada MA1 MA2 yukarı kestiğinde ve son 5 bardaki hacim ortalaması büyüktür ortalama günlük hacimden ise koşulunda AL sinyali ver
yardımcı olabilecek arkadaşa şimdiden teşekkürler
Birinci sorunuz için şöyle yapabilirsiniz;
Kod:var C = Sistem.GrafikFiyatSec("Kapanis");
var Vol = Sistem.GrafikFiyatSec("Hacim");
var Mov1 = Sistem.MA(C, "Simple", 5);
var Mov2 = Sistem.MA(C, "Simple", 22);
var SonYon = "";
for(int i=1; i < Sistem.BarSayisi;i++)
{
if (Mov1[i] > Mov2[i] && Vol[i] > 1500000 && SonYon != "A")
{
SonYon = "A";
Sistem.Yon[i] = "A";
}
else if (Mov1[i] < Mov2[i] && SonYon != "S")
{
SonYon = "S";
Sistem.Yon[i] = "S";
}
}
(Doğru anladıysam) ikinci sorunuz da böyle olur
Kod:var C = Sistem.GrafikFiyatSec("Kapanis");
var Vol = Sistem.GrafikFiyatSec("Hacim");
var MovVol = Sistem.MA(Vol, "Simple", 5);
//Günlük Hacim Oku
var VGUN = Sistem.GrafikVerileriniOku(Sistem.Sembol, "G");
var VolGun = Sistem.GrafikFiyatOku(VGUN,"Hacim");
//Günlük Hacim listesini alt periyoda çevir
VolGun = Sistem.DonemCevir(Sistem.GrafikVerileri, VGUN, VolGun);
var Mov1 = Sistem.MA(C, "Simple", 5);
var Mov2 = Sistem.MA(C, "Simple", 22);
var SonYon = "";
for(int i=1; i < Sistem.BarSayisi;i++)
{
if (Mov1[i] > Mov2[i] && MovVol[i] > VolGun[i] && SonYon != "A")
{
SonYon = "A";
Sistem.Yon[i] = "A";
}
else if (Mov1[i] < Mov2[i] && SonYon != "S")
{
SonYon = "S";
Sistem.Yon[i] = "S";
}
}
https://resmim.net/f/vuvLRO.png
sayın sezai bey satın tiberius
çok zor değilse , altyapı uygunsa
grafikler üzerinden alarm ekleyebilme , eklediğimiz alarm seviyesini resimdeki gibi fiyat bandında gösterilmesini ve ilgili alarmı aşağı veya yukarı kaydırarak alarm seviyesini değiştirebilmek mumkunmudur ,fiyat alarm verdiğinde sesli ve popup alarm vermesi , böyle bir çalışma yapılırsa mutlu oluruz
iyi çalışmalar
üstadlarım, sorgu kısmından elimizdeki sistemlerin o gün al-sat vermiş hisseleri görmek mümkün mü? teşekkürler.
sayın Orhan;
chebyshev filter paylaşabilirmisiniz?