Marj nasıl hesaplanır?

 

Tünaydın!

Aniden açık pozisyonlardaki marjın önemli ölçüde arttığı (20 kat) bir durumla karşılaştım. Aracının açık pozisyonlar için marj gereksinimlerini artırdığına dair bir şüphe var. Bu varsayım, bu araç için hesaplanan değerden ve ayarlanan kaldıraçtan birkaç kat daha yüksek olan olağandışı yüksek AccountMargin değeri ile doğrulanır.

Kendimi böyle bir durumda bulan hesaplardan birinde, mevduat üzerindeki yükü azaltmak ve Stop Out'u önlemek için en büyük hacimli son açık pozisyonları zararla kapatmak zorunda kaldım. Ve bir noktada (karlı olmayan başka bir pozisyonu kapattıktan sonra), AccountMargin değeri hesaplanan seviyeye döndü. Bunu hemen fark etmemiş olabilirim ve bu nedenle artırılmış marj gereksinimlerinin hangi pozisyonlar için uygulandığını kesin olarak söyleyemem.

Diğer hesapta ise kilitleme emri açmak dışında henüz bir şey yapmadım. Şimdi, artan marj gereksinimleri ile açılan emirleri belirttiğim komisyoncuya bir talepte bulunmam gerekiyor. Ve bu bağlamda, soru ortaya çıkıyor:

Terminaldeki her açık pozisyon için ayrı ayrı teminat (marj) miktarını öğrenmenin bir yolu var mı? Terminalde sadece toplam marj miktarını görüyorum, aynı değer AccountMargin() işlevi tarafından döndürülüyor. MQL4 referansında Order öneki ile uygun bir fonksiyon bulamadım. Bu değerin OrderGetDouble() fonksiyonu ile alınabileceğini varsaymak mantıklı olacaktır fakat yine ENUM_ORDER_PROPERTY_DOUBLE numaralandırmasında uygun bir değer bulamadım.

Lütfen söyleyin, MT4 terminalinde tek bir açık pozisyon için marjı nasıl alabilirim?

 
Burada okuyabilirsiniz.
Как получить программно "Процент маржи"
Как получить программно "Процент маржи"
  • 2017.05.31
  • www.mql5.com
В окне терминала "Спецификации контракта" есть пункт "Процент маржи...
 
Alexey Viktorov :
Burada okuyabilirsiniz.

Teşekkürler, saygılar. Orada, 7. sayfada, her açık pozisyon için hesaplanan marj değerini hesaplamak için bir komut dosyası var. CFD'ye değil, FOREX'e sahip olduğum gerçeğini dikkate alarak biraz düzelttim ve bu biçimde derledim:

 void OnStart ()
{
 double size = 0 , percentage = 0 , orderMargin = 0 , accountMargin = 0 ;
 long leverage = 0 ;
 for ( int i = 0 ; i < OrdersTotal (); i++)
  {
   int tupe = - 1 ;
   if ( OrderSelect (i, SELECT_BY_POS) && (tupe=OrderType()) < OP_BUYLIMIT)
    {
     string symbol = OrderSymbol();
     string symbolCurencyMargin = SymbolInfoString (symbol, SYMBOL_CURRENCY_MARGIN );
     double orderOpenPrice = OrderOpenPrice();
     double orderLots = OrderLots();
     double margin = MarketInfo(symbol, MODE_MARGINREQUIRED);
     double ask = MarketInfo(symbol, MODE_ASK);
     double bid = MarketInfo(symbol, MODE_BID);
     double price = symbolCurencyMargin == "USD" ? 1 : tupe == OP_BUY ? bid : ask;
      size = SymbolInfoDouble (symbol, SYMBOL_TRADE_CONTRACT_SIZE );
      leverage = AccountInfoInteger ( ACCOUNT_LEVERAGE );
      percentage = NormalizeDouble (margin/(size*price/ 100 )*leverage, 0 );
       //orderMargin = (size*orderOpenPrice*percentage/100)/leverage;
      orderMargin = (orderLots*size*orderOpenPrice)/leverage;
      accountMargin += orderMargin;
       Print (symbolCurencyMargin, " ******** Маржа " , symbol, " = " , orderMargin);
    }
  }
 Print ( AccountInfoString ( ACCOUNT_CURRENCY ), " ******** AccountMargin = " , DoubleToString (accountMargin, 2 ));
}

