Programlı olarak "Marj Yüzdesi" nasıl alınır - sayfa 6

 
ir0407 :
Marj yüzdesi, hesaplanmamış marjdır. Bu, marjı hesaplamak için kullanılan bileşenlerden sadece biridir. Ve bu hesaplamanın sonucu (tablodaki formüllere göre) marj para biriminde döndürülür, bu durumda (mevduat para biriminden farklıysa) mevduat para birimine çevrilmelidir.
Bir şey dışında her şeyi anladım, bu bileşenin özü nedir)
 
K-2SO :

komisyoncu lütfen Ben testler için...
robot.
 

Testleri paylaşacağım ve sonunda şu ana kadar tek bir formül oluşturamayan bu formüllerde kafam karıştı. Üç farklı broker - üç farklı marj yüzdesi - neredeyse sonuca göre ayarlandığı söylenebilecek üç farklı formül. Bu, altın üzerine önceden verilmiş (!) bir emir (AL) için marjın hesaplanmasıdır.

Gördüğünüz gibi, marj yüzdesi hala bazen önemlidir, ancak metakotaların gerçekten buna ihtiyacı yoktur.

 margin= OrderLots ()*contract* OrderOpenPrice ()/leverage/100; // метаквоты - процент маржи 100%

 margin= OrderLots ()*contract* OrderOpenPrice ()*Percentage/ 100 ; // инста - процент маржи 1%
            
 margin=( OrderLots ()*contract* OrderOpenPrice ()*Percentage)/leverage/ 100 ; // робо - процент маржи 200%
 
Görünüşe göre genel formülün nasıl çalışması gerektiğini anladım (sonunda gerçekten bir marj yüzdesi olduğunu fark ettiğimde) - testler boşuna değildi. Ve evet... marj yüzdesi değeri kullanılmalıdır (önceden verilmiş bir sipariş için bile). Bu değeri nasıl hesaplayacağımı anladığımda, herhangi biri ilgileniyorsa, verilen bir CFD siparişi için marjı hesaplamak için genel formül hakkındaki sonuçlarımı paylaşacağım ... ), yukarıdaki mesajdaki kodda.
 
K-2SO :
Görünüşe göre genel formülün nasıl çalışması gerektiğini anladım (sonunda gerçekten bir marj yüzdesi olduğunu fark ettiğimde) - testler boşuna değildi. Ve evet... marj yüzdesi değeri kullanılmalıdır (önceden verilmiş bir sipariş için bile). Bu değeri nasıl hesaplayacağımı anladığımda, herhangi biri ilgileniyorsa, verilen bir CFD siparişi için marjı hesaplamak için genel formül hakkındaki sonuçlarımı paylaşacağım ... ), yukarıdaki mesajdaki kodda.

Her şey ilk sayfada

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Programlı olarak "Marj Yüzdesi" nasıl alınır

Alexey Viktorov , 2017.06.02 09:42

Pekala, evet ... fantezi bizim her şeyimiz ... ama neden size yardım etmeye çalışan insanların kendi hayal ettiğiniz şeyi hayal etmesi gerektiği açık değil? Pekala, tamam, soru bu değil.

Bu formülden gerekli olanı nasıl elde edersiniz:

Formülün kendisi Marj = Lot *SözleşmeBoyutu*PiyasaFiyatı*Yüzde/100'dür

Dolayısıyla Yüzde = Marj/(Lot *SözleşmeBoyutu*PiyasaFiyatı/100)

Şimdiye kadar, bu, kullanımdan kaldırılan işlevler listesinde değil. Bu yüzden marj yüzdesini belirlemek için eksik değeri verir.

 MarketInfo ( _Symbol , MODE_MARGINREQUIRED );

O anki tüm verileri mevcut fiyattan aldıktan sonra, emir açarken tutulan marjı emir açılış fiyatından yeniden hesaplamak kolaydır.

mql5 için gerekirse, kullanmanız gerekir

 bool    SymbolInfoMarginRate ( 
   string              name,                     // символ 
   ENUM_ORDER_TYPE     order_type,               // тип ордера 
   double &             initial_margin_rate,       // коэффициент взимания начальной маржи 
   double &            maintenance_margin_rate   // коэффициент взимания поддерживающей маржи 
   );

