-

Originally Posted by
Caglar
MAX(H, L, C) ile MAX(H) ve MIN(H, L, C) ile MIN(L) aynı değerleri verir ancak kodu sizin istediğiniz gibi yazdım. Gönderdiğiniz MRS hesaplamasına değerleri daha makul görebilmek amacıyla 100 ile çarpma işlemi ekledim. Beklediğimden farklı ve güzel bir çıktı verdi. Filtre olarak işe yarayabilir.
Kod:
var P = Sistem.GrafikVerileri;
var H = Sistem.GrafikFiyatOku(P, "Yuksek");
var C = Sistem.GrafikFiyatOku(P, "Kapanis");
var L = Sistem.GrafikFiyatOku(P, "Dusuk");
var MED10 = Sistem.Liste(0f);
var MAX20 = Sistem.Liste(0f);
var MIN20 = Sistem.Liste(0f);
var MRS = Sistem.Liste(0f);
var HLC10 = new List<float>();
var HLC20 = new List<float>();
for (var i = 21; i < P.Count; i++)
{
var hlc = new List<float> { H[i], C[i], L[i] };
HLC10.AddRange(hlc);
HLC20.AddRange(hlc);
if (HLC10.Count == 30)
{
MED10[i] = User.Median(HLC10);
HLC10.RemoveRange(0, 3);
}
if (HLC20.Count == 60)
{
MAX20[i] = HLC20.Max();
MIN20[i] = HLC20.Min();
HLC20.RemoveRange(0, 3);
}
MRS[i] = 100 * (MED10[i] - MAX20[i]) / MAX20[i];
}
Sistem.Cizgiler[0].Deger = MED10;
Sistem.Cizgiler[1].Deger = MAX20;
Sistem.Cizgiler[2].Deger = MIN20;
Sistem.Cizgiler[3].Deger = MRS;
Kodu çalıştırabilmek için daha önce göndermiş olduğum median formülünü User.dll de tutmanız gerekiyor. Hesaplamalarda hatalar olabilir, dolayısıyla kendiniz test etmeyi unutmayın.
Sayin Caglar;
MSR icin tekrar tesekkurler.Kod calisiyor gozukuyor tam testlerini yapmadim. Sizden percentrank istegime ilave olarak benzer bir kodun cevirisi icin yardimlarinizi rica edecektim.
function PercentRankHLC(Data1, Data2, Data3, Periods)
{
Count = 0;
for (i = 0; i < Periods + 1; i++)
{
Count = Count + IIf(Ref(Data3, 0) > Ref(Data1, -i), 1, 0);
Count = Count + IIf(Ref(Data3, 0) > Ref(Data2, -i), 1, 0);
Count = Count + IIf(Ref(Data3, 0) > Ref(Data3, -i), 1, 0);
}
return 100 * Count / (Periods*3-1);
}
Bende ki ideal cevirisine uyarlamaya calistim ancak basarili olamadim. Yardimci olabilirseniz sevinirim.
Amibroker kodu :
function PercentRank( Data, Periods )
{
Count = 0;
for ( i = 1; i < Periods ; i++ )
{
Count = Count + ( Data > Ref( Data, -i ) );
}
return 100 * Count / (Periods-1);
}
Ideal Kodu ( MSR ornegi):
for ( int i = Lenght; i < C.Count; i++)
{
float Count = 0;
for (int j = i-Lenght; j <= i; j++)
{
if (MRS[j] < MRS[i]) Count ++;
}
Count = Count * 100 / (float)Lenght;
MRSB[i] = Count ;
}
-
Arkadaşlar öğrencilere kodlama mantığını öğreten bir site buldum.
Aşağıdaki adresteki döngülü kod baya zor geldi bana, yapan olursa buradan yayınlasın 
https://blockly-games.appspot.com/ma...evel=10&skin=0
Saygılarımla,
-

Originally Posted by
Klozon
while (notDone()) {
moveForward();
if (isPathRight()) {
if (isPathForward()) {
turnRight();
} else {
if (isPathLeft()) {
turnLeft();
} else {
turnRight();
}
}
} else {
if (isPathLeft()) {
turnLeft();
}
}
}
-
acemi işi

while(notDone()){
if(isPathForward())
{ moveForward();
if(isPathForward())
{if(isPathLeft())
{ turnLeft();}
else
{
}
}
else
{
if(isPathForward())
{ turnLeft();
}else{} turnLeft();
}
}
else
{ turnRight();
}
}
Tarih göstermiştir ki bilge herşeyi bilmez,sadece ahmaklar herşeyi bilir...
-
summation fonsiyonunu nasıl yazabilirim
matriksteki bu hali ile.
Sum(Data,Period)
-

Originally Posted by
EMLAK
summation fonsiyonunu nasıl yazabilirim
matriksteki bu hali ile.
Sum(Data,Period)
Sayin Emlak;
Sistemde hazir formul mevcut:
var d = Sistem.Sum(d1,2);
-
-

Originally Posted by
Bear_Bull
Short yaptık diyelim stop ŞARTLI emir yazalım.
LONG olunduğunda da satış yapması için bunun tersi yapılmalıdır.

Originally Posted by
Bear_Bull
Garanti olsun diye EMİR TİPİ = Piyasa seçilebilir
yukarıdaki örnekte büyük bir GAP olursa emir pasifte kalabilir.
sayın ideal yetkilileri
şu manuel stop ve kar-al seviyeleri için girebileceğimiz şartlı emir giriş ve değişikliklerini metatrader deki gibi yapsalar süper olur , grafik üzerinden sürükle bırak yaparak
ideal duy sesimizi lütfen
Gönderi Kuralları
- Yeni konu açamazsınız
- Konulara cevap yazamazsınız
- Yazılara ek gönderemezsiniz
- Yazılarınızı değiştiremezsiniz
-
Forum Rules
Yer İmleri