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

 

Piyasa kapalı!

#1 - OnTick(), Start() ile Button Object'i asla çağırmam , bu normal mi?
#2
-
'ANCHOR_RIGHT_UPPER' Düğme Nesnesine başvurabilir miyim?
#3 - Yani, bu endişem için hala yardıma ihtiyacım var #145 , lütfen.

Teşekkürler!

 

#1 - I never call Button Object by OnTick(), Start(), so is it normal?

Evet

#2 - 'ANCHOR_RIGHT_UPPER' Düğme Nesnesine başvurabilir miyim?

Hayır, bağlantı noktası ANCHOR_LEFT_UPPER olarak sabitlendi

Evet, haklısın - EventSetMillisecondTimer(250)

 
honest_knave :

Evet
Hayır, bağlantı noktası ANCHOR_LEFT_UPPER olarak sabitlendi
Evet, haklısın - EventSetMillisecondTimer(250)

Çok takdir ediyorum. Çok teşekkürler dostum.
 

#Kar Emirleri Sayma - Açık

Sadece hepsini tek bir değerde hesaplamak için tüm karlı pozisyonları almaya çalışıyorum.
Bana ayrı ayrı değerler veriyor.

Gerçekten aklımı kaybettim. Birkaç yol denedim ve bu konuda çok araştırma yaptım ama iyi sonuç alamadım.
Lütfen bana yardım edin, eğer mümkünse, kar hesaplaması hakkında biraz daha açıklayın, çok teşekkürler.

Umarım yakında iyi bir cevap alırım.

void profitcalcfnc()
{
     double trueprofit = 0 ;
     for ( int i = OrdersTotal () - 1 ; i >= 0 ; i-- )
    {
         if   ( ! OrderSelect ( i, SELECT_BY_POS , MODE_TRADES ) ) continue ;
         if   ( closeothers == false && OrderSymbol () != Symbol () ) continue ;
        trueprofit = OrderProfit () + OrderSwap () + OrderCommission ();
         if   ( trueprofit >= 0 )
        {
             Print ( "Profit: " , trueprofit );
             ObjectSetString   ( 0 , "all profit counting object" , OBJPROP_TEXT , DoubleToString ( trueprofit, 2 ) );
        }
    }
     //---
     return ;
}

Şimdiden teşekkürler.

 
trueprofit = OrderProfit () + OrderSwap () + OrderCommission ();

Değere eklemek yerine, döngünün her yinelemesinde trueprofit değerinin üzerine yazıyorsunuz.

Hatırla bunu:

profit = OrderProfit ();

şu şekilde değiştirildi:

profit_buy += OrderProfit ();
Döngünün her yinelemesinde (her sipariş) olmasını istediğiniz şey ile döngüden sonra (tüm siparişleri kontrol ettikten sonra) olmasını istediğiniz şey arasında net olmanız gerekir.
 
honest_knave :
Döngünün her yinelemesinde (her sipariş) olmasını istediğiniz şey ile döngüden sonra (tüm siparişleri kontrol ettikten sonra) olmasını istediğiniz şey arasında net olmanız gerekir.

Hızlı cevabınız için teşekkürler.
Belki çok yorgunum, çok üzgünüm. (Sadece ne yapabileceğimi anlayamıyorum .)

Endişemi biraz daha açıklamam gerekiyor (ne kadar yapabilirim).
Yani, 2 işlevim var:

  1. Bunlardan ilkini Düğme işlevi için kullanıyorum - hangisine tıkladığımda tüm Karlı pozisyonlar kapanacak. Şimdiye kadar iyi çalışıyor. (Yeterince test edemiyorum - aracım devre dışı bırakılmış işlemler)
  2. Bunlardan ikincisini Etiket işlevi için kullanıyorum - hangisi bana tüm karlı değerleri yalnızca bir Etiket Nesnesinde gösterebilir. (Ama yapamam)

Son olarak, şunu istiyorum ( en son yorum kodum) kar hesaplama fonksiyonu, "OP_SELL ve OP_BUY" emirlerinin her iki türünü de sadece karlı olarak hesaplayabilir.

Şimdiden teşekkürler.

 

tüm karlı değerleri tek bir Etikette nasıl göstermeye çalışıyorsunuz?

Eklenen tüm AcountProfit() veya her bir ayrı OrderProfit() için mi demek istiyorsunuz?

Böyle bir şeye ihtiyacınız varsa:


Lütfen bu makaleye bakın:

https://www.mql5.com/en/articles/2723

Graphical Interfaces X: Updates for Easy And Fast Library (Build 3)
Graphical Interfaces X: Updates for Easy And Fast Library (Build 3)
  • 2016.10.17
  • Anatoli Kazharski
  • www.mql5.com
The next version of the Easy And Fast library (version 3) is presented in this article. Fixed certain flaws and added new features. More details further in the article.
 

Yorumun için teşekkürler.
Karışıklık için özür dilerim.

Hayır, sanırım bundan biraz farklı olmam gerekiyor.
sorunuma açıklık getirmeye çalışacağım.

EURUSD için 3 pozisyonum var. İkisi karlı pozisyon, biri kayıp pozisyonu. Bu yüzden sadece iki tanesini hesaplamam gerekiyor ki bunlar karlı.
örneğin: eğer her biri +1.00 (2 karlı pozisyon = +2.00 ) ise sadece tüm karlı pozisyonların değerini almam gerekiyor.

Print ( "Profit: " , 2.00 ); // absolutely no separately - I just need - could adds profitable values 1.00 + 1.00 = 2.00

Söylemeye çalıştığım şeye yardımcı olması için aşağıdaki sekmeyi hızlıca hazırladım. (bu yorum resim dosyasının altında)
(İngilizce benim ana dilim değil - bazen onunla mücadele ediyorum)

Herşey gönlünce olsun.

Ticaret Paneli Sekmesi resim dosyası

 
double totalprofit=0;

// in your orderselect loop put
if(OrderProfit()>0)
{
  totalprofit=totalprofit+OrderProfit();
}
 

#Kar Emirleri Sayma - Kapalı

Marco vd Heijden :
if ( OrderProfit ()> 0 )
{
  totalprofit=totalprofit+ OrderProfit ();
}

Sorunumu harika örnek kodunuzdan sonra çözüyorum.
Harika bir adam, çok teşekkürler!



dürüst_knave :

Değere eklemek yerine, döngünün her yinelemesinde trueprofit değerinin üzerine yazıyorsunuz.
Hatırla bunu:
Döngünün her yinelemesinde (her sipariş) olmasını istediğiniz şey ile döngüden sonra (tüm siparişleri kontrol ettikten sonra) olmasını istediğiniz şey arasında net olmanız gerekir.

Aşağıdaki kod betiğini bitirdikten hemen sonra.
Yorumunuzu bir kez daha kontrol ediyorum, sonra bana açıkladığınızı biliyorum. Ama İngilizcem anlamamı engelliyor.

Her biriniz için en iyisi erkekler.

void calc()
{
     double trueprofit  = 0 ;
     double totalprofit = 0 ;

     for ( int i = OrdersTotal () - 1 ; i >= 0 ; i-- )
    {
         if   ( ! OrderSelect ( i, SELECT_BY_POS , MODE_TRADES ) ) continue ;
         if   ( closeothers != true && OrderSymbol () != Symbol () ) continue ;

        trueprofit = OrderProfit () + OrderSwap () + OrderCommission ();
         if   ( trueprofit >= 0 )
        {
            totalprofit += OrderProfit () + OrderSwap () + OrderCommission ();
             Print ( "Profit: " , DoubleToString ( totalprofit, 2 ) );
             ObjectSetString   ( 0 , _Checkthisout_name_Label, OBJPROP_TEXT , "Total Profit: " + DoubleToString ( totalprofit, 2 ) );
        }
    }
     //---
     return ;
}

Umarım bu kod betiği iyi çalışır. Yukarıdaki kodda yanlış bir şey varsa, lütfen bana bildirin.
Her şey için teşekkürler.

Neden: