uzman danışman - çeşitli sorular - sayfa 22

 
Marco vd Heijden :

Lütfen Araçlar sekmesinin altındaki şekillendiriciyi kullanın.
Neyi başarmaya çalıştığın hakkında hiçbir fikrim yok, bu yüzden ne yapmak istediğini tahmin etmem gerekiyor, bu asla iyi değil.
Ancak buradaki örneğe bakabilirsiniz:
Böylece ObjectGetDouble'ı doğrudan kullanabileceğinizi görebilirsiniz, değeri başka bir double'a kopyalamanıza gerek yoktur çünkü nesnenin kendisi değeri tutar ve satırı sürüklediğinizde bu değer otomatik olarak değişir ve bir sonraki okuduğunuzda görülecektir. O.

Öncelikle yorumlarınız için teşekkür ederim ki bu yorumlar bana doğru yolu gösteriyor.
Test.mq4 dosyasına girmeye çalıştığım için büyük bir hata yaptım . Ana mq4 dosyasını denemeye başladığımdan beri. doğru yol alıyorum. Bu dosyaların ikisi de benim için çok farklı.

Evet, örneklerinizi birkaç kez denedikten sonra bu endişemde amacıma ulaşabildim. Ama "HLine" (ve bazı grafiksel) Nesne yaratımları için sadece OnChartEvent() kullanmam gerektiğini anladım.
Ve sonra Take Profit modifikasyonu için OrderModify()'ı kullanmalıyım, Take Profit modifikasyonu "HLine" nesnesini takip etmelidir. (Birincisi: " HLine " şu anda Take Profit Price alıyor ve İkinci: Take Profit " HLine " nesnesini takip ediyor - ve ben " HLine " nesnesini sürüklerken OrderModify() güncellenmemeli )
Ve şimdi önce OrderModify() hakkında araştırma yapmaya başladım.

Örneğinizi bir kez daha kontrol edebileceğimi hissediyorum. Umarım yapabilirim.

Tüm yardımlarınız için teşekkürler Bay Marco .

 

Bay Marco bir kez daha her şey için çok teşekkürler.

Yani, sadece OM işlevi tamamlandı. ( Sipariş Değişikliği )
OM işlevimde, bunları kendi başıma çözdüğüm birkaç sorun gördüm.
Ama sürekli olarak OM işlevinin bazı güncellemelere ihtiyacı olduğunu görüyorum, çünkü OM işlevini Take Profit değişiklikleriyle test etmeye çalışıyorum.

Bu yüzden hala yeni sorunlarla karşı karşıya olduğumu belirtmek isterim (artık Piyasa Kapandı).

#1 Kodların hangi bölümünü tutabilirim?
Aşağıdaki kodların her ikisini de zaten denedim. Ama aralarında bir fark göremedim. Görünüşe göre ikisi de benim için iyi koşuyor.

// I learned this Calculation from thread of @Simon's
for ( i = OrdersTotal () - 1 ; i >= 0 ; i-- ){}

// This is from yours Mr. Marco
for ( i = OrdersTotal (); i >= 0 ; i-- ){}

#2 Bu yanlış mı?
Tek EA betiğimde kodun 7 kat aşağısını kullanıyorum. Sat ve Al fonksiyonlarının hesaplanması için sadece 2x. Ve 2x Yakın. Onları OnChartEvent() ve OnTick() ile çağırıyorum

for ( i = OrdersTotal () - 1 ; i >= 0 ; i-- )
  {
   if (! OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) continue ;
   if (closeothers== false && OrderSymbol ()!= Symbol ()) continue ;
//...
  }



Ayrıca başka sorunlarım var ama bunları kendi başıma çözmek için çalışıyorum.

Şimdiden teşekkürler.

 

Numaralandırma 1 değil 0'dan başlar.

Diyelim ki 3 siparişiniz var. Bunlar:

  • 0
  • 1
  • 2

Yani bunu kullanmalısın:

for ( i = OrdersTotal () - 1 ; i >= 0 ; i-- ){}

Bunu yapmazsanız, bu bir felaket değildir; OrderSelect ilk geçişte (i==3) başarısız olacak ve bir sonraki yinelemeye geçecektir.

Kusura bakmayın 2. sorunuzu anlamadım.

 

İkinci soru için.

Genelde hepsini bir döngüye sıkıştırma eğilimindeyim ama elbette birkaç tane kullanabilirsiniz.

 
honest_knave :

Bunu yapmazsanız, bu bir felaket değildir; OrderSelect ilk geçişte (i==3) başarısız olacak ve bir sonraki yinelemeye geçecektir.

Marco vd Heijden :

Genelde hepsini bir döngüye sıkıştırma eğilimindeyim ama elbette birkaç tane kullanabilirsiniz.

Yorumlarınız için teşekkür ederim. Çok takdir!

 

Bunun nereden geldiğini anlayabildiğim bu sorunlar için zaten birkaç saat harcadım ?!
S: Lütfen bana izin ver bu nedir? (resim dosyasını ekliyorum)

En kullanışlı örneğinizi "Gizli 4.mq4"'ü Sürükleme Kaybını Durdur ve Kâr Al için kullanıyorum, bu yüzden en son Cuma günü mükemmel çalışıyordu.
Şimdi piyasa kapandı, o mesajları Günlük penceresinden görüyorum. OrderModify() kod bloklarını kaldırdığımda bu mesajlar duruyor.

İyi hafta sonları.

Dosyalar:
 

Pekala, piyasalar kapandığında bir emri değiştirebilirsiniz, bu çok mantıklı...

Durdurmak için biraz daha kod gerekir.

 

Max Enrik : OrderModify() kod bloklarını kaldırdığımda mesajların durduğunu görüyorum.
  1. Bu yüzden tavsiye ederim
    Tek bir EA'da birden fazla para birimi ticareti yapmayın
  2. OnTick'te yalnızca bir çift/grafik ticareti yaparsanız, sorun yaşamazsınız.
 

Tüm para birimlerini tek bir EA'da takas etmek tamamen mümkündür.

 
Marco vd Heijden : Tüm para birimlerini tek bir EA'da takas etmek tamamen mümkün.
Asla olmadığını söylemedi. Sorunlardan dolayı tavsiye etmem dedi. Bir çift/grafik her şeyi basitleştirir. İşleri gereğinden fazla zorlaştırma.