Vakaların büyük çoğunluğunda, bu komut dosyası tarafından hesaplanan nihai marjın değeri, gerçek olanla aynıdır. Ama ne yazık ki, benim durumumda değil. Sorun şu ki, tek bir siparişin marjını hesaplama formülünde şu anda yürürlükte olan kaldıraç değerinin kullanılması.

Ancak bazı brokerlerin düzenlemelerinde (parmakla göstermeyeceğiz), belirli koşullar altında (Cuma akşamı, ortalamaya göre vb.) hesaplar. Bu sadece benim durumum. Ancak bir hak talebinde bulunabilmek ve gelecekte benzer bir durumdan kaçınmak için hangi pozisyonların normal kaldıraçla açıldığını ve hangilerinin kaldıraç oranı artırıldığını bulmam gerekiyor.

Aracının teknik desteği, artan kaldıracın bir bütün olarak hesap için değil, belirli siparişler için belirlendiğini ve bunun bir pozisyon açıldıktan sonra gerçekleştiğini açıkça söylüyor. Bu nedenle, AccountFreeMarginChek isteği işe yaramaz.

Aslında şu soru ortaya çıkıyor: Aracının her bir pozisyon için kendi kaldıracını ayarlayabildiği biliniyorsa, terminaldeki her bir pozisyon için gerçekte ne kadar marj kullanıldığını güvenilir bir şekilde bulmanın herhangi bir yolu var mı?

 
Janis Ozols :

Ancak bazı brokerlerin düzenlemelerinde (parmakla göstermeyeceğiz), belirli koşullar altında (Cuma akşamı, ortalamaya göre vb.) hesaplar. Bu sadece benim durumum. Ancak bir hak talebinde bulunabilmek ve gelecekte benzer bir durumdan kaçınmak için hangi pozisyonların normal kaldıraçla açıldığını ve hangilerinin kaldıraç oranı artırıldığını bulmam gerekiyor.

1) Komisyoncu her zaman haklıdır.
2) Eğer komisyoncu hatalıysa, 1. kuralı okuyun.

 
Janis Ozols :

Teşekkürler, saygılar. Orada, 7. sayfada, her açık pozisyon için hesaplanan marj değerini hesaplamak için bir komut dosyası var. CFD'm olmadığı, ancak FOREX'im olduğu gerçeğini dikkate alarak biraz düzelttim ve bu biçimde derledim:

Vakaların büyük çoğunluğunda, bu komut dosyası tarafından hesaplanan nihai marjın değeri, gerçek olanla aynıdır. Ama ne yazık ki, benim durumumda değil. Sorun şu ki, tek bir siparişin marjını hesaplama formülünde şu anda yürürlükte olan kaldıraç değerinin kullanılması.

Ancak bazı brokerlerin düzenlemelerinde (parmakla göstermeyeceğiz), belirli koşullar altında (Cuma akşamı, ortalamaya göre vb.) hesaplar. Bu sadece benim durumum. Ancak bir hak talebinde bulunabilmek ve gelecekte benzer bir durumdan kaçınmak için hangi pozisyonların normal kaldıraçla açıldığını ve hangilerinin kaldıraç oranı artırıldığını bulmam gerekiyor.

Aracının teknik desteği, artan kaldıracın bir bütün olarak hesap için değil, belirli siparişler için belirlendiğini ve bunun bir pozisyon açıldıktan sonra gerçekleştiğini açıkça söylüyor. Bu nedenle, AccountFreeMarginChek isteği işe yaramaz.

