Wyszukanie max i min w podanym zakresie
Wyszukanie max i min w podanym zakresie
Witam
Prosze o pomoc.
Jak napisac kod, ktory np w godzinie 04:00 zawieralby transakcje SELL oparta na wartosci max i min z godziny 23:00 - 03:00 (jak wyszukac wartosc z wykresu max i min w danych godzinach).
Pozdrawiam
			
			
									
									
						Prosze o pomoc.
Jak napisac kod, ktory np w godzinie 04:00 zawieralby transakcje SELL oparta na wartosci max i min z godziny 23:00 - 03:00 (jak wyszukac wartosc z wykresu max i min w danych godzinach).
Pozdrawiam
Re: Wyszukanie max i min w podanym zakresie
Zainteresuj się funkcjami:
np.
zwróci najwyższą wartość z maksymalnych cen świec od  świecy 4 do  świecy 20 (aktualna liczona jest jako 0).
			
			
									
									
						Kod: Zaznacz cały
double  iHigh(
   string           symbol,          // symbol
   int              timeframe,       // timeframe
   int              shift            // shift
   );
int  iHighest(
   string           symbol,          // symbol
   int              timeframe,       // timeframe
   int              type,            // timeseries
   int              count,           // cont
   int              start            // start
  );
double  iLow(
   string           symbol,          // symbol
   int              timeframe,       // timeframe
   int              shift            // shift
   );
int  iLowest(
   string           symbol,          // symbol
   int              timeframe,       // timeframe
   int              type,            // timeseries id
   int              count,           // count
   int              start            // starting index
  );
Kod: Zaznacz cały
iHighest(NULL,0,MODE_HIGH,20,4)Re: Wyszukanie max i min w podanym zakresie
ok sprawdze, a jaka funkcja pozwoli o danej godzinie np. 04:00 zrobic transakcje jednorazowa BUY ?
			
			
									
									
						Re: Wyszukanie max i min w podanym zakresie
niestety ale te funkcje nie sa w stanie okreslic jaki byl max i min w danym przedziale czasowym  
			
			
									
									
						
Re: Wyszukanie max i min w podanym zakresie
1. sprawdź aktualną godzinę np. funkcjami TimeHour,TimeMinutes,TimeSeconds -  jeżeli 4 to działaj dalej.
2. sprawdź high pożądanej godziny, np 23 przy pomocy funkcji iHigh (tu możesz dorobić sprawdzenie czy o takiej godzinie odbywał się handel).
3. wyślij zlecenie oczekujące o zadanych parametrach.
			
			
									
									
						2. sprawdź high pożądanej godziny, np 23 przy pomocy funkcji iHigh (tu możesz dorobić sprawdzenie czy o takiej godzinie odbywał się handel).
3. wyślij zlecenie oczekujące o zadanych parametrach.
Re: Wyszukanie max i min w podanym zakresie
Dla początkujących to nie jest takie proste.
Trzeba zastosować kombinację kilku rodzajów funkcji. Poprawny kod:
hi, lo to wartości obliczone dla bieżącej daty
			
			
									
									
						Trzeba zastosować kombinację kilku rodzajów funkcji. Poprawny kod:
Kod: Zaznacz cały
   datetime t1, t2;
   string d1, d2;
   double hi, lo;
   int shift, count;
   d1 = TimeToString(TimeCurrent(), TIME_DATE);
   d1 = d1+" 00:00";
   d2 = d1+" 03:00";
   t1 = StringToTime(d1);
   t2 = StringToTime(d2);
   shift = iBarShift(NULL, 0, d2, false);
   count = iBarShift(NULL, 0, d1, false)-shift;
   hi = High[iHighest(NULL, 0, MODE_HIGH, count, shift)];
   lo = Low[iLowest(NULL, 0, MODE_LOW, count, shift)];
Re: Wyszukanie max i min w podanym zakresie
Kod: Zaznacz cały
d1 = TimeToString(TimeCurrent(), TIME_DATE);
d2 = d1+" 00:01";
t2 = StringToTime(d2);
val= iHigh(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,t2));

wartosci juz mam, tylko pytanie jak zrobic zeby po przecinku bylo 5 liczb a nie 4 ? do 4 zrzuca mi iHigh oraz jak zrobic zeby skrypt dzialal online i o godzinie 9:40 wykonywal kod?
skorzystalem z kawalka kodu:
Kod: Zaznacz cały
if (TimeCurrent() >= StrToTime("07:40:00"))-- Dodano: 01 maja 2015, 13:13 --
ok juz wartosci pokazuje mi po przecinku, prosze o pomoc jak zrobic zeby skrypt dzialal online, zebym nic nie musial przy nim ingerowac i zeby sam o 9:40 wystawil dwie aukcje i potem na nastepny dzien o tej samej porze wykonal ta sama czynnosc
Re: Wyszukanie max i min w podanym zakresie
Trzeba zapętlić kod oraz zadbać o to, żeby w danym dniu wykonały się tylko dwa zlecenia.
Na przykład:
			
			
									
									
						Na przykład:
Kod: Zaznacz cały
int thisDay=0;
while (!IsStopped())
{
if (TimeCurrent() >= StrToTime("07:40:00") && thisDay != TimeDay(TimeCurrent()))
{
//--- Otwórz zlecenie 1
//--- Otwórz zlecenie 2
thisDay = TimeDay(TimeCurrent());
}
}
Re: Wyszukanie max i min w podanym zakresie
ok dzieki za podpowiedz, udalo mi sie uzyskac efekt poprzez zastosowanie zmiennej boolean, gdzie dla godziny 7:40 musi byc ona true i wtedy wykonuje sie kod , w ktorym ustawiam flage na false, a wiec nie odpali mi drugi raz kodu, flage ponownie ustawiam na true jesli godzina jest < 07:00
dodatkowo udalo mi sie zrobic, zeby kod dzialal online poprzez EA, a ja tworzylem jako skrypt, wiec to co chcialem uzyskac mam juz zrobione, dziekuje za pomoc, w razie problemow odezwe sie napewno na tym forum
			
			
									
									
						dodatkowo udalo mi sie zrobic, zeby kod dzialal online poprzez EA, a ja tworzylem jako skrypt, wiec to co chcialem uzyskac mam juz zrobione, dziekuje za pomoc, w razie problemow odezwe sie napewno na tym forum

 
							

