jak wybrać pierwszą pozycję

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
NiceFox
Pasjonat
Pasjonat
Posty: 454
Rejestracja: 05 lis 2009, 13:22

jak wybrać pierwszą pozycję

Nieprzeczytany post autor: NiceFox »

jak wybrać pierwszą pozycję(tą która otworzyła się pierwsza) po magicu jeżeli mam np. 3 pozycje z takim samym magiciem?

Kod: Zaznacz cały

  double sum=0;
  double cnt;
  double total;
  double magic_number;
  
for (cnt = 0 ; cnt <= total ; cnt++)
            {
               OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
               if ( OrderMagicNumber() == magic_number)
               {
                 // sprawdzamy najpierw czy na danym order magic suma pozycji jest > 0
               sum = sum + OrderProfit();
              // Alert(sum);
              PierwszaPozycja=OrderOpenPrice();
              Kierunek=OrderType();
              OrderType();
          
               }
            }
Pieniądze rosną na drzewie cierpliwości.

crn
Gaduła
Gaduła
Posty: 117
Rejestracja: 17 mar 2009, 22:07

Nieprzeczytany post autor: crn »

ja zapisuje do tablicy czas zlecenia i tickety - tablice sortuje wg. czasu (najwieksza ilosc sekund == najswiezsze zlecenie) i wybieram ticket przypadajacy indexowi wyselekcjonowanemu wg czasu

Awatar użytkownika
NiceFox
Pasjonat
Pasjonat
Posty: 454
Rejestracja: 05 lis 2009, 13:22

Nieprzeczytany post autor: NiceFox »

a czy możesz pokazać jakiś przyklad kodu jak to wygląda?
Pieniądze rosną na drzewie cierpliwości.

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

Nieprzeczytany post autor: Tig3r »

sprawdzaj datę otwarcia zleceń i wybierz te które ma najwcześniejsze

Kod: Zaznacz cały

OrderOpenTime()
Najprawdopodobniej najmniejszy ticket też zadziała
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
NiceFox
Pasjonat
Pasjonat
Posty: 454
Rejestracja: 05 lis 2009, 13:22

Nieprzeczytany post autor: NiceFox »

nie jest to takie proste jak to zapisać?[/code]

Kod: Zaznacz cały

 if OrdersTotal >1 && OrderOpenTime() //jest wartością najniższą większą od 0
Pieniądze rosną na drzewie cierpliwości.

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

Nieprzeczytany post autor: Tig3r »

1. zmienna X datetime, dajesz jej wartość obecnego czasu, Y int dajesz 0
2. lecisz po wszystkich zleceniach i sprawdzasz magic i czas otwarcia
3. jeśli czas otwarcia jest mniejszy niż zapamiętamy przez zmienna X to zapamiętujesz ticket w Y i zmiennej X przypisujesz czas otwarcia tego zlecenia
4. jak przelecisz po wszystkich zleceniach to zmienna odpowiedzialna za zapamiętanie ticket Ybędzie zawierała ticket pierwszej transakcji (o ile Y>0).
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
NiceFox
Pasjonat
Pasjonat
Posty: 454
Rejestracja: 05 lis 2009, 13:22

Nieprzeczytany post autor: NiceFox »

zapędziłem się w kozi róg

Kod: Zaznacz cały

  double total;
  double magic_number=1;
  datetime X;
  int Y = 0;
  
for (Y = 0 ; Y <= total ; Y++)
            {
               OrderSelect(Y,SELECT_BY_POS,MODE_TRADES);
               if ( OrderMagicNumber() == magic_number)
               { if (OrderOpenTime ()<X ) Y++;
               X= Y;
         
               }
            }
Pieniądze rosną na drzewie cierpliwości.

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

Nie wiem dlaczego nie przeczytales dokladnie tego co napsial Tig3r i nie zrobiles jak kazal ;)

Kod: Zaznacz cały

 double total; 
  double magic_number=1; 
  datetime X; 

  int Y = 0; //Y int dajesz 0
  
X = TimeCurrent( ) ;  //1. zmienna X datetime, dajesz jej wartość obecnego czasu,  
for (int i = 0 ; i <= total ; i++) 
            { 
               OrderSelect(i,SELECT_BY_POS,MODE_TRADES); 
               if ( OrderMagicNumber() != magic_number) continue; 
                if (OrderOpenTime ()<X ) { //jeśli czas otwarcia jest mniejszy niż zapamiętamy przez zmienna X
                    X = OrderOpenTime(); // i zmiennej X przypisujesz czas otwarcia tego zlecenia 

                    Y = OrderTicket(); // to zapamiętujesz ticket w Y
                   }                          
            }


// jak przelecisz po wszystkich zleceniach to zmienna odpowiedzialna za zapamiętanie ticket Ybędzie zawierała ticket pierwszej transakcji (o ile Y>0).


ODPOWIEDZ