MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1250

 
Artyom Trishkin :

Anlamadım - ne yazık ki sormayacağım.

Açıklayacağım. Umarım bu mantıklı gelir.

İşte açıklama:

MT5'te EURUSD ve AUDJPY ticareti yapıyorum. Her ikisinin de MT5 Dashboard'da gösterildiği gibi ayrılmış marjı vardır. Bir görsel paylaşacağım.

EURUSD'de ilk işlem:

Bir lot ile sattım = 1. Bir marj aldım = 235.31.

Şu anda AUDJPY ile işlem yapıyorum:

Lot = 1 ile satış yaptım = 144.24 marj aldım.

Ve ToolBox'ta gösterilen toplam marj = 379.55.

Araç çubuğu, görebileceğiniz gibi, EURUSD ve AUDJPY sembolleri tarafından kullanılan toplam marjı gösterir.

Şimdi soruma dönüyorum.

EURUSD toplam marjının hangi marjını kullandığını bilmek istiyorum. Bunun için hesap almıyorum. Cevabın 235.31 olması gerektiğini biliyorum

Ama OrderCalcMargin() ile farklı cevaplar alıyorum. Bazen işlev 235.23, bazen 235.01 döndürür. Ama bu yanlış cevap. Belirli bir sembolde kullanılan marjı nasıl hesaplayabileceğimi bilmek istiyorum. Örneğimde lütfen bana EURSD veya AUDJPY tarafından kullanılan marjı nasıl hesaplayabileceğimi söyleyin.

Not:

OrderCalcMargin() yanıtı bazen EURUSD için doğru yanıtı verir. Ama AUDJPY için marjı hesaplamak istersem, bu her zaman farklıdır.

Şimdi anladıysam lütfen bana bildirin.

Aklıma bu soru geldi ve forumdaki herkese açıklamaya çalıştım ama kimse anlayamadı. Bu benim tekrar denemem.

Hala mantıklı gelmiyorsa tekrar deneyeceğim.

@ Artyom Trishkin bana haber ver. Bana bir çözüm sunacağınıza güveniyorum.

 
jaffer wilson :

Açıklayacağım. Umarım bu mantıklı gelir.

İşte açıklama:

MT5'te EURUSD ve AUDJPY ticareti yapıyorum. Her ikisinin de MT5 Dashboard'da gösterildiği gibi ayrılmış marjı vardır. Bir görsel paylaşacağım.

EURUSD'de ilk işlem:

Bir lot ile sattım = 1. Bir marj aldım = 235.31.

Şu anda AUDJPY ile işlem yapıyorum:

Lot = 1 ile satış yaptım = 144.24 marj aldım.

Ve ToolBox'ta gösterilen toplam marj = 379.55.

Araç çubuğu, görebileceğiniz gibi, EURUSD ve AUDJPY sembolleri tarafından kullanılan toplam marjı gösterir.

Şimdi soruma dönüyorum.

EURUSD toplam marjının hangi marjını kullandığını bilmek istiyorum. Bunun için hesap almıyorum. Cevabın 235.31 olması gerektiğini biliyorum

Ama OrderCalcMargin() ile farklı cevaplar alıyorum. Bazen işlev 235.23, bazen 235.01 döndürür. Ama bu yanlış cevap. Belirli bir sembolde kullanılan marjı nasıl hesaplayabileceğimi bilmek istiyorum. Örneğimde lütfen bana EURSD veya AUDJPY tarafından kullanılan marjı nasıl hesaplayabileceğimi söyleyin.

Not:

OrderCalcMargin() yanıtı bazen EURUSD için doğru yanıtı verir. Ama AUDJPY için marjı hesaplamak istersem, bu her zaman farklıdır.

Şimdi anladıysam lütfen bana bildirin.

Aklıma bu soru geldi ve forumdaki herkese açıklamaya çalıştım ama kimse anlayamadı. Bu benim tekrar denemem.

Hala mantıklı gelmiyorsa tekrar deneyeceğim.

@ Artyom Trishkin bana haber ver. Bana bir çözüm sunacağınıza güveniyorum.

Sizin durumunuzdaki hesaplama için çok önemli değerler:

  1. Hesap hangi para biriminde
  2. Pozisyon açıldığında döviz kuru neydi?

Örnek olarak, AUDUSD ve USDJPY, AUDJPY marj hesaplamasına dahil edilir. AUDJPY pozisyonunu açarken bu para birimlerinin oranları neydi, kimse tahmin edemez. Yalnızca mevcut marj üzerinden hesaplamayı deneyebilirsiniz. Linkini verdiğim konu başlığında bu konu belirtilmişti. Ancak dürüst olmak gerekirse, bu konuda çok az şey söylendi, ancak kodlarda bir şey var.

Sonraki her an bu oranlar değişir ve bu nedenle farklı marj değerleri alırsınız. Mevcut marjın bir pozisyonun açılış fiyatına oranını hesaplayın ve bu oranı açık pozisyonun marjını hesaplamada uygulayın. Deney yapmalıyız. Tam hesaplama algoritmasını hatırlamıyorum.

