Wszystkie pytania dozwolone początkujących programistów
Re: Wszystkie pytania dozwolone początkujących programistów
Poprosiłem o pochwałę za pomoc.
błąd wyłapałem, odwróciłem pętle w drugą stronę.
błąd wyłapałem, odwróciłem pętle w drugą stronę.
Pieniądze rosną na drzewie cierpliwości.
Re: Wszystkie pytania dozwolone początkujących programistów

"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"
Re: Wszystkie pytania dozwolone początkujących programistów
Wszystko wygląda ok, ale nie rozumiem dlaczego nie chce modyfikować zlecenia.
Kod: Zaznacz cały
{
double max;
int z;
int ticket;
double czyJestTP;
for(z=0; z<OrdersTotal(); z++) {
OrderSelect(z, SELECT_BY_POS,MODE_TRADES);
if (OrderTakeProfit()==0) {
if (OrderType()==0 || OrderType()==1){
if (OrderLots()>max) ticket=OrderTicket();
max=MathMax(OrderLots(),max);
}}}
if (OrderType()==0) {
OrderModify(ticket,0,0,Tp_buy,0,0);
RefreshRates();
Sleep(100);
Alert ("ordertype 0"); }
else {
OrderModify(ticket,0,0,Tp_sell,0,0);
RefreshRates();
Sleep(100);
Alert("ordertype 1");}
Alert(ticket);
}
Alert (1," end");
}
return(0);
Pieniądze rosną na drzewie cierpliwości.
Re: Wszystkie pytania dozwolone początkujących programistów
wpisz sobie po linijce z OrderModify
wyswietli Ci numer błędu.
Możliwe, że twoje zmienne Tp_sell i Tp_buy mogą miec złą ilośc miejsc po przecinku. Jesli tak to użyj NormalizeDuoble().
Poza tym w twoim kodzie brakuje linijki OrderSelect, dopisałem
Nie sprawdzałem czy tak będzie działac bo nie mam całego kodu..
-- Dodano: 09 mar 2013, 01:16 --
Też mam pytanko:
Da się ustawic ,lnie pionowe lub poziome na wykresie o parametrach w pikselach? Chodzi mi o to żeby nie przesówały się razem z wykresem.
Kod: Zaznacz cały
Alert(GetLastError());
Możliwe, że twoje zmienne Tp_sell i Tp_buy mogą miec złą ilośc miejsc po przecinku. Jesli tak to użyj NormalizeDuoble().
Poza tym w twoim kodzie brakuje linijki OrderSelect, dopisałem
Kod: Zaznacz cały
{
double max;
int z;
int ticket;
double czyJestTP;
for(z=0; z<OrdersTotal(); z++) {
OrderSelect(z, SELECT_BY_POS,MODE_TRADES);
if (OrderTakeProfit()==0) {
if (OrderType()==0 || OrderType()==1){
if (OrderLots()>max) ticket=OrderTicket();
max=MathMax(OrderLots(),max);
}}}
OrderSelect(ticket,SELECT_BY_TICKET);
if (OrderType()==0) {
OrderModify(ticket,0,0,Tp_buy,0,0);
Alert(GetLastError());
RefreshRates();
Sleep(100);
Alert ("ordertype 0"); }
else {
OrderModify(ticket,0,0,Tp_sell,0,0);
Alert(GetLastError());
RefreshRates();
Sleep(100);
Alert("ordertype 1");}
Alert(ticket);
}
Alert (1," end");
}
return(0);
-- Dodano: 09 mar 2013, 01:16 --
Też mam pytanko:
Da się ustawic ,lnie pionowe lub poziome na wykresie o parametrach w pikselach? Chodzi mi o to żeby nie przesówały się razem z wykresem.

"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"
Re: Wszystkie pytania dozwolone początkujących programistów
Da się jakoś zrobic żeby kod wskaźnika nie wykonywał się po każdym tiku? Chciałbym żeby wskaźnik przeliczał np. co 5 sekund. Zamula mi strasznie, nie dam rady go uprościc a czasami tiki walą kilka razy na sekundę





"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"
Re: Wszystkie pytania dozwolone początkujących programistów
W mqlu nie zrobisz lini poziomych i pionowych tak jak chcesz.
opóżnić możesz:
czekać na nową świecę , new bar
lub opóźnienie sleep();
opóżnić możesz:
czekać na nową świecę , new bar
lub opóźnienie sleep();
Pieniądze rosną na drzewie cierpliwości.
Re: Wszystkie pytania dozwolone początkujących programistów
Dzięki NiceFox!
Niestety new bar to dla mnie za rzadko nawet na M1. A sleep się nie przyda jeśli tiki walą kilka na sekundę. Sleep umieszczony na początku kodu będzie się wykonywał po każdym tiku i reszta kodu nigdy nie zostanie wykonana. Natomiast sleep umieszczony na końcu też nic nie daje bo reszta kodu i tak się wykona po każdym tiku.
Ale dzięki za chęci, te same dwie rzeczy mi przyszły do głowy na początku.
Otrzymałem prawidłowe rozwiązanie w innym temacie jakby kogoś interesowało:
http://forex-nawigator.biz/forum/pytani ... 22915.html

Niestety new bar to dla mnie za rzadko nawet na M1. A sleep się nie przyda jeśli tiki walą kilka na sekundę. Sleep umieszczony na początku kodu będzie się wykonywał po każdym tiku i reszta kodu nigdy nie zostanie wykonana. Natomiast sleep umieszczony na końcu też nic nie daje bo reszta kodu i tak się wykona po każdym tiku.
Ale dzięki za chęci, te same dwie rzeczy mi przyszły do głowy na początku.

Otrzymałem prawidłowe rozwiązanie w innym temacie jakby kogoś interesowało:
http://forex-nawigator.biz/forum/pytani ... 22915.html
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"
-
- Bywalec
- Posty: 16
- Rejestracja: 31 sty 2013, 20:34
Re: Wszystkie pytania dozwolone początkujących programistów
witam czy pomoże mi ktos napisać proste ea chodzi mi by otwierało ono pozycje kupna zaraz po pojawieniu się fractal down oraz sprzedarzy gdy pojawi się fractal up i zeby pozycja została zamknieta po pojaowieniu się przeciwnego fractala np fractal up sprzedaż pojawia sie fractal down zamkniecie pozycji i otwarcie przeciwnej
Re: Wszystkie pytania dozwolone początkujących programistów
lukasz2021 zajrzyj tutaj: http://forexsb.com/forum/topic/3771/daily-eurusd-10-dd/
Do takich prostych rzeczy polecam. Obrazek pokazuje że strategia w okresie długoterminowym sprawdza się aż miło. Wprawdzie do działania trzeba uruchomić dodatkowy programik - ForexStrategyTrader, ale to bardzo ładnie chodzi.
Tutaj jeszcze oryginalna strategia, o której wspomniano w linku powyżej: http://forexsb.com/forum/topic/67/eurus ... -reliable/.
-- Dodano: czw 14-03-2013, 15:58 --
Pytanie mam następujące.
Załóżmy że mam otwartych kilka zleceń na tej samej parze z tym samym MagicNumber. Chcę żeby EA obsługiwała każde zlecenie z osobna. Ma to polegać na tym, że dla każdego z otwartych zleceń mam ustawić w pamięci dwa poziomy ceny. Po przebiciu któregoś z nich strategia podejmie dalsze działanie - np. przestawi poziomy wyzwalaczy. Jeszcze raz zaznaczam - zleceń może być kilka, więc poziomy trzeba pamiętać dla każdego z nich z osobna. Najprościej byłoby, gdyby można było zmodyfikować komentarz - zapamiętałbym sobie odpowiednie wartości w komentarzu zlecenia i z głowy. Ale skoro się nie da, to widzę dwa rozwiązania:
1. Tablice: w jednej numery zleceń, w dwóch kolejnych odpowiednie wartości do zapamiętania. Rozwiązanie w miarę dobre, ale w miarę długości "życia" strategii będą się rozrastać, albo trzeba będzie kasować nieaktualne wartości, zatykać dziury itp., wiadomo - jak to z tablicami.
2. Obiekty na wykresie: np. niewidoczne strzałki. Każdą nazwać od OrderTicket() i przyporządkować jej pożądaną wartość ceny. Po osiągnięciu można je przesuwać na nowe poziomy, a po zamknięciu zlecenia - kasować. Podstawowa wada - działa tylko dla bieżącego wykresu.
A może ktoś zna lepsze i bardziej eleganckie rozwiązanie? Proszę o opis, z programem sobie poradzę.
Do takich prostych rzeczy polecam. Obrazek pokazuje że strategia w okresie długoterminowym sprawdza się aż miło. Wprawdzie do działania trzeba uruchomić dodatkowy programik - ForexStrategyTrader, ale to bardzo ładnie chodzi.
Tutaj jeszcze oryginalna strategia, o której wspomniano w linku powyżej: http://forexsb.com/forum/topic/67/eurus ... -reliable/.
-- Dodano: czw 14-03-2013, 15:58 --
Pytanie mam następujące.
Załóżmy że mam otwartych kilka zleceń na tej samej parze z tym samym MagicNumber. Chcę żeby EA obsługiwała każde zlecenie z osobna. Ma to polegać na tym, że dla każdego z otwartych zleceń mam ustawić w pamięci dwa poziomy ceny. Po przebiciu któregoś z nich strategia podejmie dalsze działanie - np. przestawi poziomy wyzwalaczy. Jeszcze raz zaznaczam - zleceń może być kilka, więc poziomy trzeba pamiętać dla każdego z nich z osobna. Najprościej byłoby, gdyby można było zmodyfikować komentarz - zapamiętałbym sobie odpowiednie wartości w komentarzu zlecenia i z głowy. Ale skoro się nie da, to widzę dwa rozwiązania:
1. Tablice: w jednej numery zleceń, w dwóch kolejnych odpowiednie wartości do zapamiętania. Rozwiązanie w miarę dobre, ale w miarę długości "życia" strategii będą się rozrastać, albo trzeba będzie kasować nieaktualne wartości, zatykać dziury itp., wiadomo - jak to z tablicami.
2. Obiekty na wykresie: np. niewidoczne strzałki. Każdą nazwać od OrderTicket() i przyporządkować jej pożądaną wartość ceny. Po osiągnięciu można je przesuwać na nowe poziomy, a po zamknięciu zlecenia - kasować. Podstawowa wada - działa tylko dla bieżącego wykresu.
A może ktoś zna lepsze i bardziej eleganckie rozwiązanie? Proszę o opis, z programem sobie poradzę.
Re: Wszystkie pytania dozwolone początkujących programistów
Może i tak, chociaż "dzięki" dodatkowym bibliotekom ładowanym z mt4 zaliczyłem kilka razy blue-screena. Doszedłem do wniosku, że chyba wielowymiarowe tablice będą jednak najlepsze. W sumie to całkiem szybko chodzi.
pozdrawiam
pozdrawiam