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
