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

 

takası hesaplamaya çalışıyorum ama olmuyor

İşte son 20 işlemin takaslarını gösteren kod.

for ( int j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {
OrderSelect(j, SELECT_BY_POS, MODE_HISTORY);
if(OrderType()==OP_BUY)
Alert(OrderSymbol()+" ЛОТ = "+OrderLots()+" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+" РАСЧЕТНЫЙ СВОП "+MarketInfo(OrderSymbol(),MODE_SWAPLONG)*MarketInfo(OrderSymbol(),MODE_BID)*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE));
if(OrderType()==OP_SELL)
Alert(OrderSymbol()+" ЛОТ = "+OrderLots()+" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+" РАСЧЕТНЫЙ СВОП "+MarketInfo(OrderSymbol(),MODE_SWAPSHORT)*MarketInfo(OrderSymbol(),MODE_BID)*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE));
}

Ancak takas takası ile gerçek takas farklıdır. Teklif fiyatı bir daha asla aynı olmayacak değil, yaklaşık on binde biri değil.

Fark neden 10'un katı?

Yani hesaplanan takas gerçek olandan 10 kat daha fazladır.

Burada neler olduğunu anlayamıyorum.

MarketInfo(OrderSymbol(),MODE_SWAPTYPE) döndürür birim , daha sonra orada

"Swap hesaplama yöntemi 1 - enstrümanın temel para biriminde;"

Geri dönen noktalarda takas değerleri alıyorum

MarketInfo(OrderSymbol(),MODE_SWAPLONG)

Bu değeri Bid ile çarpıyorum,

*MarketInfo(OrderSymbol(),MODE_BID)

o zamanlar üzerinde boyut çok güzelsin

*OrderLots()

ve bir noktanın değeriyle çarpın mevduat para biriminde bir lottan

*MarketInfo(OrderSymbol(),MODE_TICKVALUE)

Aşağıdaki değerler döndürülür:

EURGBP LOT = 0.46000000 GERÇEK TAKAS = -1.31000000 TAKAS TASARIMI -13.05244609

 

Lütfen bana nasıl yapıldığını söyle

çift MA1,MA2;

MA1= iMA (....,0);

MA2=iMA(....,3);

eğer (MA1-MA2>Nokta)//MA yukarı bakarsa

(MA1-MA2,-Nokta)//MA aşağı bakarsa

 
vasya_vasya писал(а) >>

Bu değeri Bid ile çarpıyorum,

*MarketInfo(OrderSymbol(),MODE_BID)

Bu ne için?

 
Roger >> :

Lütfen bana nasıl yapıldığını söyle

çift MA1,MA2;

MA1=iMA(....,0);

MA2=iMA(....,3);

eğer (MA1-MA2>Nokta)//MA yukarı bakarsa

(MA1-MA2,-Nokta)//MA aşağı bakarsa

Çok teşekkürler))

 
Roger писал(а) >>

Bu ne için?

Dönen değerin tanımını hiçbir yerde bulamadım

MarketInfo(OrderSymbol(),MODE_SWAPLONG)

Bunun EUR puanlarının büyüklüğü olduğu sonucuna vardım. EURGBP teklifinde , yani GBP cinsinden ne kadar olduğunu bulmak için BID ile çarptım

Gerçek şu ki

MarketInfo(OrderSymbol(),MODE_TICKVALUE)

Özellikle GBP için lot başına bir pip değerini döndürür EURGBP teklifinde, EUR için değil.

 
vasya_vasya писал(а) >>

Dönen değerin tanımını hiçbir yerde bulamadım

Nedense bana her zaman tüm hesaplamalar mevduat para biriminde yapılmış gibi geldi.
 
Roger писал(а) >>
Nedense bana her zaman tüm hesaplamalar mevduat para biriminde yapılmış gibi geldi.

İşlev MarketInfo(OrderSymbol(),MODE_SWAPSHORT)

Diğer tüm siparişlerde olduğu gibi -2 tamsayı değerini döndürür. Bu nedenle, bunun puanların değeri olduğunu varsayıyorum.

Mevduat para birimimizin puan cinsinden ifade edilen swap değerinin bu olduğunu varsayalım.

Para birimi depozito = USD

Çarpmak

MarketInfo(OrderSymbol(),MODE_SWAPSHORT)

lot sayısı için

*OrderLots()

Ayrıca, bir lotta mevduat para biriminin bir puanının maliyeti ile çarpıyoruz.

*10

alırız

TAKAS = -9.20000000

Yerine

GERÇEK TAKAS = -1.31000000

 
vasya_vasya писал(а) >>

İşlev MarketInfo(OrderSymbol(),MODE_SWAPSHORT)

Diğer tüm siparişlerde olduğu gibi -2 tamsayı değerini döndürür. Bu nedenle, bunun puanların değeri olduğunu varsayıyorum.

Benim için EURGBP için - 0 (bu Alpari) kısa ve -0.68 uzun döndürür ve bu tam olarak dolar cinsindendir.

 
profesyoneller lütfen bana söyle, mql5 dil yardımına göre iHighest işlevi yok N dönemi için maksimum yüksek nasıl hesaplanır??? ..kendin bir fonksiyon yazman gerekiyor, ..copyHigh ve fmax ile denedim, ama sadece belirli bir süre için ve elbette o değil, yardım
 

Kabaca şöyle konuşursak:

 double HighestBar ( int start , int end )
{
double maxBar ;
for ( int i = start ; i < end ; i + + )
if ( maxBar < High [ i ] ) maxBar = High [ i ] ;
return ( maxBar ) ;
}