Aslında şu soru ortaya çıkıyor: Aracının her bir pozisyon için kendi kaldıracını ayarlayabildiği biliniyorsa, terminaldeki her bir pozisyon için gerçekte ne kadar marj kullanıldığını güvenilir bir şekilde bulmanın herhangi bir yolu var mı?

Gereksiz yazışmalarla zaman kaybetmeyin. Yönetmelikte bu yazıyor ve tartışmak yel değirmenleriyle savaşmak gibidir.

Bu sembolle ilgili değil , açılış zamanı ile ilgili. Birçokları için bu, hafta sonu için kapanmadan 15 dakika önce. Ve Pazartesi günü 15 dakika sonra omuz normale döner.

 
Alexey Viktorov :

Gereksiz yazışmalarla zaman kaybetmeyin. Yönetmelikte bu yazıyor ve tartışmak yel değirmenleriyle savaşmak gibidir.

Arttırılmış kaldıraç uygulama kuralları hakkında açıklamalar almak için bir iddiada bulunmak istiyorum. Yönetmelikte bu çok açık değil.

Anlamak istediğim asıl şey, gelecekte mevcut durumu tekrar etmekten nasıl kaçınılacağıdır. Özellikle, komisyoncunun düzenlemelerinde, aradığınız ürün, "şirket hakkını saklı tutar" belirsiz ifadeler içeriyor. Yani, belirli bir siparişe daha yüksek marj gereksinimleri uygulayabilir veya uygulamayabilirler. Bu nedenle, artan kaldıraç uygulanan terminaldeki pozisyonları nasıl tanımlayacağımı bulmak benim için çok önemli (Hesap Kaldıracının verdiğinden farklı olarak). Örneğin, bu tür pozisyonları derhal kapatmak için tüccarı bilgilendirin ve ticareti askıya alın.

Elbette, belirli bir pozisyon için marj miktarını terminalden sormanın bir yolu vardır. Henüz bilmiyorum, ancak belgelerde bulamıyorum.

 
Janis Ozols :

Arttırılmış kaldıraç uygulama kuralları hakkında açıklamalar almak için bir iddiada bulunmak istiyorum. Yönetmelikte bu çok açık değil.

Anlamak istediğim asıl şey, gelecekte mevcut durumu tekrar etmekten nasıl kaçınılacağıdır. Özellikle, komisyoncunun düzenlemelerinde, aradığınız ürün, "şirket hakkını saklı tutar" belirsiz ifadeler içeriyor. Yani, belirli bir siparişe artırılmış marj gereksinimleri uygulayabilir veya uygulamayabilirler. Bu nedenle, artan kaldıraç uygulanan terminaldeki pozisyonları nasıl tanımlayacağımı bulmak benim için çok önemli (Hesap Kaldıracının verdiğinden farklı olarak). Örneğin, bu tür pozisyonları derhal kapatmak için tüccarı bilgilendirin ve ticareti askıya alın.

Elbette, belirli bir pozisyon için marj miktarını terminalden sormanın bir yolu vardır. Henüz bilmiyorum, ancak belgelerde bulamıyorum.

Brokerinizi bilmiyorum ama her şeyin yolunda olduğu durumlar var , pozisyonu kapatıyoruz ve marjı artırıyoruz. Bunu izlemenin bir yolu yok. Ve kimse herhangi bir açıklama yapmayacak. Tek bir çıkış yolu var: Marjı artırabilecekleri bir zamanda işlem yapmayın. Büyük olasılıkla, bu, kaldıraçla değil, marj yüzdesiyle düzenlenir.

 

Açık kaynaklardan gelen formülleri kullanarak bir pozisyon açarken marjı hesaplayın ve kendiniz kullanın.

Kaldıraç oranını bir yorumda veya sihirde veya genel olarak yazın - kaldıraç için ayarlanmış marjı hemen yazın

