Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
blashka
Stały bywalec
Stały bywalec
Posty: 41
Rejestracja: 27 lis 2020, 18:12

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: blashka »

Rozumiem, planuje stworzyć bibliotekę i sobie z niej aby wrzucać funkcję tak jak napisałeś powyżej, ale staram się łapać póki co jak najwięcej skilla i żeby to wszystko było poprawnie zrobione. Dzięki za pomoc raz jeszcze.

blashka
Stały bywalec
Stały bywalec
Posty: 41
Rejestracja: 27 lis 2020, 18:12

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: blashka »

Hej
Jeszcze jedno pytanie dotyczące wskaźników. Czy mogę za pomocą funkcji iCustom wywołać wskaźnik który pobrałem z internetu? Wrzucam go do folderu Indicators, ale w logach przy próbie wrzucenia go w formie skryptu na wykres wyskakuje cannot open file. Dodam że mam tylko plik ex4, bez kodu źródłowego. Z góry dzięki za odpowiedź.

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: ninjaproject »

blashka pisze:
10 mar 2021, 09:47
Hej
Jeszcze jedno pytanie dotyczące wskaźników. Czy mogę za pomocą funkcji iCustom wywołać wskaźnik który pobrałem z internetu? Wrzucam go do folderu Indicators, ale w logach przy próbie wrzucenia go w formie skryptu na wykres wyskakuje cannot open file. Dodam że mam tylko plik ex4, bez kodu źródłowego. Z góry dzięki za odpowiedź.
Jeżeli wskaźnik kompiluje się poprawnie, to tak, zawsze.
Przez funkcję iCustom() możemy pobrać ceny poszczególnych buforów dowolnego wskaźnika.
Kod źródłowy nie jest tu do niczego potrzebny.

Wskaźnika nie można instalować do folderu Scripts, ponieważ jest wskaźnikiem, a nie skryptem w rozumieniu MQL4.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

RyszKo
Bywalec
Bywalec
Posty: 11
Rejestracja: 31 sie 2013, 20:55

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: RyszKo »

Mam wskaźnik w wersji skompilowanej, który generuje na wykresie kolorowe krzywe ciągłe zaczynające się od kropki, wskazujące panujący na rynku trend. Gdy trend się zmienia, na następnej świeczce pojawia się kropka innego koloru i dalej jest rysowana linia ciągła w tym kolorze co kropka aż do momentu gdy trend ulega zmianie. Aby sprawdzić skuteczność tego wskaźnika chciałem stworzyć EA, który będzie otwierał pozycje w kierunku odpowiadającym kolorowi pojawiającej się kropki i zamykał ją po pojawieniu się kropki sygnalizującej zmianę trendu. Moja umiejętność programowania w języku MQL4 okazała się na tyle słaba, że nie znalazłem sposobu zapisania w kodzie wysyłania polecenia kupna lub sprzedaży w chwili pojawianie się na wykresie kropek w odpowiednim kolorze.
Bardzo proszę o podpowidź jak zapisać takie polecenia w kodzie MQL4
Pozdrawiam,
RyszKo

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: ninjaproject »

RyszKo pisze:
11 mar 2021, 12:41
Mam wskaźnik w wersji skompilowanej, który generuje na wykresie kolorowe krzywe ciągłe zaczynające się od kropki, wskazujące panujący na rynku trend. Gdy trend się zmienia, na następnej świeczce pojawia się kropka innego koloru i dalej jest rysowana linia ciągła w tym kolorze co kropka aż do momentu gdy trend ulega zmianie. Aby sprawdzić skuteczność tego wskaźnika chciałem stworzyć EA, który będzie otwierał pozycje w kierunku odpowiadającym kolorowi pojawiającej się kropki i zamykał ją po pojawieniu się kropki sygnalizującej zmianę trendu. Moja umiejętność programowania w języku MQL4 okazała się na tyle słaba, że nie znalazłem sposobu zapisania w kodzie wysyłania polecenia kupna lub sprzedaży w chwili pojawianie się na wykresie kropek w odpowiednim kolorze.
Bardzo proszę o podpowidź jak zapisać takie polecenia w kodzie MQL4
Pozdrawiam,
RyszKo
Pobrać dane z buforów wskaźnika przez funkcję iCustom().
W razie potrzeby zgłosić się do mnie.

PS. Warto podać nazwę wskaźnika, zamiast opisywać co on pokazuje.
PPS. W praktyce te sygnały się pojawiają i znikają. Tylko niektóre zostają na wykresie i te widać w historii.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

RyszKo
Bywalec
Bywalec
Posty: 11
Rejestracja: 31 sie 2013, 20:55

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: RyszKo »

@ninjapojekt.
Dziękuję bardzo za pomoc i wskazówki na temat pisania postów. Jestem z epoki dinozaurów więc we współczesnych czasach często mam problemy z nadążaniem za rozwojem techniki. Mam 87 lat. Wskaźnik o którym pisałem poznałem przed laty u brokera Axiory jako Axiory_Strike_Indicator. Teraz spotkałem go u brokera PurpleTrading jako Purple_Strike_indicator. Jest to dokładnie ten sam wskażnik tylko z inna nazwą. Mam rachunek rzeczywisty u tego brokera. Upolowałem kilka dobrych wejść wg wskazań wskaźnika ale widać, że nie zawsze tak jest. Chciałem zrobić statystyki więc pomyślałem o EA. Poległem na starcie. Próbowałem zapisać wskazania wskaźnika w tablicach:

input string IndName = "Purple_Strike_indicator"; // Nazwa wskaźnika

double GetInd_iCustom[101]; // wszystkie wartości
double GetInd_iCustom_red[101]; // Tylko czerwone
double GetInd_iCustom_aqua[101]; // Tylko zielone

Taki fragment kodu wstawiłem do EA. Całość skompilowałem wyłączając komentarzami linie kodu generujące błędy. Niestety odczytanie wskaźnika przez program nie powiodło się. W logach zapisuje się błąd:
2021.03.12 21:16:14.761 2020.10.30 14:45:54 cannot open file 'C:\Users\rk\AppData\Roaming\MetaQuotes\Terminal\B0BD842222E325E29574A178994914CC\MQL4\indicators\Purple_Strike_idicator.ex4' [2]
Wskaźnik jest w folderze przeznaczonym na wskaźniki i dodany do wykresu działa prawidłowo.
Gdyby to się udało to dalej badając kiedy następuje zmiana koloru mógłbym wysyłać zlecenia kupna lub sprzedaży. Oczywiście wiem, że nawet gdyby udało mi się napisać poprawnie działający kod to wskaźnik nie gwarantuje pozytywnych wyników. Widzę jak wskaźnik nie może się zdecydować gdzie postawić kropkę. Na świeczce decydującej o zmianie koloru kropki pojawiają się i znikają aby ostatecznie pozostać w punktach L lub H. Pisanie kodu traktuję głównie jako naukę posługiwania się językiem MQL4. Może zechcesz jeszcze podpowiedzieć mi jak skutecznie wywołać wskaźnik i umieścić wskazania w tablicach. Chciałem dołączyć plik ze wskaźnikiem ale system sygnalizuje: BŁĄD
Nieprawidłowe rozszerzenie pliku: Axiory_Strike_indicator.ex4
Pozdrawiam,
RyszKo

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: ninjaproject »

Pogooglowałem.
Niestety, Axiory_Strike_indicator.ex4 jest oferowany wyłącznie klientom Axiory, a Purple_Strike_indicator.ex4 wyłącznie klientom Purple.
Ponieważ nie są to kody źródłowe, to nie mamy możliwości wglądu w kod i jego modyfikacji.
Jeżeli masz ten wskaźnik w folderze Indicators, to w MQL4 odczytujesz z niego dane za pomocą funkcji iCustom().
Czyli przykład:

Kod: Zaznacz cały

int    i,limit,counted_bars=IndicatorCounted();
limit=Bars-counted_bars;
for (i=limit; i>=0; i--)   
 {
 double cenaBufor0=iCustom(_Symbol,_Period,"Purple_Strike_indicator", tu wszystkie potrzebne parametry wejściowe, 0, i);
 double cenaBufor1=iCustom(_Symbol,_Period,"Purple_Strike_indicator", tu wszystkie potrzebne parametry wejściowe, 1, i);
 double cenaBufor2=iCustom(_Symbol,_Period,"Purple_Strike_indicator", tu wszystkie potrzebne parametry wejściowe, 2, i);
 }
Oczywiście, do EA potrzebujesz zwykle tylko cenę i=1, niektórzy biorą i=0.
Wtedy pętla for nie jest potrzebna.

Nie jestem w stanie znaleźć tego wskaźnika w necie, więc dalej pomóc nie mogę nie mając go i nie widząc jego buforów.

Jeszcze doczytałem, że te wskaźniki są zabezpieczone przed stosowaniem na platformach innych brokerów.

Ewentualnie, założyć konto demo np. w Purple...
2021-03-12_231619.jpg
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony 12 mar 2021, 23:24 przez ninjaproject, łącznie zmieniany 1 raz.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: ninjaproject »

PS. Uruchomiłem pewne kontakty, zobaczymy jakie rozwiązanie z tego wyjdzie, ale to jutro.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: ninjaproject »

No to już wiem:
Sygnał Kup (kropka niebieska) - Bufor 0
Sygnał Sprzedaj (kropka czerwona) - Bufor 1
Linia trendu niebieska - Bufor 2
Linia trendu czerwona - Bufor 3

Więcej buforów ten wskaźnik nie posiada.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: ninjaproject »

Czyli, że pobranie danych powinno wyglądać tak:

Kod: Zaznacz cały

int okresPSI = 5; 
int    i,limit,counted_bars=IndicatorCounted();
limit=Bars-counted_bars;
for (i=limit; i>=0; i--)   
 {
 double cenaBufor0=iCustom(_Symbol,_Period,"Purple_Strike_indicator", " ",okresPSI, 0, i);
 double cenaBufor1=iCustom(_Symbol,_Period,"Purple_Strike_indicator", " ",okresPSI, 1, i);
 double cenaBufor2=iCustom(_Symbol,_Period,"Purple_Strike_indicator", " ",okresPSI, 2, i);
 double cenaBufor2=iCustom(_Symbol,_Period,"Purple_Strike_indicator", " ",okresPSI, 3, i);
 }
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

ODPOWIEDZ