Emir açarken cari fiyat ve sadece formülden elde edilebilecek marj yüzdesi dikkate alınır. Buna göre, önce fonksiyon tarafından belirtilen sembolün cari fiyatından bir tam lot için tahmini marjı belirleriz.

 MarketInfo ( symbol , MODE_MARGINREQUIRED );

Bu marjdan marj yüzdesini hesaplıyoruz ve ancak o zaman belirli bir sipariş için marjı hesaplıyoruz. Ama tekrar ediyorum, marj her zaman mevduat para biriminde dikkate alınmaz ve emrin açıldığı andaki cari kurdan ona çevrilir ve daha sonra (döviz kurunu) mql4'te almanın bir yolu yoktur. Mql5'te daha kolay, CopyTicks() var ve bir sipariş açarken döviz kurunu alabilirsiniz, ancak burada bahsettiğimiz dil bu değil.

 
Alexey Viktorov :

Ama tekrar ediyorum, marj her zaman mevduat para biriminde dikkate alınmaz ve emrin açıldığı andaki cari kurdan ona çevrilir ve daha sonra (döviz kurunu) mql4'te almanın bir yolu yoktur.

Bu noktada, hala kafam karıştı. MARGINREQUIRED'in mevduat para biriminde bir değer döndürdüğü açıktır, ancak neye ihtiyacımız var? Enstrümanın karşıt para biriminde mi?
 
K-2SO :
Bu noktada, hala kafam karıştı. MARGINREQUIRED'in mevduat para biriminde bir değer döndürdüğü açıktır, ancak neye ihtiyacımız var? Enstrümanın karşıt para biriminde mi?

Mesajımdaki ilk mesajdaki ve beşinci sayfadaki 2 resmi karşılaştırın. Hem orada hem de orada altının özellikleri, ancak ilkinde marj para birimi USD ve ikincisinde XAU. Bu nedenle, ilk durumda, hiçbir şey yapamazsınız ve ikinci durumda, mevduat para biriminde marjı aldıktan sonra, marj para birimine dönüştürülmeli, teklifle çarpılmalı ve marjı hesapladığımız formüle konulmalıdır. yüzde. Aksi takdirde sonuç yanlış olacaktır. Buna göre, formüle de girmek gerekir.

SYMBOL_CURRENCY_MARGIN

Teminatın hesaplandığı para birimi

sicim

 

Bazı deneylerden sonra, itiraf etmeliyim ki burada

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Programlı olarak "Marj Yüzdesi" nasıl alınır

Alexey Viktorov , 2017.06.02 10:24

Kaldıraç genellikle Margin = (Lots*ContractSize*MarketPrice*Percentage) /Kaldıraç ana formülünün dışındadır, bu yüzden hesaba katmadım. Sorunun ne hakkında olduğunu belirlemek için omuz, bir ineğin eyeri gibidir. Ancak dahası gerekli olabilir, ancak bu mevcut konuyla ilgili değil ...

Yanılmışım. Kaldıraç marj olarak kullanılmalıdır

 MarketInfo ( symbol , MODE_MARGINREQUIRED );

omuzu dikkate alıyoruz.



 
Alexey Viktorov :

Bazı deneylerden sonra, itiraf etmeliyim ki burada

Yanılmışım. Kaldıraç marj olarak kullanılmalıdır

omuzu dikkate alıyoruz.

Testler, marj yüzdesi 1'e eşit olduğunda kaldıraç dikkate alınmadığını gösteriyor! Ancak 100 ve üstü, zaten dikkate alınmıştır. 2'den 99'a kadar marj yüzdesine sahip bir komisyoncu bulamamam üzücü.

 
K-2SO :

Testler, marj yüzdesi 1'e eşit olduğunda kaldıraç dikkate alınmadığını gösteriyor! Ancak 100 ve üstü, zaten dikkate alınmıştır. 2'den 99'a kadar marj yüzdesine sahip bir komisyoncu bulamamam üzücü.

100 kaldıraçlı 5 dolarlık bir demo hesabı açın ve örneğin aynı altın veya hatta daha soğuk için - ruble için yüzde olarak marjın ne olacağını görün...