bende de repaint yaptı
Printable View
else if (x1[i] == 0 && SonYon == "A" || x1[i] == 0 && SonYon =="S" ) yapınca repaint olmadı
Sistem.GetiriHesapla("01/07/2018",0.035);
bu fonksiyonda 0.035 ne demek oluyor acaba
İşlem durumlarına Şart eklemeyi bir türlü beceremedim.
1 ise "İşleme Kapalı"
2 ise "Normal işlem"
x ise "Tek Fiyat"
y ise "Devre Kesici"
z ise "Devre Kesici sonrası Tek Fiyat" olarak görebilirmiyim.
var Yuzeysel = Sistem.YuzeyselVeriOku(Sistem.Sembol);
var DRM = Yuzeysel.Durum;
Sistem.ZeminYazisiEkle(DRM.ToString(), 1, 200, 180, Color.Azure, "Tahoma", 13);
S.A. Ben yardım isteyecektim yardımcı olur iseniz sevinirim. Şöyle..
En yüksek ile en düşüğün ortalaması ve bunun + 100 ve -100 puan yanında iki çizgi olması. Bir nevi docihan kanalı diyeyim, gerçi docihan yazılı var mı bulamadım. Tşk.
aşağıdaki şekilde 1 bar geriden takip eder
Anlık Olsun derseniz LIST1 ve LIST2 yi HHV LLV formülleriyle değiştirirsiniz.
///TIFIL
var LIST1 = Sistem.PriceChannelUp(1);
var LIST2 = Sistem.PriceChannelDown(1);
var U = Sistem.Liste(0);
var O = Sistem.Liste(0);
var A = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
{
O[i]= ( LIST1[i]+LIST2[i] )/ 2 ;
U[i]= O[i] + 0.1f;
A[i]= O[i] - 0.1f;
}
Sistem.Cizgiler[0].Deger = U;
Sistem.Cizgiler[1].Deger = O;
Sistem.Cizgiler[2].Deger = A;
Lib.cs de tanımladığımız indikatörlere liste okutma özelliği tanımlayabiliyor muyuz? Ayrıca indikatör içerisinde kullandığımız değişkenleri (indikatörün kendisi hariç) ideal içerisinden çağırabiliyor muyuz?
sistem performansı
sembol bazında kıyasla arasında getiri farkı neden kaynaklanabilir
örneğin performans x sistem 570 işlem 150 bin getiri elde etmiş
sembol bazında kıyasla dediğimizde aynı sistem (x) işlem adedi hemen hemen aynı ama getiri oldukça düşüyor 80 bin civarı gösteriyor..?
İkisinde de sonuçlar aynı.
Performans tablosunda iki tarih aralığı seçimi var
Sistem Kıyasla'da bar sayısı, onlar denk dönemler/barlar değildir.
https://i.hizliresim.com/qd8b5d.png
(sistem kıyasla'da, kazandıran ve kaybettiren işlem sayıları toplam işlem sayısını tutsun diye, getirisi "0" olan sinyallerin işlem sayısı kazandıranlara ekleniyor)
Lib içindeki metod içinde string, int, double, float tiplerinde değişken kullanabildiğiniz gibi, elemanlarının tipi belirtilerlerek LİSTE de geçirtilebilir.;
Örnek Lib (kullanıcı tarafından verilen listenin, kullanıcı tarafından verilen yöntemle ve periyotla MA'sının aldırılması)
İdeal içinden çağrılması:Kod:namespace ideal
{
public class Lib
{
public void IND1 (dynamic Sistem, List<float> Liste, string Yontem, int Periyot)
{
try
{
var IND = Sistem.MA(Liste, Yontem, Periyot);
Sistem.Cizgiler[0].Deger = IND;
}
catch {}
}
}
}
var RSI = Sistem.RSI(14);
Lib.IND1(Sistem, RSI, "Simple", 100);
trend çizgilerine alarm kurulabilmesi ve kolayca stop emir koyulabilmesi için stop emirleri için sayın ideal yetkilileriyle çok irtibata geçtim çok talepte bulundum belkide çok kafalarını ağrıttım böyle güzel bir proğramın bu tur yeniliklere ihtiyacı var diye , bu taleplerimiz ideal yetkililerince dikkate alındı bu hafta itibariyle kullanıma açılacak şanssızlığa bakarmısınız aracı kurumum bu ay sonu itibariyle foreks geçicez diyo kafayı yemek üzeryim :(
o zaman kurum müşteri kaybeder.
Saatlik
Şu iş görebilir, test etmek lazım
Kod:
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
var TOMA = Sistem.TOMA(30, 0.5);
var EMA = Sistem.MA(C, "Exp", 30);
var SaatBaslangicList = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
SaatBaslangicList[i] = (V[i].Date.Hour != V[i - 1].Date.Hour) ? V[i].Open : SaatBaslangicList[i - 1];
var SonYon = "";
for (int i = 1; i < Sistem.BarSayisi; i++)
{
if (C[i] > SaatBaslangicList[i] && EMA[i] > TOMA[i] && SonYon != "A")
{
SonYon = "A";
Sistem.Yon[i] = "A";
}
if (C[i] < SaatBaslangicList[i] && EMA[i] < TOMA[i] && SonYon != "S")
{
SonYon = "S";
Sistem.Yon[i] = "S";
}
}
Sistem.Cizgiler[0].Deger = TOMA;
Sistem.Cizgiler[1].Deger = EMA;
Sistem.Cizgiler[2].Deger = SaatBaslangicList;
Gün Açılış (test edin)
Kod:
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
var TOMA = Sistem.TOMA(30, 0.5);
var EMA = Sistem.MA(C, "Exp", 30);
var GunBaslangicList = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
GunBaslangicList[i] = (V[i].Date.Day != V[i - 1].Date.Day) ? V[i].Open : GunBaslangicList[i - 1];
var SonYon = "";
for (int i = 1; i < Sistem.BarSayisi; i++)
{
if (C[i] > GunBaslangicList[i] && EMA[i] > TOMA[i] && SonYon != "A")
{
SonYon = "A";
Sistem.Yon[i] = "A";
}
if (C[i] < GunBaslangicList[i] && EMA[i] < TOMA[i] && SonYon != "S")
{
SonYon = "S";
Sistem.Yon[i] = "S";
}
}
Sistem.Cizgiler[0].Deger = TOMA;
Sistem.Cizgiler[1].Deger = EMA;
Sistem.Cizgiler[2].Deger = GunBaslangicList;
merhabalar bu kodu idealde nasıl yazabiliriz ,bir şeyler denedim ama olmadı. eski bir kod vardı ondan yararlanmaya çalıştım.
LEN:=Input("LENGTH",2,100,10);
MA1PERIOD:=Input("FAST MA LENGTH",2,100,5);
MA2PERIOD:=Input("SLOW MA LENGTH",2,100,22);
MAXH:=HHV(HIGH,LEN);
MINT:=LLV(LOW,LEN);
VALUE:=0.33*2*((C-minl)/(MAXH-minl)-0.5)+0,67*PREV;
FISH:=0.5*LOG((1+VALUE)/(1-VALUE))+0.5*PREV;
MA1:=MOV(FISH,MA1PERIOD,S);
MA2:=MOV(MA1,MA2PERIOD,W);
FISH;FISH*-(FISH>0);FISH*-(FISH<0);MA1;MA2;0
yararlandığım kod aşagıdaki kod
var len = 10;
var H = Sistem.GrafikFiyatSec("Yuksek");
var L = Sistem.GrafikFiyatSec("Dusuk");
var pr = Sistem.Liste(0);
var val1 = Sistem.Liste(0);
var value1 = Sistem.Liste(0);
var fish = Sistem.Liste(0);
for (int i=1; i < Sistem.BarSayisi; i++)
{
pr[i] = (H[i] + L[i] )/2;
}
var maxh = Sistem.HHV(len,pr);
var minl = Sistem.LLV(len,pr);
for (int i=2; i < Sistem.BarSayisi; i++)
{
if((maxh[i] - minl[i]) != 0)
val1[i] =0.33f * 2 * ((pr[i]-minl[i]) / (maxh[i]-minl[i])-0.5f) + 0.67f * val1[i-1];
if(val1[i] > 0.99f)
value1[i] = 0.999f;
else if(val1[i] < -0.99f)
value1[i] =-0.999f;
else
value1[i] = val1[i];
if((1 - value1[i]) != 0)
fish[i] = 0.5f * (float)Math.Log((1 + value1[i]) / (1 - value1[i])) + 0.5f * fish[i-1];
}
Sistem.Cizgiler[0].Deger = fish;
Sistem.Cizgiler[1].Deger = Sistem.Liste(0);
sistem sinyal ürettikten sonra diyelim ki 100 bar önce al sinyali verdi, şimdi sat sinyali verdiğinde önceki al sinyalini siliyor ve bir önceki sat sinyaliyle birleştiriyor, grafik üzerinde bakınca sistem çok mükemmel görünüyor ama sanal testte çuvallıyor, bunun sebebi ne olabilir, geçmiş sinyallerin silinmemesi için ne yapmam gerekiyor
for (int i=2; i < Sistem.BarSayisi; i++)
{
if ((Z[i] > Z[i-1] && Z[i-1] < Z[i-2] ) || ( Z[i] < Z[i-1] && Z[i-1] > Z[i-2]))
last[i] = Z[i-1];
else
last[i] = last[i-1];
}
var SonYon = "";
for (int i=2; i < Sistem.BarSayisi; i++)
{
if ((SonYon != "A" && C[i-1] > last[i]) ) // alış
{
Sistem.Yon[i] = "A";
SonYon = "A";
}
else if ((SonYon != "S" && C[i-1] < last[i]) ) // satış
{
Sistem.Yon[i] = "S";
SonYon = "S";
}
}
hocam burada ki yanlışlık ne olabilir ??
tavsiyeniz için teşekkür ederim ümit bey, bu kodların devamı var tabii sadece zig zag üzerine tabii ki işlem yapılmaz, burada aynı barda hem alım hem de satım oluşturma durumu mevcut bunu nasıl aşabilirim ben onu sormuştum. zaten trend varsa her sistem 3 aşağı 5 yukarı çalışıyor yatay piyasa için bişeyler bulmak lazım. tahminim kasım ayının tamamı ve aralık ayının son 15 günü + yazan sistem çok az vardır.
Arkadaşlar merhaba,
SYNTAX Cum( ARRAY )
Cum( Value )
RETURNS ARRAY
FUNCTION Calculates a cumulative sum of the ARRAY from the first period in the chart.
Bu komutu idealde nasıl yazabiliriz ?
Daha önceki forumda bunu buldum ama Close yerine istediğim dizini koymak istiyorum.
Ek 21374
Sisteminiz neye gore alim satim yapiyorsa ayni soruyu ke di ize sorun siz ne yapardiniz diye ozman dogru kodlamayi bulursunuz.
Ben size desemki 100 binden buyukse al 105 binden kucukse sat.
Foyatta 100.025 ise ne yapmalisiniz ? Alirmisiniz satarmisiniz
Sizin kodda boyle bir mantik hatasi var.
Zigzag varsa zaten cop zigzag repaint.yapar gelecek grafige gore sekil alir
Trend çizgisine emir nasıl bağlanır ?
https://www.youtube.com/watch?v=pZF6FtNx2QM
Versiyon yenile yapiyorum hala 6.08 versiyon gosteriyor.
SM-N935F cihazımdan hisse.net mobile app kullanarak gönderildi.
2013 yılındaki postlara bakıyorum. İdeal yine aynı şeyleri söylemiş. Video hazırlayacağız. Eğitim dökümanlarının eksikliğinin farkındayız vs. Tamam sistem arayüz güzel fakat bir klavuz olmadan bir insanın burada robot yada algo işlem yapabilmesi imkansız. Bu arada bu programı kullananlar yazılım mühendisi değil onların asıl mesleği trader lık.
Matriks de system testerdan ve grafik yenileme muhabbetinden dolayı çok para kaybettim. Aslında ordaki robot değilde yarı robotik bir sistemdi. Yakın takip gerektiriyordu. Ben gözümü arkada bırakmayacak bir sistem kurmak için ideale geçtim ama burda da kaynak sorunu var. Matriks 100 sayfa döküman hazırlamış ama ideal bu konuda sıfır.
2013 yazılarını okurken henüz bu >>> http://www.directfn.com.tr/idealsistem/index.html <<< linkin olduğu bölümlere anlaşılan gelmemişsiniz.
örnek sistemler >>>> http://www.directfn.com.tr/sistemler/ <<<<
kolay gelsin.
*-*-*-*-*-*-*-**-*-*
Mutlu yıllar arkadaşlar.
*-*-*-*-*-*-*-**-*-*
sayın renkly1
matriks in hazırlamış olduğu yardım doküman ı gözünüzde büyütmeyin her platformu kullanmış olduğu birisi olarak söylemelişyim ki bu 100 sayfa dokumanın kıymeti harbiyesi yok , forum da ideal çalışanlarının ve c++ diline hakim değerli forum üyelerinin paylaşımları 1000 kat daha değerlidir buna inanın , çok ileri düzel c++ da kodlama yapmak için c++ eğitimi almak şart , ''Matriks de system testerdan ve grafik yenileme muhabbetinden dolayı çok para kaybettim'' demişiniz ideal de yeni hizmete sunulacak trend çizgilerine alarm ve emir bağlama modulu ile bizlere çok güzel imkanlar sunulmakta olduğunu düşünmekteyim ,an azından bir pozisyon açtığımızda stop emirler koyabileceğiz ve zararlarımızı sınırlayabileceğiz , ha bu arada ideal çalışanı falan değilim her hangi bir menfaatim de yok , sadece türkiyedeki her platformu kullanmış birisi olarak objektif görüşlerimi paylaşıyorum ,eski ve yeni forum daki
ideal başlığı altında çok değerli paylaşımlar oluyor takipte etmekte fayda var
saygılar bol kazançlar
İdeal kullanan arkadaşlar
araya bir soru sıkıştırayım
bu soru epey sorulmuştur eminim ..ama aradım buladım
bugün ideal terminal aldım..ama çalıştığım aracı kurum ''hesap ekle'' bölümünde yok..
çözümü nedir acaba?
süperdı bu harika
Amatör kod bilgimle yine bir çeviri denedim.Hata almıyorum ama çizgi çıkmıyor. :oleyo:
Kod:var C = Sistem.GrafikFiyatSec("Kapanis");
int Period =20;
float delta=0.1f;
var BP = new List<float>(new float[Sistem.BarSayisi]);
var beta = (float) Math.Cos(360 / Period);
var gamma = (float) (1 / Math.Cos(720*delta / Period));
var alpha = (float) (gamma - Math.Sqrt(gamma*gamma - 1));
for (int i = 100 ; i < Sistem.BarSayisi; i++)
BP[i] = (float) (0.5*(1 - alpha)* ( C[i] - C[i-2] ) + beta*(1 + alpha)*BP[i-1] - alpha*BP[i-2]);
Sistem.Cizgiler[0].Deger=BP;
Problemin nedeni Cosinus fonksiyonunun radyan kabul etmesi ancak dönüşüm yaptığınız kodda derece kullanılmış olması. Eğer Math.Cos metoduna verilen parametreleri radyana çevirirseniz şöyle bir görüntü oluşuyor:
https://i.hizliresim.com/36L12p.png
Nasıl yapılacağını Orhan hocanın sayfasında detaylı bir şekilde konuşmuştuk. O sayfaları okumanızı rica ediyorum.
180 derece bir radyan ise pi ile çarpıp 180 e böldüm. Doğru mudur :notr:
float beta = (float) Math.Cos(Math.PI* 360/ Period/180);
float gamma = (float) (1 / Math.Cos(Math.PI*720*delta / Period/180));