Ancak neredeyse hiç kimse size hazır bir çözüm sunamaz.

 
Alexey Viktorov :

Sizin durumunuzdaki hesaplama için çok önemli değerler:

  1. Hesap hangi para biriminde
  2. Pozisyon açıldığında döviz kuru neydi?

Örnek olarak, AUDUSD ve USDJPY, AUDJPY marj hesaplamasına dahil edilir. AUDJPY pozisyonunu açarken bu para birimlerinin oranları neydi, kimse tahmin edemez. Yalnızca mevcut marj üzerinden hesaplamayı deneyebilirsiniz. Linkini verdiğim konu başlığında bu konu belirtilmişti. Ancak dürüst olmak gerekirse, bu konuda çok az şey söylendi, ancak kodlarda bir şey var.

Sonraki her an bu oranlar değişir ve bu nedenle farklı marj değerleri alırsınız. Mevcut marjın bir pozisyonun açılış fiyatına oranını hesaplayın ve bu oranı açık pozisyonun marjını hesaplamada uygulayın. Deney yapmalıyız. Tam hesaplama algoritmasını hatırlamıyorum.

Ancak neredeyse hiç kimse size hazır bir çözüm sunamaz.

Evet bunu anladım. Ancak MT5 ToolBox'ın marjı değiştirmeden doğru hesapladığını görüyorum. O zaman MT5 ToolBox hangi mantığı kullanıyor? Lütfen buna biraz ışık tutabilir misiniz?

 

Soru, bir fonksiyondaki argümanlar aracılığıyla çeşitli değişkenlere nasıl değer atanacağıdır. Bir argüman varsa, döndürülebilir ve bir değer atanabilir ve 2 ise, ne yapmalı?

 int x,x1,x2,x3= 1 ,x4,x5;
void OnStart()
{
x= 2 ;
F(x,x1,x2);
Print ( "x1= " ,x1, " x2= " ,x2);
x= 5 ;
F(x,x4,x5);
Print ( "x4= " ,x4, " x5= " ,x5);
return ;
}

int F( int ArgX, int ArgX1, int ArgX2)
{
ArgX1=ArgX + x3;
ArgX2=ArgX - x3;
return ArgX1;
}

//результат
2020.09 . 09 15 : 10 : 10.561 TestS EURUSD,H1: x4= 0 x5= 0
2020.09 . 09 15 : 10 : 10.561 TestS EURUSD,H1: x1= 0 x2= 0
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
  • www.mql5.com
Побитовые операции производятся только с целыми числами. При выполнении операции логический сдвиг представления y вправо/влево на x бит используются младшие 5 двоичных разрядов значения x, старшие разряды отбрасываются, то есть сдвиг производится на 0-31 бит.
 

Valery, belki şöyle çalışır:

 void F( int &ArgX, int &ArgX1, int &ArgX2)
 
Aleksei Stepanenko :

Valery, belki şöyle çalışır:

Aynen, linkler yanılmıyorsam.

2020.09.09 15:18:33.572 TESTLER EURUSD,H1: x4= 6x5= 4

2020.09.09 15:18:33.572 TESTLER EURUSD,H1: x1= 3x2= 1

Teşekkürler)))


 
Aynen öyle! Referans ile geçmek.
 
Valeriy Yastremskiy :

Soru, bir fonksiyondaki argümanlar aracılığıyla çeşitli değişkenlere nasıl değer atanacağıdır. Bir argüman varsa, döndürülebilir ve bir değer atanabilir ve eğer 2 ise ne yapmalı?

Bu ne?

 void start()

Bir zamanlar, uzun zaman önce ... mamutlar yerdi. Ve sonra onu giydiler. Sanırım sadece bu mu?

 
Artyom Trishkin :

Bu ne?

Bir zamanlar, uzun zaman önce ... mamutlar yerdi. Ve sonra onu giydiler. Sanırım sadece bu mu?

Kesinlikle yargılamayın, senaryoyu manuel olarak yazın. Sıkı bir kontrol eski işlevleri kaçırır. Tabii ben öyle yazmıyorum. Bir de yapıcılar var.

düzeltildi)
 
Arkadaşlar herkese iyi günler. Genel olarak, farklı büyülere sahip beş robot, sembolle ticaret yapar, yeni bir barın açılış fiyatında açık piyasa pozisyonları, hepsi aynı giriş koşullarına sahiptir. Çıkışlar farklı.
Ve dahası, yeni pazar pozisyonlarını minimum işçilik maliyetleriyle açmak için bir algoritma nasıl organize edilir, ancak bir sonraki çubukta değil - M1'de, ancak art arda farklı olanlarda, yani. 1 m1'de ilk açmayı başaran, ikinci m1'de açmayı başaran ikincisi vb. 5'e kadar.
Onlar. Bence soru, bir seçenek olarak, standart fonksiyonun Dakika () ile müteakip karşılaştırması için piyasa pozisyonunun açılış saatinden bir dakika nasıl çıkarılır? Ve şu anda zaten bir piyasa pozisyonu varsa, geri dönün ().
Neden: