"Order would immediately trigger" (-2021 hatası), Binance Futures'a tetik koşulu zaten gerçekleşmiş bir stop, kâr al ya da iz süren stop emri gönderdiğiniz anlamına gelir. Koşullu emrin işi, fiyatın belirli bir seviyeye gelmesini beklemektir; fiyat o seviyeyi çoktan geçmişse emir borsaya ulaştığı anda tetiklenirdi, bu yüzden Binance emri kabul etmek yerine reddeder. Çoğu zaman sebep şudur: fiyat hareket etmiştir, tetik yanlış taraftadır ya da Binance fiyatı sizden farklı bir kaynağa göre ölçmüştür.
-2021 hatası tam olarak ne anlama gelir
Binance'in API dokümantasyonu bu hatayı -2021 ORDER_WOULD_IMMEDIATELY_TRIGGER olarak tek satırla listeler: "Order would immediately trigger." Python kütüphanelerinde genellikle APIError(code=-2021): Order would immediately trigger. şeklinde karşınıza çıkar. Uygulama da piyasanın çoktan geçtiği bir stop ya da kâr al fiyatı girdiğinizde aynı reddi gösterir.
Hata yalnızca koşullu emirlerde, yani tetik fiyatı olan emirlerde görülür: STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET ve TRAILING_STOP_MARKET. Düz bir limit emri ya da piyasa emri bu hatayı veremez. Binance'in güncel API'sinde bu emirler Algo Order uç noktası üzerinden algoType=CONDITIONAL olarak verilir; seviye ise triggerPrice parametresiyle gönderilir.
Tetik kuralları yan yana
Her koşullu emrin bir yönü vardır ve hata tam olarak bu yönle ilgilidir. Binance dokümantasyonu koşulları aşağıdaki gibi tanımlar; buradaki "güncel fiyat", emrin workingType ayarına göre son işlem fiyatı ya da işaret fiyatıdır:
- STOP / STOP_MARKET, BUY: güncel fiyat tetik fiyatına eşit ya da üstünde olduğunda tetiklenir.
- STOP / STOP_MARKET, SELL: güncel fiyat tetik fiyatına eşit ya da altında olduğunda tetiklenir.
- TAKE_PROFIT / TAKE_PROFIT_MARKET, BUY: güncel fiyat tetik fiyatına eşit ya da altında olduğunda tetiklenir.
- TAKE_PROFIT / TAKE_PROFIT_MARKET, SELL: güncel fiyat tetik fiyatına eşit ya da üstünde olduğunda tetiklenir.
Yani long pozisyonun stop-loss'u bir SELL stop emridir ve güncel fiyatın altında durmalıdır; short pozisyonun stop-loss'u ise bir BUY stop emridir ve fiyatın üstünde durmalıdır. Kâr al emirleri bunun tam tersidir. Herhangi birini yanlış tarafa koyarsanız koşul anında gerçekleşmiş olur: -2021.
Stop ve kâr al: aynı fiyat, zıt anlamlar
Sık yapılan bir karışıklık şudur: aynı yöndeki bir stop emri ile bir kâr al emri birbirinin aynısı gibi görünür, ikisi de "fiyat X'e gelince sat" der. Fark, Binance'in hangi yöndeki hareketi beklediğindedir. SELL stop emri fiyatın X'e düşmesini bekler; SELL kâr al emri ise X'e yükselmesini. İstediğiniz seviye için yanlış emir türünü seçerseniz emir ya -2021 ile reddedilir ya da, daha kötüsü, kastetmediğiniz bir anlamla kabul edilir.
Beş sebep, kontrol sırasıyla
- Fiyat seviyenizi çoktan geçmiş. Açık ara en sık görülen durum. Stop'u 58.800'e koymaya karar verdiniz, ama emir Binance'e ulaştığında fiyat 58.700'dü. Stop, fiilen zaten vurulmuş durumda.
- Tetik yanlış tarafta. Long pozisyonun stop'u fiyatın üstüne ya da kâr al emri fiyatın altına konmuş; genellikle bir yazım hatası ya da koddaki bir işaret hatası yüzünden.
- Amaca uymayan emir türü.
TAKE_PROFIT_MARKETdemek isterkenSTOP_MARKETkullanmak ya da tersi; bu, Binance'in beklediği yönü ters çevirir. - İşaret fiyatı ile son fiyat farklı.
workingType=MARK_PRICEile koşul işaret fiyatına göre kontrol edilir ve işaret fiyatı, özellikle hızlı piyasalarda, seviyenizin grafikteki son fiyattan farklı bir tarafında olabilir. - İz süren stop'un aktivasyon fiyatı yanlış tarafta. Binance dokümantasyonuna göre
TRAILING_STOP_MARKETemrinde BUY için aktivasyon fiyatı güncel fiyatın altında, SELL için üstünde olmalıdır; aksi halde -2021.
Örnek: geç kalan stop emri
60.000'den açılmış, stop'u %2 aşağıda, 58.800'de olan bir long pozisyon düşünün. Bu stop, tetik fiyatı 58.800 olan bir SELL STOP_MARKET emridir.
- Stop gönderildiğinde fiyat 59.900 ise "güncel fiyat 58.800'e eşit ya da altında" koşulu yanlıştır. Binance emri kabul eder ve bekler.
- Giriş ile stop arasında hızlı bir düşüş fiyatı 58.700'e indirdiyse aynı koşul zaten doğrudur. Binance emri -2021 ile reddeder.
Ret hiçbir şeyi kapatmaz. Pozisyon açık kalır, olması gereken stop olmadan, üstelik çıkmak istediğiniz noktayı çoktan geçmiş bir fiyatta. -2021'in asıl riski budur; sonraki bölümler bununla nasıl başa çıkılacağını anlatıyor.
Neden en çok hızlı piyasalarda görülür
Pozisyon açmak ve onu korumaya almak iki adımdır: önce giriş emri gerçekleşir, sonra stop gönderilir. Sakin bir piyasada aradaki süre hiçbir şeyi değiştirmez. Sert bir harekette ise fiyat o kısa anda dar bir stop'a olan mesafeden daha fazla yol alabilir ve stop kendi seviyesinden sonra borsaya ulaşır. Dar stop'lar, oynaklığı yüksek coinler ve haber dakikaları bu olasılığı artırır.
İşaret fiyatı mı son fiyat mı: emrinizi hangisi tetikler
Binance'in hangi fiyata bakacağını workingType belirler. Varsayılan değer CONTRACT_PRICE, yani son işlem fiyatıdır; MARK_PRICE ise tek seferlik iğnelerden daha az etkilenen işaret fiyatını kullanır. İkisi de yanlış değildir, ama zaman zaman birbirinden ayrışırlar ve emriniz ekrandaki muma göre değil, seçtiğiniz fiyata göre değerlendirilir.
Binance ayrıca priceProtect seçeneğini sunar: açık olduğunda tetiklenen bir STOP_MARKET ya da TAKE_PROFIT_MARKET emri, yalnızca işaret fiyatı ile son fiyat arasındaki fark o sembolün koruma eşiği içindeyse gerçekleşir. Bu ayrı bir güvenlik önlemidir, ama neyin tetiklendiğini grafikte gördüğünüzle karşılaştırırken bilmekte fayda var.
Binance uygulamasında nasıl düzeltilir
- Onaylamadan önce tetik fiyatınızı aynı
workingType(Last ya da Mark) için gösterilen güncel fiyatla karşılaştırın. - Yönü kontrol edin: long için stop aşağıda, kâr al yukarıda; short için tersi.
- Emir türünün amaca uyduğunu kontrol edin: zararı sınırlamak için Stop Market, kârı kilitlemek için Take Profit Market.
- Fiyat stop'unuzu çoktan geçtiyse bilinçli bir karar verin: pozisyonu hemen kapatın (stop'unuz sizi zaten oraya götürecekti) ya da daha fazla alan vermeyi kabul ediyorsanız güncel fiyatın ötesine yeni bir stop koyun.
Fiyat stop'unuzu çoktan geçtiyse
En önemli durum budur, çünkü pozisyon açık ve korumasızdır. Üç dürüst seçenek var ve her birinin bir bedeli var:
- Hemen kapatmak. Bir piyasa emriyle ya da reduce-only emirle kapatmak, sizi hızlı bir harekette stop'unuzun aşağı yukarı gerçekleşeceği yerden çıkarır. Zarar planladığınızdan biraz büyüktür ve kesinleşmiştir.
- Stop'u güncel fiyatın ötesine yeniden koymak. Pozisyon yeniden korumalı olarak açık kalır, ama başlangıçta belirlediğinizden daha geniş bir stop'u kabul etmiş olursunuz. Kaldıraç kullanıyorsanız yeni seviyenin hâlâ likidasyon mesafesinin içinde olduğunu kontrol edin.
- Stop'suz beklemek. Fiyat geri dönebilir de, likidasyon fiyatınıza kadar gitmeye devam edebilir de. Hiçbir şey yapmayarak en sık varsayılan olarak seçilen ve en çok zarar veren seçenek budur.
Hiçbirinin, orijinal tetiğin otomatik olarak yeniden denenmesi olmaması gerekir. Hangisini neden seçtiğinizi not edin ki bir sonraki hızlı hareket sizi aynı boşlukta yakalamasın.
Bir bot ya da API betiğinde nasıl düzeltilir
- Emri vermeden hemen önce emrinizin değerlendirileceği fiyatı okuyun (
workingTypeile uyumlu olarak son fiyat ya da işaret fiyatı). - Yönü kontrol edin: o fiyata eşit ya da üstünde bir SELL stop'u ya da eşit ya da altında bir BUY stop'u göndermeyi reddedin.
- Korumayı giriş gerçekleşir gerçekleşmez koyun, böylece hızlı bir hareket için açık kalan pencere olabildiğince kısa olur.
- -2021 aldığınızda aynı tetiği yeniden denemeyin. Koşul hâlâ geçerli. Açıkça karar verin: reduce-only bir emirle piyasadan kapatın ya da güncel fiyatın ötesine yeni bir tetik koyun ve hangisini yaptığınızı kayda geçirin.
Reduce-only bir emirle kapatıyorsanız, bu emir türünün de kendine özgü retlerle karşılaşabileceğini unutmayın. Aynı yoğun dakikada bazen gelen teminat reddi için margin is insufficient (-2019) rehberimize bakın.
-2021 ve çevresindeki hatalar
Bazı retler aynı yoğun dakikalarda bir arada görülür ve farklı şeyler anlatır:
- -2021, order would immediately trigger: koşullu bir emrin koşulu zaten gerçekleşmiş. Tetiği düzeltin ya da bir çıkış kararı verin.
- -2022, reduce-only order rejected: pozisyonu küçültmeyecek bir çıkış emri; çoğu zaman bir stop pozisyonu zaten kapattığı için.
- -2019, margin is insufficient: kullanılabilir bakiyeden fazlasını gerektiren yeni bir emir.
- Sıfırın altında bir stop fiyatı: long pozisyonun stop'unun girişin %100 ya da daha fazla altına konması, bu da tetiği sıfırın altına düşürür. Binance bunu doğrudan reddeder; çözüm daha dar bir stop'tur.
Her biri hesabı olduğu gibi bırakır ve her biri farklı bir çözüm ister; bu yüzden sadece "order failed" değil, hata kodunu da kaydedin.
Hangi kombinasyonlar reddedilir
Aşağıdaki görsel kuralın tamamını tek yerde toplar: emir türü ile tetiğin güncel fiyata göre nerede durduğu. İki köşe kabul edilip bekleyen emirlerdir; diğer ikisi borsaya ulaştığı anda reddedilir.
HafizeBot reddedilen bir stop'u nasıl ele alır
Otomatik işlem yapan üyeler kendi stop'larını yüzde olarak belirler ve bot bu stop'u girişten sonra üyenin Binance hesabına yerleştirir. Binance bir stop'u -2021 ya da başka bir nedenle reddettiğinde üye hemen bilgilendirilir ve Binance'in gerekçesi anlaşılır bir dille iletilir. Bot pozisyonu üye adına kapatmaz: çıkmak mı yoksa işleme daha fazla alan tanımak mı, bu karar üyenindir.
Coin'in normal hareketine göre fazla dar bir stop, hızlı hareketlerde -2021 olasılığını artırır. Kriptoda stop-loss nasıl ayarlanır rehberimiz stop mesafesini belirlemeyi, kriptoda kaldıraçlı işlem nasıl çalışır rehberimiz ise stop'un kullandığınız kaldıraçta neden likidasyon mesafesinin içinde de durması gerektiğini anlatıyor.
Sıkça sorulan sorular
Binance'te "order would immediately trigger" ne demek? Stop, kâr al ya da iz süren stop emrinizin tetik koşulu güncel fiyatta zaten gerçekleşmiş, yani emir verildiği anda çalışırdı. Binance bunun yerine emri reddeder. Tetiğin, emrin türüne ve yönüne göre güncel fiyatın doğru tarafında olup olmadığını kontrol edin.
APIError code -2021 nedir?
Binance USDⓈ-M Futures API'sindeki ORDER_WOULD_IMMEDIATELY_TRIGGER hatasıdır. Yalnızca koşullu emirlerde görülür ve genellikle fiyatın tetiği çoktan geçtiğini ya da tetiğin yanlış tarafta durduğunu gösterir.
Stop-loss emrim neden order would immediately trigger hatası veriyor? Long pozisyonda stop bir SELL stop emridir ve fiyatın altında olmalıdır; short pozisyonda ise fiyatın üstünde bir BUY stop emridir. Fiyat long pozisyonun stop seviyesinin altına çoktan düştüyse ya da short pozisyonunkinin üstüne çıktıysa stop anında çalışırdı ve bu yüzden reddedilir.
-2021 hatasından sonra pozisyonum hâlâ açık mı? Evet. Ret hiçbir emir vermez ve hiçbir şeyi kapatmaz; pozisyon, gönderdiğiniz koruma olmadan açık kalır. Pozisyonu kapatmaya mı yoksa güncel fiyatın ötesine yeni bir stop koymaya mı karar vereceğinizi hemen belirleyin.
-2021 işaret fiyatına mı son fiyata mı bağlıdır?
Emrin workingType ayarına bağlıdır. Varsayılan son işlem fiyatıdır (CONTRACT_PRICE); MARK_PRICE ile koşul, hızlı hareketlerde son fiyattan ayrışabilen işaret fiyatına göre kontrol edilir.
İz süren stop için -2021 nasıl düzeltilir? Aktivasyon fiyatını doğru tarafa koyun: BUY iz süren stop için güncel fiyatın altına, SELL için üstüne. Aksi halde Binance emri zaten aktifleşmiş sayar ve reddeder.
Kısaca
-2021 hatası, tetiğin zaten gerçekleştiği anlamına gelir. Binance'in kullanacağı fiyatı, yönü ve emir türünü kontrol edin; korumayı girişten hemen sonra koyun; fiyat stop'unuzu çoktan geçtiği için stop reddedildiyse aynı emri yeniden göndermek yerine açık bir karar verin.
HafizeBot'un gönderdiği her sinyal, tutmayanlar 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 bilgilendirmedir, yatırım tavsiyesi değildir: kaldıraçlı vadeli işlemlerde beklediğinizden fazlasını kaybedebilirsiniz, bu yüzden yalnızca kaybetmeyi göze alabileceğiniz tutarla işlem yapın.