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

 

1 lot için marj hesaplaması çok basittir:

   double МАРЖА = MarketInfo ( Symbol ( ) , MODE_MARGINREQUIRED ) ;
   double МАРЖАИНИ = MarketInfo ( Symbol ( ) , MODE_MARGININIT ) ;
   double МАРЖАПОДД = MarketInfo ( Symbol ( ) , MODE_MARGINMAINTENANCE ) ;
   double МАРЖАЛОК = ( MarketInfo ( Symbol ( ) , MODE_MARGINHEDGED ) * 2 ) / MarketInfo ( Symbol ( ) , MODE_LOTSIZE ) ;

Mevduat para biriminde döndürülen değerler.

!!! 0'ın döndürülebileceğini ve bunun norm olduğunu unutmayın.

Bazı işlem masaları, başlatma ve/veya bakım marjlarını kullanmaz.

Ayrıca örtüşen "sıfır kenar boşluğunu" kullanır ...

*

Üst üste binen hesaplamanın bilgi türü, ilkeye göre, seçenek:

   string МАРЖАЛОКИД = "na" ;
   if ( МАРЖАЛОК = = 0 )     МАРЖАЛОКИД = "0" ;
   if ( МАРЖАЛОК = = 1 )     МАРЖАЛОКИД = "1" ;
   if ( МАРЖАЛОК = = 0.5 )   МАРЖАЛОКИД = "1D" ;
   if ( МАРЖАЛОК = = 2 )     МАРЖАЛОКИД = "2" ;   
 
kombat >> :

1 lot için marj hesaplaması çok basittir:....

Bunu istemiyordu. Açık emirlerin marjını enstrümanlara göre ayrı ayrı hesaplaması gerekiyor. Yani, lotları enstrümanlara göre toplayın ve enstrümanın marjıyla çarpın.

 
granit77 >> :

Bunu istemiyordu. Açık emirlerin marjını enstrümanlara göre ayrı ayrı hesaplaması gerekiyor. Yani, lotları enstrümanlara göre toplayın ve enstrümanın marjıyla çarpın.

Well Duc basittir, her enstrüman için kendi: toplam * marj

Marjı biliyoruz, toplam burada:

 double SumLot ( ) { double buy = 0 , sell = 0 , sl ; int y ;
for ( y = 0 ; y < OrdersTotal ( ) ; y + + ) { OrderSelect ( y , SELECT_BY_POS , MODE_TRADES ) ;
if ( OrderSymbol ( ) = = Symbol ( ) & & OrderType ( ) = = 0 ) buy + = OrderLots ( ) ;
if ( OrderSymbol ( ) = = Symbol ( ) & & OrderType ( ) = = 1 ) sell + = OrderLots ( ) ;
} return ( buy - sell ) ; }
 
kombat писал(а) >>

1 lot için marj hesaplaması çok basittir:

Mevduat para biriminde döndürülen değerler.

!!! 0'ın döndürülebileceğini ve bunun norm olduğunu unutmayın.

Bazı işlem masaları, başlatma ve/veya bakım marjlarını kullanmaz.

Ayrıca örtüşen "sıfır kenar boşluğunu" kullanır ...

*

Ilkeye göre örtüşen hesaplamanın bilgi türü , varyant:

Teşekkür ederim.

Ve başlatma ve destek marjı normal marjdan nasıl farklıdır - ne için kullanılırlar?

 
Finbest >> :

Teşekkür ederim.

Ve başlatma ve destek marjı normal marjdan nasıl farklıdır - ne için kullanılırlar?

Bu, vadeli işlem araç takımıdır.

m.ini = açmak için gerekli marj

m.podd = açıldıktan sonra görüntülenir

Hesaplamalar oldukça karmaşık ve spesifik, bu yüzden işlemin ticaret koşullarına odaklanıyorum.

m.podd genellikle m.ini'nin ~ %75'i, örnekler burada ...

 

Diğer bir seçenek de marjı enstrümana göre ayrı ayrı görüntülemektir.

(hafifçe kırpılmış iExposure )

Dosyalar:
 

Merhaba. Nazikçe yardım edin.

böyle bir program yazdım .. çalışmıyor ..


çift ağırlıklar[][6], saat[][6];
ArrayCopyRates(ves, Symbol(), Period() );// dizi, grafikteki tüm verilere sahiptir

int gün= Gün();
int hou=Saat();
da=gün;
için (; q<= da; q++, w--){
if (TimeDay(ves[q][0])== w && TimeHour(ves[q][0])== hou){
ArrayCopy(saat, ves, e, q);
e++;
}
}

İki dizim var. ves dizisi bir zaman dizisidir.

neye ihtiyacım var........

şimdiki saati al. ves'ten saate kopyalayın. tüm 6 veri.

dünün aynı saatini (dünün) ves kopyasından saate alın.

