-
arkadaşlar bu kod değer üretmiyor , hata nerde olabilir.
var length = 21; // Hacim ortalaması için periyot
var per = 8; // Bollinger Bantları için periyot
var sapma2 = 1; // Bollinger Bantları için sapma çarpanı (2. bant)
var sapma3 = 3; // Bollinger Bantları için sapma çarpanı (3. bant)
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 volume = Sistem.Volume();
var avrg = Sistem.MA(volume, "Simple", length); // Hacim ortalaması (SMA)
var vold1 = Sistem.Liste(0);
var vold2 = Sistem.Liste(0);
var vold3 = Sistem.Liste(0);
var volu1 = Sistem.Liste(0);
var volu2 = Sistem.Liste(0);
var volu3 = Sistem.Liste(0);
for (int i = 1; i < v.Count; i++)
{
vold1[i] = volume[i] > avrg[i] * 1.5 && c[i] < o[i]; // Yüksek hacimli düşüş mumu
vold2[i] = volume[i] >= avrg[i] * 0.5 && volume[i] <= avrg[i] * 1.5 && c[i] < o[i]; // Orta hacimli düşüş mumu
vold3[i] = volume[i] < avrg[i] * 0.5 && c[i] < o[i]; // Düşük hacimli düşüş mumu
volu1[i] = volume[i] > avrg[i] * 1.5 && c[i] > o[i]; // Yüksek hacimli yükseliş mumu
volu2[i] = volume[i] >= avrg[i] * 0.5 && volume[i] <= avrg[i] * 1.5 && c[i] > o[i]; // Orta hacimli yükseliş mumu
volu3[i] = volume[i] < avrg[i] * 0.5 && c[i] > o[i]; // Düşük hacimli yükseliş mumu
}
var cold1 = Color.FromArgb(128, 0, 0); // Koyu kırmızı
var cold2 = Color.Red; // Kırmızı
var cold3 = Color.Orange; // Turuncu
var colu1 = Color.FromArgb(0, 100, 0); // Koyu yeşil
var colu2 = Color.Lime; // Açık yeşil
var colu3 = Color.FromArgb(127, 255, 212); // Su yeşili
var color = Sistem.Liste(0);
for (int i = 1; i < v.Count; i++)
{
color[i] = vold1[i] ? cold1 : vold2[i] ? cold2 : vold3[i] ? cold3 : volu1[i] ? colu1 : volu2[i] ? colu2 : volu3[i] ? colu3 : Color.Empty;
}
var ortaband = Sistem.MA(c, "Simple", per); // Orta bant (SMA)
var stdev = Sistem.StDev(c, per, 1); // Standart sapma (Usul = 1)
var ustBB = Sistem.Liste(0);
var altBB = Sistem.Liste(0);
var ustBB3 = Sistem.Liste(0);
var altBB3 = Sistem.Liste(0);
for (int i = 1; i < v.Count; i++)
{
ustBB[i] = ortaband[i] + sapma2 * stdev[i]; // Üst bant (2. sapma)
altBB[i] = ortaband[i] - sapma2 * stdev[i]; // Alt bant (2. sapma)
ustBB3[i] = ortaband[i] + sapma3 * stdev[i]; // Üst bant (3. sapma)
altBB3[i] = ortaband[i] - sapma3 * stdev[i]; // Alt bant (3. sapma)
}
Sistem.Cizgiler[0].Deger = ortaband; // Orta bant
Sistem.Cizgiler[1].Deger = ustBB; // Üst bant (2. sapma)
Sistem.Cizgiler[2].Deger = altBB; // Alt bant (2. sapma)
Sistem.Cizgiler[3].Deger = ustBB3; // Üst bant (3. sapma)
Sistem.Cizgiler[4].Deger = altBB3; // Alt bant (3. sapma)
-
var volume = Sistem.GrafikFiyatOku(v, "Hacim");
olmalı sanırım
-

Originally Posted by
ozmen
var volume = Sistem.GrafikFiyatOku(v, "Hacim");
olmalı sanırım
cevabınız için teşekkür ederim ,denedim ama olmadı.
-
Stdev hatalı
var stdev = Sistem.StDev(c, per); şeklinde deneyin. ortaband ve stdev hesaplamalarını avrg nin altına taşıyın
Alt kodları yorum satırına alıp çizgilerin tek tek çizdirildiğini sırayla kontrol ederek ilerleyin.
renklendirme olayını bilmiyorum vold1 ve vold2 koşulu oluşursa ne yapılacak belirtilmemiş.
/*
vold1 vold2 ve bar renklendirmeleri
*/
Sistem.Cizgiler[0].Deger = stdev;
Copilot gemini gibi uygulamalara yazıp cevap isteyin
-
Koddaki asıl sıkıntı listelerin değişken gibi kullanılması. For döngüsü içinde değer olarak kullanmak için [i] eklenmeli hepsine
Sent from my SM-S901E using Tapatalk
-
biraz sadeleştirdim ama yine değer üretmiyor
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 vol = Sistem.Volume();
// Hacim ortalaması (EMA)
var avrg = Sistem.MA(vol, "Exp", 10);
// Bollinger Bantları için orta bant (SMA) ve standart sapma
var ortaband = Sistem.MA(c, "Simple", 8);
var stdev = Sistem.StDev(c, 8);
// Hacim ve mum renkleri için liste oluşturma
var vold1 = Sistem.Liste(0);
var vold2 = Sistem.Liste(0);
var vold3 = Sistem.Liste(0);
var volu1 = Sistem.Liste(0);
var volu2 = Sistem.Liste(0);
var volu3 = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
{
vold1[i] = vol[i] > avrg[i] * 1.5 && c[i] < o[i]; // Yüksek hacimli düşüş mumu
vold2[i] = vol[i] >= avrg[i] * 0.5 && vol[i] <= avrg[i] * 1.5 && c[i] < o[i]; // Orta hacimli düşüş mumu
vold3[i] = vol[i] < avrg[i] * 0.5 && c[i] < o[i]; // Düşük hacimli düşüş mumu
volu1[i] = vol[i] > avrg[i] * 1.5 && c[i] > o[i]; // Yüksek hacimli yükseliş mumu
volu2[i] = vol[i] >= avrg[i] * 0.5 && vol[i] <= avrg[i] * 1.5 && c[i] > o[i]; // Orta hacimli yükseliş mumu
volu3[i] = vol[i] < avrg[i] * 0.5 && c[i] > o[i]; // Düşük hacimli yükseliş mumu
}
// Bollinger Bantları için sapma çarpanları
var sapma2 = 1; // 2. sapma
var sapma3 = 3; // 3. sapma
// Alt bantlar
var altBB = Sistem.Liste(0);
var altBB3 = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
{
altBB[i] = ortaband[i] - sapma2 * stdev[i]; // Alt bant (2. sapma)
altBB3[i] = ortaband[i] - sapma3 * stdev[i]; // Alt bant (3. sapma)
}
// Çizgileri çiz
Sistem.Cizgiler[0].Deger = ortaband; // Orta bant
Sistem.Cizgiler[1].Deger = altBB; // Alt bant (2. sapma)
Sistem.Cizgiler[2].Deger = altBB3; // Alt bant (3. sapma)
-
* 1.5 Değil
* 1.5f
olarak yazın
noktalı çarpan olan hepsine uygulayın.
-

Originally Posted by
Bear_Bull
* 1.5 Değil
* 1.5f
olarak yazın
noktalı çarpan olan hepsine uygulayın.
bu şekilde de olmadı.
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