[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 826

 

Bir sonraki pozda açılan her duruş için ayrı ayrı marjın kalanını hesaplayıp özetlemek gerçekten mümkün değil mi? boşuna değil

AccountFreeMarginCheck(sy, op, lot); 

sembol, işlem ve lot iletilir... Her poz için ayrı ayrı hesaplayın, çakışan pozlara karar verin ve sonucu kendiniz görün.

Size hem hesaplamanızı hem de DC'nizin ne döndürdüğünü gösterecek bir komut dosyası yazın. Ve karşılaştırın...

MODE_BARINDIRILMIŞ 31 1 lot başına kapalı pozisyonlardan alınan marj


Bu yüzden lotlarınızı sayın. MODE_MARGINHEDGED tarafından döndürülen değere göre kapsanan partilerin sayısını sayın
MODE_MARGINREQUIRED tarafından döndürülen değerle örtüşmeyen kalanları sayın

 

MRC ile ilgili bir sorunla karşılaştım. Yani, test ederken ve örneğin bu kodu yürütmek istediğimde takası dikkate almaları gerçeğiyle:

 double OpPriceF5B = OrderClosePrice()- OrderOpenPrice();

daha sonra swap sonrası açılan açılış fiyatından hesaplanacak ve ilk açılış fiyatı arasındaki farkı bilmek istiyorum yani swap bana karışmasın diye..

Bunu nasıl yapabilirim ??

Bunu şöyle hesaplamaya çalışıyorum:

 for (i= 1 ; i <= OrdersTotal ();i++){
    if ( OrderSelect (i- 1 ,SELECT_BY_POS)==true){
       if (OrderType()== OP_BUY ){
          if (OrderMagicNumber() == Magic_N_F5){
             double OpPriceF5B = OrderClosePrice()- OrderOpenPrice();
          }
       }      
    }   
}
 

AccountFreeMarginCheck() ile deneme yapın:

- terminalde bir SATIN AL emri açılır

- Bakiye: 94919.36 Fonlar: 94921.16 Mevduat: 1273.39 Serbest: 93647.07 Seviye: %7454,15

- Ben soruyorum: AccountFreeMarginCheck( Symbol() ,OP_ BUY ,0.1) - seviyenin kalanını Free verir

- Ben soruyorum: AccountFreeMarginCheck(Symbol(),OP_ SELL ,0.1) - Margin seviyesinin bakiyesini verir


Genel olarak sorunum bu şekilde çözülemez.

Sorum (görev) şudur: Aynı anda açık kalan birkaç sipariş açmam gerekiyor, bunun gibi bir şey

ilk - 0.10 çok sat

ikincisi - çok fazla 0.26 ile satın alın

üçüncü - çok fazla 0,43 ile satış yapın
dördüncü - lot 0.72 satın al

beşinci - çok fazla 1.19 vb. ile satış yapın.

Fiyat 1.2737, kaldıraç 100, minimum lot 0.1

Bir sonraki sipariş verme döngüsünde bir Durdurma meydana gelme olasılığı vardır.

Dolayısıyla bu en kötü durumu elbette DC yöntemini kullanarak hesaplamak gerekiyor. Ve kendiniz için bir sonuca varın: Bir Stop Out ile karşılaşmaktan korkmadan, belirtilen sırayla açılan siparişlerde toplam kaç lota kadar gidebilirsiniz? Yani, "başlangıçta" :) açılacak (muhtemelen) açılacak emirler için toplam marjı hesaplayın. Aynı zamanda tekrar ediyorum, açılış sırası yukarıda belirtilmiştir ve her sipariş için parti büyüklükleri önceden bilinmektedir.

 
ikatsko :

AccountFreeMarginCheck() ile deneme yapın:

- terminalde bir SATIN AL emri açılır

- Bakiye: 94919.36 Fonlar: 94921.16 Mevduat: 1273.39 Serbest: 93647.07 Seviye: %7454,15

- Ben soruyorum: AccountFreeMarginCheck(Symbol(),OP_ BUY ,0.1) - Serbest seviyenin geri kalanını verir

- Ben soruyorum: AccountFreeMarginCheck(Symbol(),OP_ SELL ,0.1) - Margin seviyesinin bakiyesini verir


Genel olarak sorunum bu şekilde çözülemez.

Sorum (görev) şudur: Aynı anda açık kalan birkaç sipariş açmam gerekiyor, bunun gibi bir şey

ilk - 0.10 çok satış

ikincisi - çok fazla 0.26 ile satın alın

üçüncü - çok fazla 0,43 ile satış yapın
dördüncü - lot 0.72 satın al

beşinci - çok fazla 1.19 vb. ile satış yapın.

Fiyat 1.2737, kaldıraç 100, minimum lot 0.1

Bir sonraki sipariş verme döngüsünde bir Durdurma meydana gelme olasılığı vardır.

Dolayısıyla bu en kötü durumu elbette DC yöntemini kullanarak hesaplamak gerekiyor. Ve kendiniz için bir sonuca varın: Bir Stop Out ile karşılaşmaktan korkmadan, belirtilen sırayla açılan siparişlerde toplam kaç lota kadar gidebilirsiniz? Yani, "başlangıçta" :) açılacak (muhtemelen) açılacak emirler için toplam marjı hesaplayın. Aynı zamanda tekrar ediyorum, açılış sırası yukarıda belirtilmiştir ve her sipariş için parti büyüklükleri önceden bilinmektedir.

Düşünelim.

Tüm Alımlar: 0.26+0.72 = 0.98

Tüm Satışlar: 0.1+0.43+1.19 = 1.72

Örtüşen: Alış lotlarının sayısı Satılan lotların sayısından azdır, bu nedenle çakışan lotların sayısı Al lotlarının sayısına eşittir = 0.98

Kalan Tek Yönlü Satışlar: 1,72-0,98 = 0,74

Peki ne yapıyoruz? Alışları toplar ve Satışları çıkarırız: -0.1+0.26-0.43+0.72-1.19= -0.74 Eksi, tek yönlü Satışımız olduğu anlamına gelirse

Kapanan partiler için MODE_MARGINHEDGED'den değeri alıp kapatılan parti sayısıyla çarpıyoruz...

Tek yönlü lotlar için MODE_MARGINREQUIRED'den alıp MathAbs (tek yönlü lot sayısı) ile çarpıyoruz;

Peki, diğer her şeyi de deneyin ...

not. Uzun zamandır düşünmedim - vakalar arasında karaladım - ihmaller yapıyorum, bu yüzden sadece olası bir hareket tarzı olarak kabul edin ... :)

 

Yani... mantık netleşti. Teşekkür ederim! Şimdi kontrol etmeye çalışalım.

Ve bu arada, DEMO üzerinde bir deney kurdum:

ilk ALIŞ lotu 0.1 fiyatı 1.27339 - Marj=1273.39 gösterdi. Onlar. 0.1*1000000*1.27339/100

0.26 çok fiyat 1.27039 ile ikinci SAT - toplam Marj = 3305.18 gösterdi. Ve buna çok benziyor 0.26 * 1000000 * 1.27039 / 100 = 3303.01 ??? tuhaflık?

Ters yönde açılan emirlerin çakıştığı maksimum lot sayısından marjın alındığı ortaya çıktı?

Bir sonraki ALIM açılana kadar bekleyeceğim

 
eugggy :
Herkese iyi günler. Operatör teriminin net bir tanımı var mı yoksa "hayatın anlamı nedir" (açıklanamaz) gibi mi?

:) Operatör, gevşek bir kavramdır, sonuçta, yine de bir kaçak içki operatörü olabilir ... :)

Kelimenin anlamına ihtiyaç duyduğunuz bağlamda sorular sorarsınız. Umarım çok uzun değildir :)

 
eugggy :
Herkese iyi günler. Operatör teriminin net bir tanımı var mı yoksa "hayatın anlamı nedir" (açıklanamaz) gibi mi?

=Takım. Wikipedia'ya bakın

https://en.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_(%D0%BF% D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0% BD%D0%B8%D0%B5 )

 
ikatsko :

Yani... mantık netleşti. Teşekkür ederim! Şimdi kontrol etmeye çalışalım.

Bu arada, DEMO üzerinde bir deney kurdum:

ilk ALIŞ lotu 0.1 fiyatı 1.27339 - Marj=1273.39 gösterdi. Onlar. 0.1*1000000*1.27339/100

0.26 çok fiyat 1.27039 ile ikinci SAT - toplam Marj = 3305.18 gösterdi. Ve buna çok benziyor 0.26 * 1000000 * 1.27039 / 100 = 3303.01 ??? tuhaflık?

Ters yönde açılan emirlerin çakıştığı maksimum lot sayısından marjın alındığı ortaya çıktı?

Bir sonraki ALIM açılana kadar bekleyeceğim

Eh... Düşünmenin zamanı geldi... :) Görev ilginç ama süreler azalıyor.

Bence benzerliğiniz var ama benzerliğiniz olmadığına göre, bu böyle değil. Bu çok garip... :) Maksimum lot için farkı hesaplamaya çalışın...

Böyle bir "gariplik" için DeTslam'in bacakları ciddi müşteriler tarafından yırtılıyor... :)

Diğer yönden düşünmek...

Bir sonraki siparişinizi sabırsızlıkla bekliyorum :)

 
eugggy :
moonshine hala operatör))). Doğru anladıysam, bir operatör (MQL4 dahil) program kodundaki en küçük ve eksiksiz ifadedir.... bunun gibi bir şey.

Ah... anne-anneannem... Onsuz yaşayamaz mısın? Bir hamakta durmak mı? Neden hayatı kendin için zorlaştırıyorsun?

Burada okuyun ... ve onunla bitirin ...

 

Ancak bazen basit sorular ne kadar kafa karıştırıyor :) (operatörden bahsediyorum)

TSB'de en erişilebilir (basit) tanımı buldum:

"Bilgi işlemde, tamamlanmış bir eylemi belirtmek için tasarlanmış bir reçete ..."

Ve burada belgelerde:

"Operatör, programın ayrılmaz bir parçasıdır ... belirli bir bilgi dönüşüm sırasını reçete eder."

Yani fonksiyon aynı şekilde davranır ...

İlginç.