vb..

 

Arkadaşlar yardım edin nasıl yapacağımı bulamadım.

Step ile DÜŞÜK ve YÜKSEK arasındaki seviyeleri hesaplayan bir döngü vardır.

için ( çift c = DÜŞÜK; c < HI; c = c + Adım)

şimdi her seviyeyi bir yerde hatırlamam gerekiyor, böylece daha sonra onu çekip mevcut fiyatla karşılaştırmak kolay olurdu. Tembellikten değil, bir kod şeklinde yalvarıyorum. Bir örnek görene kadar, nasıl yapılacağını hala anlamıyorum. Teşekkür ederim!

 

Merhaba sevgili Bilenler. Ders kitabında ve forumda cevabını bulamadığım soruları sizlere sormaya devam ediyorum. Nasıl böyle bir durum olabilir?

Test sırasında üçüncü ticarette lot büyüklüğü neden aniden arttı ve 0'da kâr gösterdi?

Lot= MathMin (20,NormalizeDouble(MathMax(Lots,AccountEquity( ) /3000),1));

ÖLÇEK


sembol EURCHF (Euro - İsviçre Frangı)
Dönem 1 Dakika (M1) 2009.08.30 23:02 - 2009.08.31 09:34 (2009.08.30 - 2009.09.05)
modeli Tüm onaylar (mevcut en düşük tüm zaman dilimlerine dayalı en doğru yöntem)
Seçenekler min=0.1;

Tarihteki barlar 1519 Simüle keneler 2156 simülasyon kalitesi %24.95
Grafik Uyuşmazlığı Hataları 0




İlk para yatırma 450.00



Net kazanç -8.00 Toplam kar 0,00 Toplam kayıp -8.00
karlılık 0,00 kazanma beklentisi -2.00

Mutlak Düşüş 32.00 Maksimum düşüş 38.00 (%8.33) göreceli düşüş %8.33 (38.00)

Toplam işlemler 4 Kısa pozisyonlar (% kazandı) 1 (%0,00) Uzun pozisyonlar (% kazandı) 3 (%100,00)

Karlı işlemler (tümünün yüzdesi) 3 (%75,00) İşlemleri kaybetme (tümünün yüzdesi) 1 (%25,00)
En büyük karlı ticaret 0,00 ticaret kaybetmek -8.00
Orta karlı ticaret 0,00 ticaret kaybetmek -8.00
En yüksek miktar sürekli kazanç (kar) 3 (0,00) sürekli kayıplar (kayıp) 1 (-8.00)
Maksimum sürekli kar (kazanç sayısı) 0,00 (0) sürekli kayıp (kayıp sayısı) -8.00 (1)
Ortalama sürekli kazanç 3 sürekli kayıp 1

Numara. Zaman Tip Sipariş Ses Fiyat S/L T/P Kâr Denge
1 2009.08.31 00:16 satın almak 1 0.30 1.5161 1.5127 1.5163
2 2009.08.31 00:37 kapat 1 0.30 1.5161 1.5127 1.5163 0,00 450.00
3 2009.08.31 00:44 satın almak 2 0.30 1.5158 1.5124 1.5161
4 2009.08.31 02:58 kapat 2 0.30 1.5158 1.5124 1.5161 0,00 450.00
5 2009.08.31 03:14 satın almak 3 0.40 1.5152 1.5118 1.5154
6 2009.08.31 03:30 kapat 3 0.40 1.5152 1.5118 1.5154 0,00 450.00
7 2009.08.31 06:45 satmak 4 0.40 1.5151 1.5185 1.5149
sekiz 2009.08.31 08:18 kapat 4 0.40 1.5153 1.5185 1.5149 -8.00 442.00








































































 
001 >> :

Arkadaşlar yardım edin nasıl yapacağımı bulamadım.

Step ile DÜŞÜK ve YÜKSEK arasındaki seviyeleri hesaplayan bir döngü vardır.

için ( çift c = DÜŞÜK; c < HI; c = c + Adım)

şimdi her seviyeyi bir yerde hatırlamam gerekiyor, böylece daha sonra onu çekip mevcut fiyatla karşılaştırmak kolay olurdu. Tembellikten değil, bir kod şeklinde yalvarıyorum. Bir örnek görene kadar, nasıl yapılacağını hala anlamıyorum. Teşekkür ederim!

Bir seçenek olarak:

 double c , levels [ ] ;
int nCount = 1 + ( HI - LOW ) / Step ;
ArrayResize ( levels , nCount ) ;

for ( c = LOW , nCount = 0 ; c < HI ; c + = Step , nCount + + ) {
    levels [ nCount ] = c ;
}

// Use:
for ( int j = 0 ; j < nCount ; j + + ) {
     if ( levels [ j ] > . . . ) {
         //...
     }
}