Ve hatırlanacak bir şey olacak

 
Alexey Viktorov :

Brokerinizi bilmiyorum ama her şeyin yolunda olduğu durumlar var , pozisyonu kapatıyoruz ve marjı artırıyoruz.

Brokerimde durum böyle: bir pozisyon açıp marjı artırıyoruz. Ve bazı durumlarda anlıyoruz, ancak bazılarında alamıyoruz ("şirket hakkını saklı tutar...").


Alexey Viktorov :

Tek bir çıkış yolu var: Marjı artırabilecekleri bir zamanda işlem yapmayın. Büyük olasılıkla, bu, kaldıraçla değil, marj yüzdesiyle düzenlenir.

Benim durumumda, bu, ne yazık ki, yardımcı olmuyor. Marj herhangi bir zamanda artırılabilir. Ve omuz tarafından düzenlenir. Her durumda, düzenlemeler özellikle omuza atıfta bulunur. Bu konuda belirli bir komisyoncunun ticaret koşullarını tartışmaktan gerçekten kaçınmak istiyorum. Aslında, tek bir pozisyon için teminat miktarı hakkında terminalden nasıl bilgi alabileceğinizle ilgileniyorum.

 
Renat Akhtyamov :

Açık kaynaklardan gelen formülleri kullanarak bir pozisyon açarken marjı hesaplayın ve kendiniz kullanın.

Kaldıraç oranını bir yorumda veya sihirde veya genel olarak yazın - kaldıraç için ayarlanmış marjı hemen yazın

Ve hatırlanacak bir şey olacak

yapmaya çalıştım. Ancak sorun, bir pozisyon açtıktan sonra marjın artmasıdır. Yani bir pozisyon açmadan önce onun için hesaplanan marjin değerini alıyorum. Ve OrderSend'e yapılan başarılı bir çağrıdan hemen sonra, terminalden AccountMargin değerini soruyorum. Ve beklentilerimi tam olarak karşılıyor. Ama bir süre sonra bu değer çok artıyor! Ve AccountMargin'in değeri, açıldıktan hemen sonra alınan her bir açık emrin marj miktarından on kat daha fazladır.

Sorum, belirli bir sipariş için gerçek marj değerinin herhangi bir zamanda terminalden nasıl alınabileceğine indirgenebilir.

Bir bütün olarak hesap için bu, AccountMargin() veya AccountInfoDouble(ACCOUNT_MARGIN). Yani, bu değeri elde etmenin iki tam yolu vardır. Elbette bir sipariş için marj almanın en az bir yolu vardır. Henüz bilmiyorum, o yüzden soruyorum.

 
Janis Ozols :

yapmaya çalıştım. Ancak sorun, bir pozisyon açtıktan sonra marjın artmasıdır. Yani bir pozisyon açmadan önce onun için hesaplanan marjin değerini alıyorum. Ve OrderSend'e yapılan başarılı bir çağrıdan hemen sonra, terminalden AccountMargin değerini soruyorum. Ve beklentilerimi tam olarak karşılıyor. Ama bir süre sonra bu değer çok artıyor! Ve AccountMargin'in değeri, açıldıktan hemen sonra alınan her bir açık emrin marj miktarından on kat daha fazladır.

Sorum, belirli bir sipariş için gerçek marj değerinin herhangi bir zamanda terminalden nasıl alınabileceğine indirgenebilir.

Bir bütün olarak hesap için bu, AccountMargin() veya AccountInfoDouble(ACCOUNT_MARGIN). Yani, bu değeri elde etmenin iki tam yolu vardır. Elbette bir sipariş için marj almanın en az bir yolu vardır. Henüz bilmiyorum, o yüzden soruyorum.

sormana gerek yok

sayma formülleri

ve omuz da formüllere göre

terminal mevcut kaldıracı izlemez, ancak terminali yüklerken olanı görüntüler

bu nedenle, işlev tarafından istenen marj farklıdır

Neden: