Kapatılan siparişler için kar hesaplaması "YARDIM" - sayfa 3

 
Vitaly Muzichenko :
Uymuyor, 10 yıldır bilgi yok.

yani yapmazsın

t değişkeni değişecek ve ahtung olacak

Seri kapanmadan önce hatırlanmalıdır.

color ProfitColor;
datetime t;


// START //
//t=TimeCurrent();//разместить в блоке сигнала на закрытие серии ордеров

   if (LastProfitCL(- 1 )< 0 ) ProfitColor=Red;
   if (LastProfitCL(- 1 )> 0 ) ProfitColor=LimeGreen;
   if (LastProfitCL(- 1 )== 0 )ProfitColor=DarkGray;
   ObjectCreate ( "Last Profit" , OBJ_LABEL , 0 , 0 , 0 );
   ObjectSet ( "Last Profit" , OBJPROP_CORNER , 1 );
   ObjectSet ( "Last Profit" , OBJPROP_XDISTANCE , 5 );
   ObjectSet ( "Last Profit" , OBJPROP_YDISTANCE , 15 );
   ObjectSetText ( "Last Profit" , StringConcatenate ( "Last Profit: " , DoubleToStr (LastProfitCL(- 1 ), 2 )), 10 , "Arial" ,ProfitColor);
// END START //

//+----------------------------------------------------------------------------+
//|    Возвращает суммарный профит в валюте депозита серии закрытых ордеров    |
//+----------------------------------------------------------------------------+
double LastProfitCL( int op=- 1 ){ //"op" позиция (-1 любая позиция)
   double LastProfit= 0 ;
   for (i= OrdersHistoryTotal ()- 1 ;i>= 0 ;i--)
     if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ) && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic) {
       if ( OrderType ()!= op || OrderSymbol ()!= Symbol () || OrderMagicNumber ()!= magic) continue ;
    
       if (op< 0 || OrderType ()==op)

        {

          if ( OrderCloseTime()> =t)LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();
       }

       }
   return (LastProfit);
   }

 
Renat Akhtyamov :

yani yapmazsın

t değişkeni değişecek ve ahtung olacak

Seri kapanmadan önce hatırlanmalıdır.

Denedin?

Kapatmak için bir sinyal aldığı anda kapanmadan önce hatırlar.

 
Vitaly Muzichenko :
Uymuyor, 10 yıldır bilgi yok.

Mevcut kar , tüm hikaye.

O koca için hindi herhangi bir tarihe, saate ayarlanabilir.

 
Vitaly Muzichenko :

Denemek


Comment ( LastProfitCL(- 1 , 0 ) );

//+----------------------------------------------------------------------------+
//|    Возвращает суммарный профит в валюте депозита серии закрытых ордеров    |
//+----------------------------------------------------------------------------+
double LastProfitCL( int op=- 1 , datetime t= 0 ){ //"op" позиция (-1 любая позиция)
double LastProfit= 0 ;
   for ( int i= OrdersHistoryTotal ()- 1 ;i>= 0 ;i--) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )) {
     if ((op< 0 || OrderType ()==op) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic){
     if (t<= OrderCloseTime ()) {
       t= OrderCloseTime ();
       LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();
  }}}} 

 return (LastProfit);
}

Kâr her yenisini hatırlar ama sonra bilinmeyen bir şeyi düşünür. 3 numaralı ekranda 190 değil 4 olmalı

 
Vitaly Muzichenko :

Denedin?

Kapatmak için bir sinyal aldığı anda kapanmadan önce hatırlar.

sadece kodu oku
 

çok 190

if ( OrderCloseTime ()>=t)LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();
 
Natashe4ka :

Kâr her yenisini hatırlar ama sonra bilinmeyen bir şeyi düşünür. 3 numaralı ekranda 190 değil 4 olmalı

İşte kod, benim için iyi çalışıyor, ancak belki de dizinin doğru kapanmasından dolayı

Dosyalar:
info.mq4  9 kb
 
Natashe4ka :

çok 190

if ( OrderCloseTime ()>=t)LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();


Emirleri kapatma komutu nerede bulunur?

t değişkenini oraya sen mi yazdın?

t= TimeCurrent (); //разместить в блоке сигнала на закрытие серии ордеров
 
Renat Akhtyamov :

Emirleri kapatma komutu nerede bulunur?

t değişkenini oraya sen mi yazdın?

t=TimeCurrent();//bir dizi siparişi kapatmak için sinyal bloğuna yerleştirin

Hepsi orada tabii.

if (t<= OrderCloseTime ()) {
       t= OrderCloseTime ();
if ( OrderCloseTime ()>=t)LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();
 
Natashe4ka :

Hepsi orada tabii.

if (t<= OrderCloseTime ()) {
       t= OrderCloseTime ();
if ( OrderCloseTime ()>=t)LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();


Hayır, bu satırı kaldırıyoruz. Zaten bir kar hesabı var, böyle olmayacak.

Kodda kapatma komutu nerede - orada, ancak böyle bir satır yok

Yukarıyı okuyun

Neden: