Altın/Gümüş Oranı Nedir ve Nasıl Hesaplanır?
Altın/gümüş oranı neyi ölçer, canlı altın ve gümüş fiyatlarından nasıl hesaplanır ve geçmişi bir API ile Python ve JavaScript'te nasıl grafiğe dökülür?
Altın/gümüş oranı nedir?
Altın/gümüş oranı, bir troy ons altın almak için kaç troy ons gümüş gerektiğini gösterir. Altın fiyatını, ikisi de aynı para biriminde ve aynı ağırlık için olmak üzere gümüş fiyatına bölerek bulunur. MetalAPI dokümantasyonu boyunca kullanılan örnek fiyatlarla, yani troy ons başına 3.997,89 ABD doları altın ve 53,94 ABD doları gümüşle oran yaklaşık 74,1'dir: bu fiyatlarda bir ons altın kabaca 74 ons gümüş değerindedir.
Her iki fiyat da aynı para biriminde olduğu için para birimi sadeleşir ve oranın birimi kalmaz; bu da onu iki metali doğrudan karşılaştırmanın derli toplu bir yolu hâline getirir. Şöyle okunur:
- Yükselen bir oran, altının gümüşe göre değer kazandığı anlamına gelir: ya altın gümüşten daha çok yükselmiştir ya da daha az düşmüştür.
- Düşen bir oran, gümüşün altına göre değer kazandığı anlamına gelir.
- Oran tek başına iki fiyattan hiçbirinin yönü hakkında bir şey söylemez. Oran yükselirken iki metal de düşebilir, oran düşerken ikisi de yükselebilir.
Aşağıdaki bölümler oranın nasıl doğru hesaplanacağını, baz para biriminin neden önemli olmadığını ve oranın MetalAPI REST API ile nasıl takip edilip grafiğe döküleceğini ele alıyor.
Bu yazı, oranın nasıl tanımlandığını ve hesaplandığını açıklayan eğitim amaçlı bir yazıdır. Finansal veya yatırım tavsiyesi değildir; içindeki fiyatlar piyasa verisi değil, MetalAPI dokümantasyonundaki örnek değerlerdir.
Altın/gümüş oranı nasıl hesaplanır
Formül tek bir bölme işleminden ibarettir:
altın/gümüş oranı = altın fiyatı ÷ gümüş fiyatı (aynı para birimi, aynı birim)
3.997,89 ÷ 53,94 ≈ 74,12
gümüş/altın oranı = 1 ÷ 74,12 ≈ 0,0135 (ons gümüş başına ons altın)Bölme işlemi basittir; hatalar girdilerde yapılır:
- İki metal için aynı birim. Ons başına fiyatı ons başına fiyata, gram başına fiyatı gram başına fiyata bölün. Gram başına altını troy ons başına gümüşe bölmek, bir troy onstaki gram sayısı olan 31,1 kat (31,1034768) hatalı sonuç verir.
- Aynı an. İki fiyatı da aynı yanıttan veya aynı günün kapanışından alın. Canlı altın fiyatını dünkü gümüş kapanışına bölmek iki farklı piyasa durumunu birbirine karıştırır.
- Aynı tür fiyat. Orta fiyatı orta fiyata, kapanışı kapanışa bölün. Bir metal için satıcının satış fiyatını, diğeri için spot fiyatı kullanmak, satıcının makasını ve primini orana ekler.
- Sonda yuvarlayın. Yuvarlanmamış fiyatları bölün ve oranı yalnızca gösterim için, genellikle bir veya iki ondalık basamağa yuvarlayın.
Bir MetalAPI yanıtında fiyatlar, baz para birimiyle başlayan anahtarlardır: varsayılan baz USD ile USDXAU ve USDXAG. Yalın XAU ve XAG anahtarları terstir (dolar başına ons). XAG değerini XAU değerine bölmek de aynı oranı verir, ancak ön ekli anahtarları okumak, ters bir değerin fiyat olarak kullanılmasını önler.
Baz para birimi neden önemli değil
Altın ve gümüş genellikle ABD doları cinsinden kote edilir, ancak oran her para biriminde aynıdır. base=EUR ile MetalAPI, dolar fiyatlarını bir euronun dolar fiyatına bölerek iki fiyatı da euro cinsinden ifade eder ve bu ortak çarpan bölme işleminde sadeleşir:
EURXAU = USDXAU ÷ USDEUR
EURXAG = USDXAG ÷ USDEUR
EURXAU ÷ EURXAG = USDXAU ÷ USDXAGMetalAPI tüm çapraz kurları tek bir anlık görüntüden hesaplar; bu nedenle base=EUR, base=INR veya base=JPY, on anlamlı basamağın sonuncusundaki yuvarlama dışında dolarla aynı oranı verir. Aynı durum unit için de geçerlidir: unit=gram ile iki metal fiyatı da 31,1034768'e bölünür ve oran değişmez.
Para birimi, iki fiyat farklı kaynaklardan veya farklı zamanlardan geldiğinde önem kazanır; örneğin bir para birimindeki altın fiyatı ile saatler sonra başka bir para biriminde alınmış gümüş fiyatı: bu durumda döviz kuru tam olarak sadeleşmez. İki fiyatı da tek bir yanıttan almak bunu önler.
Bölmeyi API'ye de bırakabilirsiniz. base, metaller dahil desteklenen her sembolü kabul eder. base=XAG ile her fiyat troy ons gümüş cinsinden ifade edilir; dolayısıyla bir ons altının gümüş cinsinden fiyatı olan XAGXAU, doğrudan oranın kendisidir:
curl "https://metalapi.com/api/v1/latest?base=XAG¤cies=XAU" \
-H "X-API-Key: $METALAPI_KEY"Bu yanıtta yalın XAU anahtarı terstir: ons gümüş başına ons altın. Bu yazının geri kalanı oranı bunun yerine dolar fiyatlarından hesaplıyor; çünkü genellikle iki fiyatı da oranın yanında göstermek veya saklamak istersiniz.
Güncel altın/gümüş oranını API'den alın
currencies=XAU,XAG ile tek bir /latest isteği, iki fiyatı da aynı anlık görüntüden döndürür ve tek istek sayılır. Node.js 18 veya daha yeni bir sürümde bunu ratio.mjs olarak kaydedin ve node ratio.mjs komutuyla çalıştırın:
const params = new URLSearchParams({ currencies: "XAU,XAG" });
const res = await fetch(`https://metalapi.com/api/v1/latest?${params}`, {
headers: { "X-API-Key": process.env.METALAPI_KEY },
signal: AbortSignal.timeout(10_000),
});
const data = await res.json();
if (!data.success) {
throw new Error(`MetalAPI ${data.error.code} (${data.error.type}): ${data.error.info}`);
}
const gold = data.rates[`${data.base}XAU`];
const silver = data.rates[`${data.base}XAG`];
const ratio = gold / silver;
const asOf = new Date(data.timestamp * 1000).toISOString();
console.log(`Gold: ${gold} ${data.base} per troy ounce`);
console.log(`Silver: ${silver} ${data.base} per troy ounce`);
console.log(`Gold/silver ratio: ${ratio.toFixed(2)} (data from ${asOf})`);Örnek fiyatlarla son satır 74,12 oranını yazdırır. Güncellik, planınızın güncelleme aralığına bağlıdır: Free planda günlük, Lite'ta 30 dakikada bir, Standard'da 10 dakikada bir, Advanced ve Pro'da 60 saniyede bir, Enterprise'da ise 5 saniyeye kadar. New York saatiyle cuma 17:00'den pazar 17:00'ye kadar spot piyasa kapalıdır ve oran cuma kapanışında kalır.
/latest ile alınan oran, orta fiyatlar üzerinden hesaplanan bir orandır. Metalin gerçekte hangi oranda takas edilebileceğini görmek istiyorsanız alış ve satış fiyatlarını kullanın; bunlar Standard ve üzeri planlarda currencies parametresine XAU-BID, XAU-ASK, XAG-BID ve XAG-ASK eklenerek alınabilir:
- Bir ons altını alış fiyatından satmak,
USDXAU-BID ÷ USDXAG-ASKons gümüş alır. - Gümüşle bir ons altın almak,
USDXAU-ASK ÷ USDXAG-BIDons gümüş gerektirir.
Her iki sayı da iki makas kadar orta orandan daha elverişsizdir; satıcının kendi primleri de bunun üzerine eklenir. Spot, alış, satış ve makas yazısı bu kotasyonların nasıl oluşturulduğunu açıklıyor.
Altın/gümüş oranının geçmişi nasıl grafiğe dökülür
Geçmişe dönük bir grafik için iki metalin de günlük kapanışlarına ihtiyacınız vardır. /timeframe (takma adı /timeseries) bunları bir tarih aralığı için tek bir istekle döndürür: Free planda istek başına en fazla 30 gün, ücretli planlarda 365 gün. Günlük metal geçmişi 2000 yılında başlar ve her plan geçmişin tamamını sorgulayabilir; planlar yalnızca tek bir isteğin kaç günü kapsayabileceği konusunda farklılık gösterir.
Bu Python betiği son beş yılı 365 günlük parçalar hâlinde (beş istek) indirir, iki fiyatın da bulunduğu her gün için oranı hesaplar, bir CSV dosyası yazar, birkaç istatistik yazdırır ve 50 günlük hareketli ortalamayla bir grafik kaydeder. Free planda MAX_DAYS = 30 ve DAYS_BACK = 90 ayarlayın; bu üç istek tutar.
import csv
import os
import statistics
from datetime import date, datetime, timedelta, timezone
import matplotlib.pyplot as plt
import requests
API = "https://metalapi.com/api/v1"
MAX_DAYS = 365 # istek başına en uzun aralık: ücretli planlarda 365, Free planda 30
DAYS_BACK = 5 * 365 # Free planda bunu birkaç ayla sınırlı tutun
session = requests.Session()
session.headers["X-API-Key"] = os.environ["METALAPI_KEY"]
def daily_closes(start: date, end: date) -> dict:
"""start ile end arasındaki (dahil) günlük altın ve gümüş kapanışları, tarihe göre anahtarlanmış."""
rates = {}
while start <= end:
chunk_end = min(start + timedelta(days=MAX_DAYS), end)
r = session.get(
f"{API}/timeframe",
params={"start_date": start.isoformat(), "end_date": chunk_end.isoformat(), "currencies": "XAU,XAG"},
timeout=30,
)
data = r.json()
if not data["success"]:
err = data["error"]
raise RuntimeError(f"MetalAPI {err['code']} ({err['type']}): {err['info']}")
rates.update(data["rates"])
start = chunk_end + timedelta(days=1)
return rates
end = datetime.now(timezone.utc).date() - timedelta(days=1) # dünün kapanışı kesindir
rates = daily_closes(end - timedelta(days=DAYS_BACK), end)
rows = []
for day in sorted(rates):
values = rates[day]
if "USDXAU" in values and "USDXAG" in values: # iki metalden birinin eksik olduğu günleri atla
gold, silver = values["USDXAU"], values["USDXAG"]
rows.append((day, gold, silver, gold / silver))
with open("gold-silver-ratio.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["date", "gold_usd_oz", "silver_usd_oz", "ratio"])
writer.writerows(rows)
ratios = [r[3] for r in rows]
print(f"{len(rows)} trading days, {rows[0][0]} to {rows[-1][0]}")
print(f"latest {ratios[-1]:.2f}, min {min(ratios):.2f}, max {max(ratios):.2f}, median {statistics.median(ratios):.2f}")
window = 50
days = [date.fromisoformat(r[0]) for r in rows]
moving = [sum(ratios[i - window + 1 : i + 1]) / window for i in range(window - 1, len(ratios))]
plt.figure(figsize=(10, 4))
plt.plot(days, ratios, linewidth=1, label="Gold/silver ratio")
plt.plot(days[window - 1 :], moving, linewidth=1, label=f"{window}-day moving average")
plt.ylabel("Ounces of silver per ounce of gold")
plt.legend()
plt.tight_layout()
plt.savefig("gold-silver-ratio.png", dpi=150)Bazı ayrıntılar bilinçli olarak böyledir:
- Takvim üzerinde değil, dönen tarihler üzerinde döner.
/timeframehafta sonlarını ve piyasa tatillerini dışarıda bırakır. - Dünün UTC tarihinde biter. Bugünün çubuğu hâlâ hareket ediyordur ve gelecekteki bir
end_datedeğeri205hatası döndürür. - İki fiyatı da oranın yanında saklar; böylece herhangi bir satırı yeniden indirmeden kontrol edebilirsiniz.
- İstatistikler yalnızca indirdiğiniz dönemi tanımlar.
DAYS_BACKdeğerini değiştirdiğinizde onlar da değişir.
Aynı seri JavaScript'te, bir /timeframe yanıtının rates nesnesi üzerinde tek bir map işlemidir; örneğin geçmiş veriler rehberindeki aralık yardımcısından alınan bir yanıt:
// rates = /timeframe?currencies=XAU,XAG yanıtının "rates" nesnesi
const series = Object.entries(rates)
.filter(([, r]) => r.USDXAU && r.USDXAG)
.sort(([a], [b]) => a.localeCompare(b))
.map(([day, r]) => ({ day, gold: r.USDXAU, silver: r.USDXAG, ratio: r.USDXAU / r.USDXAG }));Geçmiş günlerin kapanış fiyatları değişmez; bu nedenle bir aralığı bir kez indirin ve son günler için kısa bir istekle tamamlayın. 2000 yılına kadar eksiksiz bir veri doldurma (ücretli bir planda yaklaşık 27 istek), bir SQLite arşivi ve altını oranla birlikte gösteren bir matplotlib grafiği için API ile geçmiş altın ve gümüş fiyatları yazısına bakın.
Ekim 2026'dan önceki metal fiyatları en yakın vadeli futures kontratlarından türetilmiştir; bu nedenle aynı gündeki spot fiyatlardan biraz farklı olabilir. İki metal de aynı şekilde türetilir, ancak serinizi başka bir kaynaktaki oran grafiğiyle karşılaştırırken bunu göz önünde bulundurun.
Altın/gümüş oranı nasıl kullanılır
Oran göreli bir ölçüdür. Altın ile gümüşün birbirine karşı nasıl hareket ettiğini anlatır, ikisinden birinin nereye gittiğini değil. Yaygın kullanımlar:
- Göreli performans. Bir dönemin sonundaki oranın başındaki orana bölümü, altının büyüme çarpanının gümüşünkine bölümüne eşittir. %5 yükselen bir oran, iki fiyat mutlak olarak ne yapmış olursa olsun, altının o dönemde gümüşe göre %5 değer kazandığı anlamına gelir.
- Gösterge panellerinde ve raporlarda bağlam. Fiyat takip siteleri, satıcı siteleri ve bültenler oranı iki fiyatın yanında gösterir; aynı
/latestisteği bunu ek maliyet olmadan sağlar. - Kendi geçmişiyle karşılaştırma. Bazı kişiler güncel oranı, seçtikleri bir dönemdeki ortalaması, medyanı veya aralığıyla karşılaştırarak oranın o döneme göre yüksek mi düşük mü olduğunu tarif eder. Yukarıdaki betik, indirdiğiniz her aralık için bu rakamları yazdırır.
- Metaller arasında takas. Fiziki metal sahiplerinin bir kısmı, oran önceden belirledikleri bir seviyeye ulaştığında altını gümüşle ya da tersini takas eder. Bunun onlara daha fazla metal kazandırıp kazandırmayacağı, oranın daha sonra bekledikleri yönde hareket etmesine bağlıdır ve bunu hiçbir şey garanti etmez; üstelik her takasta yukarıda açıklanan satıcı makasları ve primleri ödenir.
- Diğer oranlar. Aynı bölme işlemi, aynı para birimindeki herhangi iki fiyat için çalışır: altın/platin (
USDXAU ÷ USDXPT) veya altın/petrol (USDXAU ÷ USDWTI, ons altın başına varil petrol). Farklı varlık sınıfları arasındaki oranlardaunitparametresini varsayılan değerinde bırakın; çünküunitmetal fiyatlarını değiştirir, enerji fiyatlarını değiştirmez.
Bu kullanımların hiçbiri bir tahmin değildir. Oranın geri dönmek zorunda olduğu sabit bir normal seviyesi yoktur ve yüksek ya da düşük bir değer, tek başına iki metalden birini almak veya satmak için bir neden değildir. Yatırım kararları veriyorsanız yetkin bir finansal danışmanla görüşün.
Altın/gümüş oranını uygulamanızda takip edin
Bir API anahtarı almak için ücretsiz bir hesap oluşturun. Free planın ayda 100 isteği, günlük fiyatları ve 30 günlük aralıkları, günlük bir oran ve birkaç aylık geçmiş için yeterlidir. Ücretli planlar daha güncel fiyatlar, uzun veri doldurma işlemleri için 365 günlük aralıklar ve Standard'dan itibaren alış/satış fiyatları ekler; planları fiyatlandırma sayfasında karşılaştırın. Yalnızca gümüş fiyatları için gümüş fiyatı API rehberine bakın.
SSS
74'lük bir altın/gümüş oranı ne anlama gelir?
Kullanılan fiyatlarla bir troy ons altının yaklaşık 74 troy ons gümüş kadar ettiği anlamına gelir. Yalnızca iki metalin göreli fiyatını tanımlar. Metallerden herhangi birinin mutlak anlamda pahalı mı ucuz mu olduğunu söylemez.
Altın/gümüş oranı her para biriminde ve birimde aynı mıdır?
Evet; iki fiyat da aynı ana ait ve aynı ağırlık için olduğu sürece, çünkü para birimi ve birim bölme işleminde sadeleşir. MetalAPI tüm para birimlerini ve birimleri tek bir anlık görüntüden türetir; bu nedenle herhangi bir base ve unit, çok küçük yuvarlama farkları dışında aynı oranı verir.
Altın/gümüş oranı ne sıklıkla değişir?
İki fiyattan biri hareket ettiğinde, yani piyasalar açıkken sürekli olarak. API üzerinden oranı, planınızın güncelleme aralığında görürsünüz: Free planda günlükten Enterprise'da 5 saniyede bire kadar. Hafta sonu boyunca cuma günkü değerinde kalır.
Oranı ne kadar geriye dönük hesaplayabilirim?
Altın ve gümüş için günlük kapanışlar her planda 2000 yılına kadar uzanır. Tek bir /timeframe isteği Free planda en fazla 30 günü, ücretli planlarda 365 günü kapsar; bu nedenle geçmişin tamamı ücretli bir planda yaklaşık 27 istek tutar. Ekim 2026'dan önceki fiyatlar en yakın vadeli futures kontratlarından türetilmiştir.
Yüksek bir altın/gümüş oranı gümüş almak için bir sinyal mi?
Bu yazı yatırım tavsiyesi vermez. Yüksek bir oran yalnızca, karşılaştırdığınız döneme kıyasla altının gümüşe göre pahalı olduğu anlamına gelir. Fiyatlardan herhangi birinin veya oranın bundan sonra nasıl hareket edeceğini öngörmez.
Kendi verilerinizle deneyin
Ücretsiz bir hesap oluşturun ve ilk isteğinizi iki dakikadan kısa sürede gönderin. Ayda 100 istek, kredi kartı gerekmez.
Okumaya devam edin
XAU/USD Ne Demek? XAU, XAG, XPT ve XPD Ne Anlama Gelir
XAU/USD ne demek? Altının neden ISO 4217 döviz kodu olduğunu, XAG, XPT ve XPD'nin anlamını ve fiyat ve API verilerinde kur yönünün nasıl okunduğunu öğrenin.
Ücretsiz Altın Fiyatı API'si: Ayda 100 İstekle Neler Yapılır
Ücretsiz altın fiyatı API'si açıkça anlatıldı: MetalAPI Free planı neler içerir, ayda 100 istek önbellek ve toplu sorguyla nasıl yeter, ne zaman yükseltmeli?
Python ile Altın Fiyatı API'si: Veri Çekme, Önbellek ve Grafik
Python'da altın fiyatı API'si kullanın: requests ile canlı fiyatları alın, hataları ve yeniden denemeleri yönetin, önbelleğe alın, pandas ile grafik çizin.