Forex'te Pip Nedir? Geliştirici için Pip, Pipette ve FX Matematiği Kılavuzu (2026)
Bir trading botu, pozisyon büyüklüğü hesaplayıcısı, risk paneli veya herhangi bir FX-farkındalık ürünü inşa ediyorsanız, hızlıca şu soruyla karşılaşacaksınız: Forex'te pip nedir ve değerini kodda nasıl hesaplarım? Bunu yanlış yaparsanız P&L'iniz bozulur, stop-loss'larınız yanlış seviyelerde tetiklenir ve kullanıcılarınız sabırlı olmayacaktır.
Bu kılavuz pip, pipette ve tam pip değer formülünü bir geliştiricinin bakış açısından açıklıyor — JavaScript, Python, PHP ve cURL'de çözülmüş örnekler ve kopyalanabilir kodla. Sonunda Finexly API belgelerinden gerçek zamanlı kurları çeken ve ders kitaplarının atladığı her uç durumu işleyen çalışan bir pip hesaplayıcınız olacak.
Pip Nedir? Hızlı Tanım
Bir pip ("percentage in point" veya "price interest point" kısaltması) bir döviz çiftinin en küçük standartlaştırılmış fiyat artışıdır. Çoğu çift için bu kotasyonun dördüncü ondalık basamağıdır — 0.0001'lik bir hareket. Japon yeniyle kote edilen çiftlerde, ikinci ondalık basamaktır — 0.01'lik bir hareket.
Somut örnekler:
- EUR/USD
1.0850'den1.0851'e hareket eder → 1 pip (EUR başına 0.0001 USD değişim). - GBP/USD
1.2640'tan1.2655'e hareket eder → 15 pip. - USD/JPY
154.20'den154.30'a hareket eder → 10 pip (USD başına 0.10 JPY değişim). - AUD/JPY
99.45'ten99.40'a hareket eder → −5 pip.
Pip, "fiyat ne kadar hareket etti?" sorusu için FX piyasasının evrensel birimidir — mutlak fiyat seviyeleri çok farklı olan çiftler arasında konuşmayı normalleştirdiği için ham ondalıklardan çok daha kullanışlıdır.
Pip vs Pipette vs Point
Modern brokerlar ve veri sağlayıcıları, kurları standart pip'in ötesinde bir ondalık basamakla daha kote eder. Bu ekstra rakam pipette, kesirli pip veya basitçe point olarak adlandırılır. Bir pipette, bir pip'in onda birine eşittir.
| Çift | Pip boyutu | Pipette boyutu | Örnek kotasyon |
|---|---|---|---|
| EUR/USD | 0.0001 | 0.00001 | 1.08507 |
| GBP/USD | 0.0001 | 0.00001 | 1.26482 |
| USD/JPY | 0.01 | 0.001 | 154.215 |
| EUR/JPY | 0.01 | 0.001 | 167.482 |
1.08507 olarak gösterdiğinde sondaki 7 pipette'tir — genellikle bir trading platformunda daha küçük veya üst simge olarak işlenir. Bir geliştirici olarak bu ayrımı dikkatlice ele alın: pipette içeren kotasyonlarda string aritmetiği kullanarak fiyat farklarını hesaplarsanız, doğru ölçeklendirmediğiniz sürece pip hareketlerini 10 kat eksik raporlayacaksınız.Güvenli bir kural: her zaman sayısal bir türe normalleştirin, sonra o çiftin pip boyut sabitiyle çarpın veya bölün.
Çiftler Arasında Pip Boyutları Neden Farklı
JPY çiftleri için iki ondalıklı pip keyfi bir seçim değildir. Japon yeni çoğu rezerv para birimine göre küçük bir birim değere sahiptir — 2026'da yaklaşık 1 USD ≈ 154 JPY — bu nedenle dört ondalığa kote etmek kozmetik olarak küçük fiyat hareketleri ve trading ekranlarında okunamayan merdivenler oluştururdu. İki ondalığa kesmek, fiyat hareketini diğer ana çiftlerle görsel olarak orantılı tutar.
Aynı mantık, diğer "düşük birim değerli" kote para birimlerinden bir avucu için de geçerlidir (Kore wonu, Macar forinti vb.) — genellikle 0.01 veya 1 pip boyutuyla kote edilir. Çoklu çift sistemi inşa ederken, asla 0.0001'i pip boyut sabiti olarak hard-code etmeyin. Her zaman çift bazında arayın.
Çoğu çift için işe yarayan pragmatik bir tespit kuralı:
function getPipSize(pair) {
// pair example: "EURUSD" or "EUR/USD"
const quote = pair.replace("/", "").slice(3, 6).toUpperCase();
const twoDecimalQuotes = new Set(["JPY", "HUF", "KRW"]);
return twoDecimalQuotes.has(quote) ? 0.01 : 0.0001;
}
console.log(getPipSize("EURUSD")); // 0.0001
console.log(getPipSize("USD/JPY")); // 0.01
console.log(getPipSize("EURHUF")); // 0.01Bir üretim sistemi için ISO 4217 para birimi kodlarına göre indekslenmiş tam bir pip boyutları tablosu isteyeceksiniz — tam liste için ISO 4217 para birimi kodları tam geliştirici kılavuzumuza bakın.
Pip Değer Formülü
Herhangi bir P&L hesaplaması için temel soru: Baz para biriminin N birimlik bir pozisyonu için, çift bir pip hareket ettiğinde hesap bakiyem ne kadar değişir?
Genel formül:
pip_value_in_quote_currency = pip_size × position_size
pip_value_in_account_currency = pip_value_in_quote_currency × (quote_to_account_rate)Hesap para biriminizin işlem yaptığınız çiftle ilişkisine bağlı olarak üç durum.
Durum 1: Hesap Para Birimi = Kote Para Birimi
En basit durum. USD hesabında EUR/USD işlem yapıyorsanız, her pip ek dönüştürmeye gerek olmadan sabit bir dolar miktarı değerindedir.
pip_value = pip_size × position_sizeUSD hesabında 100,000 birim (bir standart lot) EUR/USD için:
0.0001 × 100,000 = pip başına 10 USDBu, her yerde alıntılanan ders kitabı "standart lot başına pip başına 10 dolar" — yalnızca kote para birimi hesap para birimiyle eşleştiğinde geçerlidir.
Durum 2: Hesap Para Birimi = Baz Para Birimi
USD hesabında USD/CHF işlem yapıyorsanız, pip hareketi CHF cinsindendir ve çiftin mevcut ask kuruyla USD'ye geri dönüştürülmelidir.
pip_value_in_quote = pip_size × position_size
pip_value_in_account = pip_value_in_quote / current_rateUSD/CHF = 0.9050 olduğunda 100,000 birim USD/CHF için:
0.0001 × 100,000 = 10 CHF
10 CHF / 0.9050 = pip başına 11.05 USDDurum 3: Cross Çift (Hiçbir Taraf Hesap Para Birimi Değil)
En zor durum. USD hesabında EUR/JPY işlem yapıyorsunuz. Pip hareketi JPY'dedir ve USD olarak ifade etmek için JPY ile USD arasında bir dönüştürme kuru gereklidir.
pip_value_in_quote = pip_size × position_size
pip_value_in_account = pip_value_in_quote × (account_per_quote_rate)USD/JPY = 154.20 olduğunda 100,000 birim EUR/JPY için:
0.01 × 100,000 = 1,000 JPY
1,000 JPY / 154.20 = pip başına 6.49 USDEUR/JPY kurunu değil USD/JPY kurunu kullandığımıza dikkat edin, çünkü EUR'dan herhangi bir şeye değil, JPY'den USD'ye dönüşüm yapıyoruz.
Finexly API ile Pip Hesaplayıcı İnşa Etmek
Yukarıdaki formülü gerçek, canlı bir döviz kuru API'sine bağlayalım, böylece piyasa hareket ettikçe hesaplayıcı doğru kalır. Ücretsiz API anahtarı için Finexly'ye kaydolun — kart gerekmiyor, ayda 1,000 istek, böyle bir hesaplayıcı için fazlasıyla yeterli. Tam istek referansı Finexly API belgelerinde.
JavaScript (Node.js)
const FINEXLY_API_KEY = process.env.FINEXLY_API_KEY;
const BASE_URL = "https://finexly.com/api";
// Two-decimal-pip currencies. Extend as needed.
const TWO_DECIMAL_PIP_QUOTES = new Set(["JPY", "HUF", "KRW"]);
function pipSize(quoteCcy) {
return TWO_DECIMAL_PIP_QUOTES.has(quoteCcy) ? 0.01 : 0.0001;
}
async function getRate(base, quote) {
const res = await fetch(
`${BASE_URL}/latest?base=${base}&symbols=${quote}&api_key=${FINEXLY_API_KEY}`
);
const json = await res.json();
return json.rates[quote];
}
async function calcPipValue({ pair, positionSize, accountCcy }) {
const base = pair.slice(0, 3).toUpperCase();
const quote = pair.slice(3, 6).toUpperCase();
const pip = pipSize(quote);
const pipValueInQuote = pip * positionSize;
if (accountCcy === quote) {
return pipValueInQuote;
}
if (accountCcy === base) {
const rate = await getRate(base, quote);
return pipValueInQuote / rate;
}
// Cross: convert quote -> account via account/quote rate
const rate = await getRate(accountCcy, quote);
return pipValueInQuote / rate;
}
// Example: 100,000 units of EUR/JPY on a USD account
calcPipValue({
pair: "EURJPY",
positionSize: 100_000,
accountCcy: "USD",
}).then((v) => console.log(`Pip value: ${v.toFixed(2)} USD`));Python
import os
import requests
FINEXLY_API_KEY = os.environ["FINEXLY_API_KEY"]
BASE_URL = "https://finexly.com/api"
TWO_DECIMAL_PIP_QUOTES = {"JPY", "HUF", "KRW"}
def pip_size(quote_ccy: str) -> float:
return 0.01 if quote_ccy in TWO_DECIMAL_PIP_QUOTES else 0.0001
def get_rate(base: str, quote: str) -> float:
r = requests.get(
f"{BASE_URL}/latest",
params={"base": base, "symbols": quote, "api_key": FINEXLY_API_KEY},
timeout=10,
)
r.raise_for_status()
return r.json()["rates"][quote]
def calc_pip_value(pair: str, position_size: float, account_ccy: str) -> float:
base, quote = pair[:3].upper(), pair[3:6].upper()
pip = pip_size(quote)
pip_in_quote = pip * position_size
if account_ccy == quote:
return pip_in_quote
if account_ccy == base:
return pip_in_quote / get_rate(base, quote)
# Cross
return pip_in_quote / get_rate(account_ccy, quote)
if __name__ == "__main__":
value = calc_pip_value("EURJPY", 100_000, "USD")
print(f"Pip value: {value:.2f} USD")PHP
<?php
$apiKey = getenv('FINEXLY_API_KEY');
$baseUrl = 'https://finexly.com/api';
$twoDecimalPipQuotes = ['JPY', 'HUF', 'KRW'];
function pipSize(string $quoteCcy): float {
global $twoDecimalPipQuotes;
return in_array($quoteCcy, $twoDecimalPipQuotes, true) ? 0.01 : 0.0001;
}
function getRate(string $base, string $quote): float {
global $apiKey, $baseUrl;
$url = "$baseUrl/latest?base=$base&symbols=$quote&api_key=$apiKey";
$body = file_get_contents($url);
$data = json_decode($body, true);
return $data['rates'][$quote];
}
function calcPipValue(string $pair, float $positionSize, string $accountCcy): float {
$base = strtoupper(substr($pair, 0, 3));
$quote = strtoupper(substr($pair, 3, 3));
$pipInQuote = pipSize($quote) * $positionSize;
if ($accountCcy === $quote) return $pipInQuote;
if ($accountCcy === $base) return $pipInQuote / getRate($base, $quote);
return $pipInQuote / getRate($accountCcy, $quote);
}
echo number_format(calcPipValue('EURJPY', 100000, 'USD'), 2) . " USD\n";cURL
Yalnızca kendi pip hesaplamanıza takmak için ham kura ihtiyacınız varsa:
curl "https://finexly.com/api/latest?base=USD&symbols=JPY&api_key=YOUR_KEY"
# {"base":"USD","rates":{"JPY":154.20},"timestamp":1746...}Bu tek kur, yukarıdaki formülü kullanarak bir JPY pip hareketini USD'ye dönüştürmek için yeterlidir.
Geliştiricilerin Yaptığı Yaygın Pip Matematik Tuzakları
Pipler basit görünür. Bug'lar incedir. Dikkat edilmesi gereken beş şey:
1. Pip aritmetiğinde kayan nokta sapması. JavaScript'te 0.1 + 0.2 !== 0.3 ve aynı problem ailesi, birçok işlem üzerinde pip P&L'i toplarken sizi ısırır. Üretime ulaşan herhangi bir şey için — özellikle finansal hesaplamalar — dahili olarak tamsayı pip sayaçları kullanın (JPY olmayan çiftler için fiyatları 10_000 ile, JPY çiftleri için 100 ile çarpın) veya decimal.js ya da Python'un decimal.Decimali gibi bir ondalık kütüphanesi.
2. 0.0001'i pip boyutu olarak hard-code etmek. Bu, bir kullanıcı bir tane işlem yaptığı anda her JPY çiftini bozar. Pip boyutunu her zaman çift başına bir tablodan arayın.
3. Fiyatları karşılaştırırken pip ile pipette'i karıştırmak. 1.08502 gibi 5 ondalıklı bir EUR/USD kotasyonu, 1.08501'den 1.08502 piplik bir hareket gibi görünür, ama yalnızca 1 pipette = 0.1 pip'tir. Float'lara normalleştirin ve pip boyutuna bölün.
4. Durum 3'te hesap para birimi dönüşümü için eski kurları kullanmak. Açık bir pozisyon için bir pip değer hesaplaması, pozisyon açıldığı andaki kuru değil mevcut kuru kullanmalıdır. Kurları önbelleğe alıyorsanız, dönüşümün doğru kalması için TTL'leri yeterince kısa ayarlayın — üretimde test edilmiş kalıplar için para birimi API önbellekleme ve hata yönetimi en iyi uygulamalarına bakın.
5. Bid/ask asimetrisini unutmak. Brokerlar, longları kapatmak için bid'i ve shortları kapatmak için ask'ı kullanarak P&L'i dönüştürür. Yalnızca bir tahmine ihtiyaç duyan son kullanıcıya dönük bir hesaplayıcı için orta kur idare eder. Bir yürütme sistemi için uygun tarafı kullanın.
Bid/ask ayrımına daha derin bir bakış için spot kur vs forward kur yazımıza bakın ve cross-çift dönüşümleri için çapraz döviz kurları açıklandı'a.
Bir Bakışta Pip Değeri: Yaygın Çiftler
USD cinsinden bir hesabın bir standart lot (100,000 birim) işlem yapması için, Mayıs 2026 gösterge kurlarındaki tipik pip değerleri. Bunları doğmadan ziyade bir akıl sağlığı kontrolü olarak ele alın — gerçek bir hesaba dokunan herhangi bir şey için canlı kurları Finexly döviz dönüştürücüsünden veya API'den çekin.
| Çift | Pip boyutu | Pip değeri (1 lot, USD hesap) |
|---|---|---|
| EUR/USD | 0.0001 | 10.00 USD |
| GBP/USD | 0.0001 | 10.00 USD |
| USD/CHF | 0.0001 | ~11.05 USD |
| USD/JPY | 0.01 | ~6.49 USD |
| EUR/JPY | 0.01 | ~6.49 USD |
| AUD/USD | 0.0001 | 10.00 USD |
| EUR/GBP | 0.0001 | ~12.61 USD |
Sıkça Sorulan Sorular
Forex'te pip basit kelimelerle nedir?
Pip, bir döviz çiftinin fiyatındaki en küçük standartlaştırılmış harekettir — çoğu çift için tipik olarak dördüncü ondalık (0.0001) ve yen çiftleri için ikinci ondalık (0.01). Fiyat hareketini ölçmek için FX piyasasının evrensel birimidir.
Pip değerini kodda nasıl hesaplarım? Pip boyutunu pozisyon boyutuyla çarparak kote para birimi cinsinden pip değerini elde edin, sonra mevcut döviz kurunu kullanarak hesap para biriminize dönüştürün. Üç durum (kote = hesap, baz = hesap, cross) yukarıdaki JavaScript, Python ve PHP örneklerinde gösterilmiştir.
Pip ile pipette arasındaki fark nedir?
Pipette, bir pip'in onda biridir — bazı brokerların ve veri akışlarının daha sıkı spread'ler için eklediği kesirli rakam. EUR/USD'de bir pip 0.0001 ise, bir pipette 0.00001'dir.
Neden EUR/USD'de bir pip yaklaşık 10 dolara eşittir?
Çünkü bir standart lot 100,000 birimdir ve JPY olmayan çiftler için pip boyutu 0.0001'dir. 100,000 × 0.0001 = 10 kote para birimi birimi. Kote para birimi USD olduğunda, doğrudan 10 dolardır.
Pip hesaplayıcı inşa etmek için ücretli bir API gerekiyor mu? Hayır. Finexly'nin ücretsiz planı size ayda 1,000 istek verir ve 170+ para birimini kapsar — kişisel bir pip hesaplayıcı veya düşük trafikli yan proje için yeterli. Daha yüksek hacim için fiyatlandırma planlarımıza bakın.
Pip boyutları kripto çiftlerinde farklı mı? Kripto çiftleri standart FX pip kuralını izlemez. BTC/USD genellikle borsaya bağlı olarak 2 veya 4 ondalıklı kote edilir ve "1 pip" borsa tarafından tanımlanır. Saf kripto P&L için pip yerine mutlak fiyat farklarıyla çalışın.
İnşa Etmeye Hazır mısınız?
Şimdi formüle, üç çalışan kod örneğine ve çoğu insanı ısıran bug'lar listesine sahipsiniz. Son parça, hesaplamanın ortasında size kaymayacak gerçek zamanlı kurlardır.
Ücretsiz Finexly API anahtarınızı alın — kredi kartı gerekmiyor. Ayda 1,000 ücretsiz istek, 170+ para birimi, 50 ms altı gecikme ile başlayın ve yalnızca ihtiyaç duyduğunuzda yükseltin. Pip hesaplayıcınız, arkasındaki matematik kadar doğru kurları hak ediyor.
Explore More
Vlado Grigirov
Senior Currency Markets Analyst & Financial Strategist
Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...
View full profile →