Elimde altınların ne zaman alındığı, kaç gram olarak alındığı, kaçtan alındığı ve ne zaman satıldığı, kaç gram satıldığı ve kaçtan satıldığı bilgisi var. Birde bir değişkene sabit bir güncel kur değeri atadım, buna sonra API ile dinamik bir veri bağlarım.
Bu hesaplamayı nasıl yapabilirim?
Aşağıya yazdığım kadarını ekliyorum ama buradan tam istediğim sonucu alamadım ve hata nerede onuda anlayamadım.
let altinKur = 400;
// Toplam alınan ve satılan gramı hesapla
let toplamAlinanGram = altinAlimlar.reduce((acc, curr) => acc + curr.gram, 0);
let toplamSatilanGram = altinSatislar.reduce((acc, curr) => acc + curr.gram, 0);
// Toplam alınan ve satılan tutarı hesapla
let toplamAlinanTutar = altinAlimlar.reduce((acc, curr) => acc + curr.gram * curr.fiyat, 0);
let toplamSatilanTutar = altinSatislar.reduce((acc, curr) => acc + curr.gram * curr.fiyat, 0);
// yardımcı fonksiyonlar
function toplaVeSayi(dizi) {
let toplam = 0;
let sayi = 0;
for (let i = 0; i < dizi.length; i++) {
toplam += dizi[i].fiyat * dizi[i].gram;
sayi += dizi[i].gram;
}
return { toplam, sayi };
}
function ortalamaFiyat(dizi) {
const { toplam, sayi } = toplaVeSayi(dizi);
return toplam / sayi;
}
// Ortalama alış ve satış fiyatlarını hesapla
let ortalamaAlisFiyati = ortalamaFiyat(altinAlimlar);
let ortalamaSatisFiyati = ortalamaFiyat(altinSatislar);
// Portföy hesaplamalar
let kalanGram = toplamAlinanGram - toplamSatilanGram;
let grKurDeger = kalanGram * altinKur;
let karZarar = toplamSatilanTutar - toplamAlinanTutar;
let netKarZarar = grKurDeger - toplamAlinanTutar;