kolay gelsin aşağıda ki kod çalışmadı ve sorunun neden kaynakladığını bilmiyorum. yardımcı olursanız sevinirim.
var bakiye = 100; // Başlangıç bakiyesi
var periyot = "1"; // Grafik periyodu

var sozluk = new List<string>();
sozluk.Add("IMKBH'YKBNK");
sozluk.Add("IMKBH'GARAN");

foreach (var sembol in sozluk)
{
var v = Sistem.GrafikVerileriniOku(sembol, periyot);
var anahtar = Sistem.Name + ", " + sembol + ", " + periyot;

// NADARAYA WATSON indikatörü parametreleri
var length = 1000;
var bandwidth = 17;
var mult = 2.5;

var y = Sistem.Liste(0);
var down = Sistem.Liste(0);

double sum_e = 0.0;
for (int i = v.Count - length; i < v.Count; i++)
{
double sum = 0.0;
double sumw = 0.0;
for (int j = v.Count - length; j < v.Count - 1; j++)
{
double w = Math.Exp(-(Math.Pow(i - j, 2) / (bandwidth * bandwidth * 2)));
sum += v[j] * w;
sumw += w;
}
double y2 = sum / sumw;
sum_e += (Math.Abs(v[i] - y2));
y[i] = (float)y2;
}
double mae = sum_e / length * mult;
for (int i = v.Count - length + 1; i < v.Count; i++)
{
double y2 = y[i];
down[i] = (float)(y2 - mae);
}

// Alım yapılan fiyatları ve miktarları saklamak için listeler oluşturun
var alimFiyatlari = new List<double>();
var alimMiktarlari = new List<int>();
var karFiyatlari = new List<double>(); // Her alım için hedef kar fiyatını saklar

var sonFiyat = (decimal)Sistem.SonFiyat(sembol);

for (int i = bandwidth; i < v.Count; i++)
{
// Alım koşulu: Fiyatın alt bantı ihlal ettiği durumda alım yap
if (sonFiyat < down[i] && sonFiyat > down[i - 1])
{
var alimFiyati = (double)sonFiyat;
var alimMiktari = (int)Math.Floor((double)bakiye / alimFiyati); // Alınacak miktarı hesapla
alimFiyatlari.Add(alimFiyati);
alimMiktarlari.Add(alimMiktari);

// emir parametreleri
Sistem.EmirSembol = sembol;
Sistem.EmirSuresi = "KIE"; // GUN, SNS, IKG // Kripto için GTC
Sistem.EmirTipi = "Piyasa"; //
Sistem.EmirFiyati = alimFiyati;

// Emri gönder
Sistem.EmirMiktari = alimMiktari;
var rezerv = "Alış yapıldı!";
Sistem.EmirIslem = "Alış";
Sistem.EmirAciklama = rezerv;
Sistem.EmirGonder();
Sistem.PozisyonKontrolGuncelle(anahtar, alimMiktari, (double)alimFiyati, rezerv);

// Bakiyeden harcanan miktarı çıkar
bakiye -= alimMiktari * (int)alimFiyati;

// Hedef kar fiyatını kaydet (%1 kar)
karFiyatlari.Add(alimFiyati * 1.01);
}

// Satış koşulu: Alınan miktarların fiyatları yüzde 1 kar ile satılsın
for (int j = 0; j < alimFiyatlari.Count; j++)
{
if (sonFiyat >= (decimal)(karFiyatlari[j]))
{
// emir parametreleri
Sistem.EmirSembol = sembol;
Sistem.EmirSuresi = "KIE"; // GUN, SNS, IKG // Kripto için GTC
Sistem.EmirTipi = "Piyasa"; //
Sistem.EmirFiyati = (double)sonFiyat;

// Emri gönder
Sistem.EmirMiktari = (int)alimMiktarlari[j];
var rezerv = "Kar Alındı!";
Sistem.EmirIslem = "Satış";
Sistem.EmirAciklama = rezerv;
Sistem.EmirGonder();
Sistem.PozisyonKontrolGuncelle(anahtar, 0, 0, rezerv);

// Bakiyeye karı ekle
bakiye += alimMiktarlari[j] * (int)sonFiyat;

// Satış yapılan alımın bilgilerini listelerden kaldır
alimFiyatlari.RemoveAt(j);
alimMiktarlari.RemoveAt(j);
karFiyatlari.RemoveAt(j);

// İndeksi geri al
j--;
}
}
}
}