Funkcja zwracająca dzienny zysk

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
RafalT
Stały bywalec
Stały bywalec
Posty: 77
Rejestracja: 25 wrz 2010, 00:24

Funkcja zwracająca dzienny zysk

Nieprzeczytany post autor: RafalT »

Witam, mam problem z napisaniem funkcji która zwraca wartość zysku tylko z obecnego dnia. Oto ciało funkcji:

Kod: Zaznacz cały


double dayprofit() 
   {
   int  magic=100;
   double totalprofit;
   for(int i=0; i<OrdersHistoryTotal(); i++)  //wykonanie pętli tyle razy ile transakcji w historii
                  {
                     if( OrderSelect(i, SELECT_BY_POS,MODE_HISTORY))  // wybiera zlecenia
                     {              
                        if(OrderSymbol() == Symbol() &&  // jeśli ta sama waluta
                           OrderMagicNumber() == magic*&&  //ten sam magic
                            OrderCloseTime() == DayOfWeek() )  // ten sam dzień
                        {
                          totalprofit = totalprofit + OrderProfit(); // to sumuj zyski/straty
                        } 
                     }
                  }   
                 return(totalprofit); //zwróć zysk/stratę z danego dnia
   }  


Po przeanalizowaniu kodu raczej jestem pewien że problem tkwi w:

Kod: Zaznacz cały

OrderCloseTime() == DayOfWeek() 
Jak poprawnie sformułować ten warunek? Nie mogę nigdzie znaleźć rozwiązania.

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

RafalT pisze:Po przeanalizowaniu kodu raczej jestem pewien że problem tkwi w:
ja też -. bo w sumie wchodzi ze sprawdzasz zysk z dnia tygodnia.
może warto by było sprawdzać czas zamknięcia, czy jest większy niż początek dzisiejszego dnia?

Kod: Zaznacz cały

if(CloseTime()>=StrToTime(Year()+"."+Month()+"."+Day()))
{
...
}
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
RafalT
Stały bywalec
Stały bywalec
Posty: 77
Rejestracja: 25 wrz 2010, 00:24

Nieprzeczytany post autor: RafalT »

Kod: Zaznacz cały

double dayprofit() 
   {
      int  magic=110;
      double totalprofit=0;
      for(int i=0; i<OrdersHistoryTotal(); i++) 
                     {
                        if( OrderSelect(i, SELECT_BY_POS,MODE_HISTORY))  
                        {              
                           if(OrderSymbol() == Symbol() && OrderMagicNumber() == magic 
                           && OrderCloseTime() >=StrToTime(Year()+"."+Month()+"."+Day()) ) 
                           {
                             totalprofit = totalprofit + OrderProfit();
                           } 
                        }
                     } 
      return(totalprofit);
   } 

ODPOWIEDZ