"Margin is insufficient" (hata -2019), Binance Futures'ın emrinizi fiyatladığı, gereken teminatı emrin açılışta taşıyacağı zarara eklediği ve çıkan tutarın yeni emirler için kullanılabilen bakiyeden büyük olduğunu gördüğü anlamına gelir. Bu bir likidasyon değil, bir rettir: hiçbir şey açılmadı, hiçbir şey kaybedilmedi. Çözüm, o bakiyeyi küçülten ya da emrin maliyetini büyüten yedi şeyden hangisinin devrede olduğunu bulmaktır; aşağıdaki sıra, bunları kontrol etmenin en hızlı yoludur.
-2019 hatası aslında ne anlama gelir
Binance'in API dokümantasyonu bu hatayı -2019 MARGIN_NOT_SUFFICIEN olarak, tek satırlık bir açıklamayla listeler: "Margin is insufficient." Uygulama da aynı reddi düz bir cümleyle gösterir. Mesajın kısa olmasının nedeni, arkasındaki kontrolün basit olmasıdır: yeni emrin maliyeti > emirler için kullanılabilir bakiye. Bu yazının geri kalanı, bu karşılaştırmanın iki tarafını anlatıyor.
Hatanın ne olmadığını bilmek de işe yarar. Cüzdanın kendisiyle ilgili olan -2018 ("Balance is insufficient", yani bakiye yetersiz) değildir. Kaldıraç kademesine göre pozisyon büyüklüğüne konan tavan olan -2027 ("Exceeded the maximum allowable position at current leverage", yani mevcut kaldıraçta izin verilen azami pozisyon aşıldı) değildir. Kalan teminatın taşıyamayacağı bir pozisyonda kaldıracı düşürmeye çalıştığınızda çıkan -2028 ("Leverage is smaller than permitted", yani kaldıraç izin verilenden düşük) da değildir. Dördü aynı öğleden sonra karşınıza çıkabilir ve çözümleri farklıdır.
Bir emir açılmadan önce ne kadara mal olur
Çoğu kişi teminatı pozisyon değeri bölü kaldıraç diye hesaplar. Binance biraz daha büyük bir sayıya bakar. Kendi SSS sayfasında bunu maliyet = başlangıç teminatı + açılış zararı olarak ifade eder:
- Başlangıç teminatı = pozisyon değeri ÷ kaldıraç; pozisyon değeri burada varsayılan bir fiyattan hesaplanır. Piyasa emirlerinde Binance, long ve short için aynı şekilde son fiyat × (1 + %0,15) varsayar.
- Açılış zararı, pozisyonun açıldığı anda işaret fiyatına (mark price) göre taşıyacağı zarardır. İşaret fiyatının üstünde varsayılan bir long bu zararla başlar; işaret fiyatının altına konan bir short limit emri de öyle.
Binance kendi ifadesiyle açılış zararını "işlemciler emir verirken zorunlu likidasyonu önlemek için" hesaba katar. Pratikteki sonucu şudur: kullanılabilir bakiyenizin tamamını kullanacak şekilde boyutlandırılmış bir emir reddedilir.
Kendiniz yeniden hesaplayabileceğiniz bir örnek
10x kaldıraçla 0,01 BTC'lik bir long piyasa emri düşünün; son fiyat da işaret fiyatı da 60.000 USDT olsun.
- Varsayılan fiyat = 60.000 × 1,0015 = 60.090.
- Başlangıç teminatı = 60.090 × 0,01 ÷ 10 = 60,09 USDT.
- Açılış zararı = 0,01 × (60.090 − 60.000) = 0,90 USDT, çünkü varsayılan fiyat işaret fiyatının üstünde.
- Maliyet = 60,09 + 0,90 = 60,99 USDT.
Basit tahmin 60,00 idi. Kullanılabilir bakiyeniz tam 60,00 USDT ise bu emir -2019 ile reddedilir. Aynı piyasa emri short olarak açılsaydı maliyeti 60,09 olurdu, çünkü işaret fiyatının üstünde varsayılan bir short açılış zararı taşımaz. Küçük bir hesapta bu %1–2'lik fark, "ama bakiyem yetiyordu" şikâyetlerinin çoğunun tüm açıklamasıdır.
Binance'in karşılaştırdığı bakiye
Karşılaştırmanın diğer tarafı cüzdan bakiyeniz değildir. Binance'in API'si bunu kullanılabilir bakiye (available balance) olarak verir ve emirler için şöyle hesaplanır: çapraz cüzdan bakiyesi, artı çapraz pozisyonlarınızın gerçekleşmemiş kâr veya zararı, eksi çapraz pozisyonlara ve açık emirlere zaten bağlanmış başlangıç teminatı.
Bundan üç sonuç çıkar ve her biri bir sonraki bölümdeki nedenlerden biridir:
- Unuttuğunuz bekleyen bir limit emri hâlâ teminat ayırır.
- Herhangi bir çapraz pozisyondaki gerçekleşmemiş zarar, yeni bir emrin kullanabileceği tutarı küçültür; tamamen ilgisiz bir coin'de bile.
- İzole bir pozisyona aktarılan teminat çapraz cüzdandan çıkmıştır ve başka hiçbir şey için kullanılamaz.
Kontrol sırasına göre yedi neden
Listeyi yukarıdan aşağı izleyin; vakaların çoğu ilk üçünde çözülür.
- Para yanlış cüzdanda. Spot, Fonlama (Funding), USDⓈ-M Vadeli (USDⓈ-M Futures) ve COIN-M Vadeli (COIN-M Futures) ayrı cüzdanlardır. Spot'ta duran USDT, USDⓈ-M Futures'a transfer edilene kadar bir vadeli emrine hiçbir katkı sağlamaz.
- Açık emirler teminat tutuyor. Eski limit emirleri, özellikle bir botun ya da kopya işlem aracının geride bıraktıkları, gerçekleşene ya da iptal edilene kadar başlangıç teminatlarını ayırır.
- Diğer pozisyonlardaki gerçekleşmemiş zararlar. Çapraz marjinde zararda olan bir pozisyon, her yeni emrin karşılaştırıldığı bakiyeden yer.
- Kaldıraç sandığınızdan düşük. Kaldıraç sembol başına ayarlanır. İşlem yaptığınız coin 3x'teyse ve emri 10x'e göre boyutlandırdıysanız, planladığınız teminatın üç katından fazlasına ihtiyaç duyar.
- Piyasa emri tamponu ve açılış zararı. %0,15'lik varsayılan fiyat ve açılış zararı her piyasa emrine biraz ekler; piyasa hızlı hareket ederken son fiyat ile işaret fiyatı arasındaki fark daha da fazlasını ekler.
- Teminatınız USDT değil. Tek varlık modunda USDT teminatlı kontratlar için yalnızca USDT sayılır. Aynı cüzdandaki USDC veya BNB, Çoklu Varlık (Multi-Assets) modu açık değilse işe yaramaz.
- Teminat izole pozisyonlarda kilitli. Her izole pozisyon kendi teminatını tutar. Birkaç tanesi, toplam bakiye sağlıklı görünürken çapraz cüzdanı neredeyse boşaltabilir.
"Bakiyem yetiyor" neden genelde doğrudur ama yine de yetmez
Çoğu kişinin baktığı sayı, vadeli işlemler ekranının üstündeki toplam ya da cüzdan bakiyesidir. Binance'in kullandığı sayı ise kullanılabilir bakiyedir ve aktif bir hesapta ikisi arasında büyük fark olabilir. Cüzdanında 100 USDT olan, her biri 25 USDT teminatlı üç pozisyonu, 10 USDT tutan unutulmuş bir limit emri ve 6 USDT gerçekleşmemiş zararı bulunan bir işlemcinin kullanılabilir bakiyesi 9 USDT'dir. Cüzdan hâlâ 100 gösterse de 10 USDT'lik bir emir reddedilir.
Yukarıdaki diyagram tam olarak bunu gösteriyor ve bu tablo, aynı anda birkaç pozisyon taşıyan hesaplarda sık görülür. Çözüm nadiren daha fazla paradır; genellikle aynı bakiye için yarışan şeylerin sayısını azaltmaktır.
Binance uygulamasında nasıl çözülür
Para eklemeden önce uygulamada şunları sırayla kontrol edin:
- Emirler (Orders) sekmesini açın ve artık istemediğiniz açık emirleri iptal edin; her biri teminatını anında serbest bırakır.
- Pozisyonlar (Positions) sekmesinde çapraz pozisyonlardaki gerçekleşmemiş zararlara bakın; şu anda kullanılabilir bakiyenizi azaltıyorlar.
- Bu sembolün emir panelinde görünen kaldıracın, emri boyutlandırırken esas aldığınız kaldıraç olduğunu doğrulayın.
- Bu sembolün marjin modunu, Çapraz (Cross) mı İzole (Isolated) mı olduğunu ve izole pozisyonlarda ne kadar teminat beklediğini kontrol edin.
- Bakiyeniz USDC veya başka bir varlıktaysa, ya USDⓈ-M Futures'a USDT transfer edin ya da izole marjine izin vermediğini bilerek Çoklu Varlık (Multi-Assets) modunu açın.
- Emir büyüklüğünü yüzde birkaç küçültüp tekrar deneyin; işe yararsa neden tampondu.
Para eklemek, ancak bunların hepsi temiz çıkarsa ve hesap planınız için gerçekten küçükse doğru cevaptır.
Bir botta veya API betiğinde nasıl çözülür
Kodda kural şudur: emri cüzdandan değil, Binance'in kontrol edeceği bakiyeden boyutlandırın.
- Kullanılabilir bakiyeyi önbellekteki bir değerden değil, emri vermeden hemen önce hesap uç noktasından (account endpoint) okuyun.
- Maliyeti Binance'in yaptığı gibi hesaplayın: varsayılan fiyat, başlangıç teminatı, açılış zararı.
- Okuma ile gerçekleşme arasındaki fark için yüzde birkaçlık, oynak coin'lerde daha fazla pay bırakın.
- Emri verin ve -2019 gelirse aynı emri bir döngüde tekrar denemeyin. Reddi kaydedin, hesabın sahibine bildirin ve devam edin.
Botunuz çıkış emirleri de veriyorsa, onlar için karşılaşılan ret farklı bir hatadır: reduce-only emir hataları ayrı bir konudur. Art arda gelen emir patlamaları da teminat sınırına takılmadan önce Binance API'nin istek sınırlarına (rate limit) takılabilir; bu da trading botlarını bozan, kendine ait bir sorundur.
Aynı emri tekrar denemek neden işe yaramaz
Reddedilen bir emir hesapta hiçbir şeyi değiştirmez: teminat serbest kalmaz, pozisyon kapanmaz ve emrin maliyeti bir saniye sonra da aynıdır. Sıkı bir döngüde tekrar denemek yalnızca istek ağırlığı (request weight) harcar ve hesabı bir istek sınırına sokabilir. Emir daha sonra şu üç nedenden biriyle başarılı olabilir: açık bir emir iptal edildi, bir pozisyon kapanıp teminatını serbest bıraktı ya da fiyat maliyeti değiştirecek kadar hareket etti. Bunların hiçbiri siz tekrar sorduğunuz için olmaz.
HafizeBot üyeleri bundan nasıl kaçınıyor
Üyelerin otomatik işlem hesaplarında "Margin is insufficient", en sık gördüğümüz Binance reddidir ve neredeyse her zaman aynı nedenle olur: hesabın teminatının karşılayabileceğinden fazla sinyal gelmiştir. Bunu önleyen ayarlar, her üyenin kendi kontrolündeki ayarlardır:
- Pozisyon büyüklüğü: her işlemin ne kadar kullandığı. Küçük büyüklükler daha fazla pozisyona ve gerçekleşmemiş dalgalanmalara yer bırakır.
- Azami açık pozisyon sayısı: bir sinyal yağmurunun, bakiyenin taşıyabileceğinden fazla işlem açmaya çalışmasını engelleyen bir sınır. Mutlaka ayarlamanızı öneririz.
- Kaldıraç: işlem başına çarpan. Yükseltmek her emrin ihtiyaç duyduğu teminatı düşürür ama likidasyon fiyatını da yaklaştırır; kaldıraçlı işlemin nasıl çalıştığı bu dengeyi anlatıyor.
Bir üyenin emri reddedildiğinde bot Binance'in gerekçesini kaydeder ve üye bunu /lastsignals ile anlaşılır bir dille okuyabilir. Bir vadeli işlem hesabını boyutlandırmakta yeniyseniz, başlangıç noktası kripto vadeli işlemlere başlamak için ne kadar para gerektiği; bir işlem botunu Binance'e güvenle bağlama rehberi ise asla para çekme yetkisi olmaması gereken API anahtarını anlatıyor.
"Margin is insufficient" tehlikeli mi?
Reddin kendisi zararsızdır: Binance bir şey açmayı reddetti ve pozisyonlarınız tam olarak olduğu gibi duruyor. Ama size söylediği şey önemli olabilir. Sürekli -2019 alan bir hesap, serbest teminatı çok az olan bir hesaptır ve serbest teminat aynı zamanda çapraz pozisyonları likidasyondan uzak tutan tampondur. Neden gerçekleşmemiş zararlarsa, aynı zararlar o pozisyonları likidasyon fiyatlarına doğru itiyor demektir.
Tekrarlanan -2019'ları yalnızca başarısız olan emre değil, hesabın bütününe bakmanız gerektiğinin işareti olarak görün.
Sıkça sorulan sorular
Binance'te "margin is insufficient" hatası ne anlama gelir? Yeni emrinizin maliyetinin, yani başlangıç teminatı artı varsa açılış zararının, Binance'in yeni emirlere kullandırdığı bakiyeden büyük olduğu anlamına gelir. Hiçbir şey açılmadı. Açık emirleri iptal ederek ya da pozisyonları kapatarak teminat açın, büyüklüğü düşürün veya USDT'yi USDⓈ-M Futures cüzdanına aktarın.
Binance API'de -2019 kodu nedir?
-2019 MARGIN_NOT_SUFFICIEN, maliyeti hesabın kullanılabilir bakiyesini aşan bir emir için verilen USDⓈ-M Futures API hatasıdır. Emir vermeden hemen önce kullanılabilir bakiyeyi hesap uç noktasından okuyun ve emri yüzde birkaçlık payla boyutlandırın.
Bakiyem yettiği hâlde neden margin is insufficient hatası alıyorum? Çünkü Binance'in kontrol ettiği şey cüzdan bakiyesi değildir. Açık emirler, çapraz pozisyonlardaki gerçekleşmemiş zararlar ve izole pozisyonlarda kilitli teminat kullanılabilir bakiyeyi düşürür; piyasa emirleri de pozisyon değeri bölü kaldıraçtan yaklaşık %0,15 daha pahalıya gelir.
Margin is insufficient hatası likide olacağım anlamına mı gelir? Hayır. Bu, pozisyonlarınıza yönelik bir işlem değil, yeni bir emri açmanın reddidir. Yine de serbest teminatın az olduğunu gösterir; bu da zararda olan her çapraz pozisyon için daha az tampon demektir.
10x kaldıraçla 600 USDT'lik pozisyon için ne kadar teminat gerekir? Pozisyon değeri bölü kaldıraç hesabıyla yaklaşık 60 USDT; ama bir long piyasa emri biraz daha fazlasına ihtiyaç duyar: yukarıdaki örnekte fiyat 60.000 iken 60,99 USDT. Küçük bir hareketin emri sınırın üstüne itmemesi için yüzde birkaç fazlasını tutun.
"Margin is insufficient" ne demek? Türkçesi "teminat yetersiz" (marjin yetersiz) demektir: kullanılabilir teminat bu emir için yeterli değil. Nedenleri ve çözümleri yukarıda anlatılanlarla aynıdır.
Kısaca
-2019 hatası iki sayıyı karşılaştırır: Binance'in tamponu dahil emrin maliyeti ve hesabın yeni emirler için serbest tuttuğu tutar. Para eklemeden önce serbest teminatı neyin kullandığını bulun (açık emirler, zararda pozisyonlar, izole teminat, yanlış cüzdan ya da varlık) ve her emri biraz payla boyutlandırın.
HafizeBot'un gönderdiği her sinyal, kaçanlar dahil, sonucuyla birlikte performans sayfasında yayımlanır ve aynı sinyaller VIP'ten 20 dakika sonra ücretsiz Telegram kanalına düşer. Bu bir yatırım tavsiyesi değil, bilgilendirmedir: vadeli işlemlerde beklediğinizden fazlasını kaybedebilirsiniz, bu yüzden yalnızca kaybetmeyi göze alabileceğiniz tutarla işlem yapın.