Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

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

Nieprzeczytany post autor: Mistyfikator »

Jeszcze takie dwa pytania, ale obawiam się że moje obawy, że tak się nie da w MQL4 są uzasadnione:


1. Rozumiem, że nie da się zadeklarować rozmiaru tablicy jako zmiennej ?

Kod: Zaznacz cały


 int CMO_MA [MA_Period];

MA_Period w inputs oczywiście.


2. Nie da się zadeklarować zmiennych w pętli for tak, żeby ich nazwy różniły się tylko liczbami na końcu tej zmiennej? :

value1, value2, value3, value4 .... itp itd

Liczba zmiennych ( i powtrórzeń pętli ) również zależna od parametru w inputs


Może źle szukałem, ale natrafiam na odpowiedzi że tak nie można

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 »

Mistyfikator pisze:
20 lip 2022, 11:46
Jeszcze takie dwa pytania, ale obawiam się że moje obawy, że tak się nie da w MQL4 są uzasadnione:


1. Rozumiem, że nie da się zadeklarować rozmiaru tablicy jako zmiennej ?

Kod: Zaznacz cały


 int CMO_MA [MA_Period];

MA_Period w inputs oczywiście.
Da się, tylko że deklarujesz int CMO_MA [];
Dopiero w kodzie wykonawczym później CMO_MA [MA_Period];
Mistyfikator pisze:
20 lip 2022, 11:46
2. Nie da się zadeklarować zmiennych w pętli for tak, żeby ich nazwy różniły się tylko liczbami na końcu tej zmiennej? :

value1, value2, value3, value4 .... itp itd

Liczba zmiennych ( i powtrórzeń pętli ) również zależna od parametru w inputs


Może źle szukałem, ale natrafiam na odpowiedzi że tak nie można
Nie bardzo rozumiem, podaj bardziej szczegółowo co chcesz zrobić.
Zasadniczo po to jest pętla for(), żeby w niej zrobić np. value[ i ].
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

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

Nieprzeczytany post autor: Mistyfikator »

ninjaproject pisze:
20 lip 2022, 13:28

Nie bardzo rozumiem, podaj bardziej szczegółowo co chcesz zrobić.
Zasadniczo po to jest pętla for(), żeby w niej zrobić np. value[ i ].
Okej, jak już wiem jak to zrobić z tablicami, to chyba z tym sobie poradzę w ten sposób. Drugie rozwiązanie było alternatywą, jeśli użycie tablic okazałoby się niemożliwe

Chciałem zadeklarować n zmiennych, gdzie n jest zmienną w inputs
Gdzie zmienne byłyby deklarowane dopiero wewnątrz pętli, ale należało by je nazwać przy pomocy konkatenacji .
Przy czym byłoby to połączenie pierwszego, stałego członu nazwy zmiennej "value" + n (zadeklarowane w inputs).

Sory za nieścisłości, bo nie jestem pewien czy łączenie string i int jest możliwe.
Może trzeba by było najpierw skorzystać z IntegerToString a później dopiero spróbować?
Niestety wpadłem na ten pomysł dopiero teraz, a znowu jestem w sytuacji gdzie usiądę do programowania dopiero za kilka godzin.

W sumie już od dawna zastanawiałem się, czy są takie możliwości, ale temat został bo nie było potrzeby go zaczepiać.
Zresztą, to samo z tablicami. Jak dotąd, pierwszy raz spotkałem się z sytuacją, gdzie należałoby je wykorzystać

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 »

Zasadniczo tak, należy zrobić IntegerToString, ale w wypadku zmiennej typu int można też tak:

Kod: Zaznacz cały

strValue = "Nazwa"+(string)i ;
PS. Warto od razu uczyć się pisać zmienne w stylu strZmienna, dblZmienna, intZmienna, itd.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

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

Nieprzeczytany post autor: Mistyfikator »

Oki, dzięki - dobrze wiedzieć.

Już się przez moment obawiałem, że nie da się tego zrobić, co byłoby dziwne w takim języku.
Jeśli takie rozwiązania przychodzą do głowy intuicyjnie.

Podejrzewam, że sytuacje, gdzie liczba powtórzeń pętli będzie deklarowana w inputs i będzie konieczność zapisania danych dla każdego powtórzenia pętli, występują dość często.

Wcześniej myślałem o tym zagadnieniu w kontekście podziału doby na sesje: azjatycką, europejską i amerykańską

Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

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

Nieprzeczytany post autor: Mistyfikator »

ninjaproject pisze:
20 lip 2022, 15:00

PS. Warto od razu uczyć się pisać zmienne w stylu strZmienna, dblZmienna, intZmienna, itd.
Hehe, już "wynalazłem" swój własny format.

Value_String;

Domyślam się, że warto będzie przejść na standardowe zapisy



W ogóle bardzo istotnym zagadnieniem jest konwersja jednego typu zmiennych na drugi

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 »

Nie no, nie istnieją żadne standardowe zapisy zmiennych. Chodzi o to, żeby było się łatwo połapać kiedy mamy tysiące, albo miliony linijek kodu. Stworzyć taki własny, zrozumiały język.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

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

Nieprzeczytany post autor: Mistyfikator »

ninjaproject pisze:
20 lip 2022, 17:27
Nie no, nie istnieją żadne standardowe zapisy zmiennych. Chodzi o to, żeby było się łatwo połapać kiedy mamy tysiące, albo miliony linijek kodu. Stworzyć taki własny, zrozumiały język.
Chodzi bardziej o takie standardy, że stałe piszemy dużymi literami, a zmienne małymi.

Takie standardowe praktyki

Mistyfikator
Pasjonat
Pasjonat
Posty: 932
Rejestracja: 05 lip 2021, 20:35

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

Nieprzeczytany post autor: Mistyfikator »

MT4 GUI - a właściwie jest to temat bardziej ogólny odnośnie graficznych interfejsów

HWND - Window Handle - Uchwyt

Czy dobrze rozumiem, że jest to po prostu wskaźnik (pointer) ?
O co w tym chodzi, mam rozumieć że elementy interfejsu tworzą tablicę i hwnd służy do ich identyfikacji ?

Da się to jakoś prosto wytłumaczyć co to robi?
Jeszcze nie wgłębiłem się w rozdział odnośnie wskaźników tablic C++ (BTW słyszałem że wielu olewa to, ale ja się tego nauczę w późniejszym terminie - mam już kilka mądrych książek i wskaźniki wytłumaczone w kilku źródłach).

Wszystkie pozostałe funkcje MT4GUI wydają się zrozumiałe i nie chciałbym polegnąć na tym "czymś".

BTW ten front-end to też całkiem obszerny temat - generalnie nie chcę się tym zajmować, ale wypadałoby jakoś się z tym zapoznać i coś skonstruować do własnego portfolio.
A dobrze się składa, bo jest tworzywo.

Trochę się z tematem ociągnąłem (ze dwa tygodnie), ale najwyższy czas to sfinalizować.

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 »

To jest temat z dokumentacji Microsoft Windows, a poczytać możesz tutaj:
https://docs.microsoft.com/en-us/window ... rieve-hwnd
Poza tym, to rzeczywiście, o ile nie robisz zbyt dużo w Windows, to nie ma sensu głęboko wnikać w temat, tylko wykorzystywać gotowce. MT4 GUI jest takim gotowcem.

Tu też można poczytać:
https://social.msdn.microsoft.com/Forum ... m=winforms
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

ODPOWIEDZ