podłączenie się do MT przez aplikację w C++

O jezykach programowania w platformach i nie tylko.
kowal
Bywalec
Bywalec
Posty: 20
Rejestracja: 20 wrz 2012, 14:38

podłączenie się do MT przez aplikację w C++

Nieprzeczytany post autor: kowal »

Cześć!
pytanie do tych bardziej obeznanych informatyków:
W jaki sposób można się połączyć z MT przez C++?
Tzn. Czy jest w ogóle taka możliwość by cały kod napisać w C++ i jakoś połączyć się z MT?
Czytałem coś o named pipes - czy są inne rozwiązania?
Jakie są wady i zalety takich rozwiązań?
Czy jest możliwość takiego podłączenia się pod MT by napisać EA w C++ a testy przeprwoadzić w MT?

Jak możecie podajcie tylko hasła czego mam szukać (jakich terminów etc.) - nie musicie podawać konkretnych kawałków kodu! - chociaż te są zawsze najmilej widziane! :)
Z góry dzięki i pozdrawiam.

Awatar użytkownika
MaRCHeW
Pasjonat
Pasjonat
Posty: 1213
Rejestracja: 20 gru 2005, 22:19

Re: podłączenie się do MT przez aplikację w C++

Nieprzeczytany post autor: MaRCHeW »

Witam.
kowal pisze:Cześć!
pytanie do tych bardziej obeznanych informatyków:
W jaki sposób można się połączyć z MT przez C++?
Tzn. Czy jest w ogóle taka możliwość by cały kod napisać w C++ i jakoś połączyć się z MT?
Czytałem coś o named pipes - czy są inne rozwiązania?
Jakie są wady i zalety takich rozwiązań?
Czy jest możliwość takiego podłączenia się pod MT by napisać EA w C++ a testy przeprwoadzić w MT?

Jak możecie podajcie tylko hasła czego mam szukać (jakich terminów etc.) - nie musicie podawać konkretnych kawałków kodu! - chociaż te są zawsze najmilej widziane! :)
Z góry dzięki i pozdrawiam.
MQL5 to przecież C++ (trochę okrojone). Po co kombinujesz? Chyba, że potrzebujesz czegoś "extra"?

Pozdrawiam
Karol Marchewka

crn
Gaduła
Gaduła
Posty: 117
Rejestracja: 17 mar 2009, 22:07

Re: podłączenie się do MT przez aplikację w C++

Nieprzeczytany post autor: crn »

kowal pisze:Cześć!
pytanie do tych bardziej obeznanych informatyków:
W jaki sposób można się połączyć z MT przez C++?
Tzn. Czy jest w ogóle taka możliwość by cały kod napisać w C++ i jakoś połączyć się z MT?
Czytałem coś o named pipes - czy są inne rozwiązania?
Jakie są wady i zalety takich rozwiązań?
Czy jest możliwość takiego podłączenia się pod MT by napisać EA w C++ a testy przeprwoadzić w MT?

Jak możecie podajcie tylko hasła czego mam szukać (jakich terminów etc.) - nie musicie podawać konkretnych kawałków kodu! - chociaż te są zawsze najmilej widziane! :)
Z góry dzięki i pozdrawiam.
Tak. wyszukaj "DLL";
Napisz do czego potrzebujesz c++ i co chesz osiagnac. napsiz cos wiecej, bo sposobow jest sporo. Od zywklych ( nie polecanych plikow ) po pameic (wspol)dzielona.
Najprawdopodobniej potrzebujesz napisac sobie bibliioteke dll. Zgoogluj, na forum bylo sporo tematow. nawet pare moich :)

kowal
Bywalec
Bywalec
Posty: 20
Rejestracja: 20 wrz 2012, 14:38

Re: podłączenie się do MT przez aplikację w C++

Nieprzeczytany post autor: kowal »

Cześć!
Tak, masz racje Marchew, że MQL5 jest bardzo podobny do C++ - ale nie identyczny! I w tym jest główny problem :(.
Powodów dlaczego chcę w minimalnym stopniu korzystać z MQL-a jest kilka.
Główny to taki, że C++ jest znacznie bardziej praktyczniejszy (nie musi się ograniczać tylko do pisania EA w MT) a mi po prostu nie chce się uczyć kolejnego języka. Chcę rozszerzyć swoją wiedzę z zakresu C++ i na tym zakończyć moją przygodę z programowaniem i skoncentrować się na pisaniu konkretnych aplikacji - i tak jak wspomniałem wcześniej skupiając się nie tylko na EA i Forex-ie. C++ uczę się już jakiś czas a teraz przyszedł czas na WinApi. Następnym będą moje własne projekty.
Rozumiem, że umiejąc jeden język łatwo przejść na drugi (szczególnie na taki prawie identyczny), ale ja nie jestem informatykiem i nie widze po prostu potrzeby brnięcia w kolejny twór :(. Do tego mimo wszystko potrzebny jest na to czas, którego niestety ciągle brakuje.
Dodatkowo chciałbym podkreślić, że nie zależy mi na wizualnym aspekcie aplikacji - tj. nie chcę tworzyć np. wskaźników, które mi będą rysowały strzałki, linie etc. na wykresie. Przedmiotem moich zainteresowań są głównie modele matematyczne, które chcę badać na FX. Dlatego aplikacja w C++ byłaby takim niby silnikiem do obliczeń a MT do sprawdzenia wyników i wizualizacji efektów takich systemów (podkreślam słówo efektów :)).
Reasumując zależy mi, by jakaś prosta aplikacja w MT (napisana w MQL4/5) łączyła się "jakoś" z aplikacją napisaną w C++ i wykonywała jej polecenia (szczególnie odnośnie pobierania danych w tym głównie ceny).
Jeśli jest taka możliwość to zależy mi by ta funkcja działała również w trakcie testów strategii. Tzn. jak już napiszę "silnik" w C++ to żebym mógł odpalić tą prostą aplikację napisaną np. w MQL4 w testerze strategii i by w trakcie testów było nawiązywane również połączenie.
Takie rozwiązanie byłoby najciekawsze (chociaż zapewne nie najprostrze).
pozdrawiam i dziękuję za wszelką pomoc!

crn
Gaduła
Gaduła
Posty: 117
Rejestracja: 17 mar 2009, 22:07

Re: podłączenie się do MT przez aplikację w C++

Nieprzeczytany post autor: crn »

kowal pisze:Cześć!
Tak, masz racje Marchew, że MQL5 jest bardzo podobny do C++ - ale nie identyczny! I w tym jest główny problem :(.
Powodów dlaczego chcę w minimalnym stopniu korzystać z MQL-a jest kilka.
Główny to taki, że C++ jest znacznie bardziej praktyczniejszy (nie musi się ograniczać tylko do pisania EA w MT) a mi po prostu nie chce się uczyć kolejnego języka. Chcę rozszerzyć swoją wiedzę z zakresu C++ i na tym zakończyć moją przygodę z programowaniem i skoncentrować się na pisaniu konkretnych aplikacji - i tak jak wspomniałem wcześniej skupiając się nie tylko na EA i Forex-ie. C++ uczę się już jakiś czas a teraz przyszedł czas na WinApi. Następnym będą moje własne projekty.
Rozumiem, że umiejąc jeden język łatwo przejść na drugi (szczególnie na taki prawie identyczny), ale ja nie jestem informatykiem i nie widze po prostu potrzeby brnięcia w kolejny twór :(. Do tego mimo wszystko potrzebny jest na to czas, którego niestety ciągle brakuje.
Dodatkowo chciałbym podkreślić, że nie zależy mi na wizualnym aspekcie aplikacji - tj. nie chcę tworzyć np. wskaźników, które mi będą rysowały strzałki, linie etc. na wykresie. Przedmiotem moich zainteresowań są głównie modele matematyczne, które chcę badać na FX. Dlatego aplikacja w C++ byłaby takim niby silnikiem do obliczeń a MT do sprawdzenia wyników i wizualizacji efektów takich systemów (podkreślam słówo efektów :)).
Reasumując zależy mi, by jakaś prosta aplikacja w MT (napisana w MQL4/5) łączyła się "jakoś" z aplikacją napisaną w C++ i wykonywała jej polecenia (szczególnie odnośnie pobierania danych w tym głównie ceny).
Jeśli jest taka możliwość to zależy mi by ta funkcja działała również w trakcie testów strategii. Tzn. jak już napiszę "silnik" w C++ to żebym mógł odpalić tą prostą aplikację napisaną np. w MQL4 w testerze strategii i by w trakcie testów było nawiązywane również połączenie.
Takie rozwiązanie byłoby najciekawsze (chociaż zapewne nie najprostrze).
pozdrawiam i dziękuję za wszelką pomoc!
Bez obrazy, ale po tym co psizesz, to widac, ze z programowaniem za duzo wspolnego nei masz... Nie wymyslej, zobacz przyklad, jezeli znasz C to samo zrobisz w mql tylko latiwej.
Nie da sie przekazac danych z tego "tworu" poki go nei poznasz. Podstawowa roznica sa funkcje, ktore msuzisz wywolac i tyle - inaczej nei otrzyamsz danych.

kowal
Bywalec
Bywalec
Posty: 20
Rejestracja: 20 wrz 2012, 14:38

Re: podłączenie się do MT przez aplikację w C++

Nieprzeczytany post autor: kowal »

tak się zkłada, że znam zarówno MQL4 (w stopniu bardzo dobrym) jak i C++ (w stopniu średnim+). Po prostu nie chcę już przekopywać się przez MQL5. Zdaję sobie również sprawę z tego, że chcąc się podłączyć z C++ pod MT/MQL będę musiał napisać program zarówno w MQL-u jak również w C++. Chcę wiedzieć tylko jak to najlepiej zorganizować - jakiego narzędzia urzyć? Ta wiedza przydać mi się może na przyszłość, natomiast nauka MQL5 praktycznie do niczego mi się nie przyda - poza napisaniem EA, które mogę napisać w każdym innym języku.
Stąd ponawiam prośbę o podpowiedź jakiego narzędzia do tego urzyć - co wy polecacie? Jakie są wady a jakie zalety każdego z nich? Czytałem o named pipes-ach, ale zaniem zacznę się uczyć tego mechanizmu chcę poznać wasze zdanie czy nie ma jakiegoś innego, lepszego (dlaczego?), mechanizmu?
Z tego co wiem w MQL5 nie ma np. wskaźników (to co jest to jest zdaje się pseudo-wskaźnik?) i nie wiem jak z dynamicznym alokowaniem pamięci. Czy da się tworzyć np. dynamiczne tablice tablic (tzn. dynamiczne tablice wielowymiarowe)?
Do tego w MQL5 inaczej się "dostajemy" do ceny - czy może ktoś mi napisać w jaki sposób? Wiem, że urzywa się do tego funkcji kopiującej, ale mam wiele wątpliwości przy tym :(
Z góry dzięki za pomoc!
pozdrawiam

green7
Maniak
Maniak
Posty: 2060
Rejestracja: 16 sty 2008, 18:44

Re: podłączenie się do MT przez aplikację w C++

Nieprzeczytany post autor: green7 »

Chłopie - aleeeś "pourzywał" .... Proponowane narzędzie to słownik ortograficzny :)
No soorki - ale strasznie to razi.
Do rzeczy: skoro znasz c++ to nic innego Ci nie potrzeba. Zrób sobie w c dlla. Tego dlla będziesz wołał z poziomu mqla. Jako parametry podasz mu to co potrzebujesz: aktualne ceny, balance konta, equity czy co tam jeszcze niezbędne jest Ci do tradingu.
Wywołana z mql,a funkcja zwróci wartość, którą zinterpretujesz w mqlu i w zależności od niej wykonasz odpowiednie działania: np. otworzysz transakcje.

To samo możesz zrobić poprzez namedpipes: to tylko dodatkowa warstwa komunikacyjna. Tak czy inaczej musisz opracować po prostu "protokół komunikacji" c++ <-> mql.
Dużo zabawy.... jest już taki gotowiec to robiący, ale w c#
Green
Obrazek
Obrazek

Awatar użytkownika
NiceFox
Pasjonat
Pasjonat
Posty: 454
Rejestracja: 05 lis 2009, 13:22

Re: podłączenie się do MT przez aplikację w C++

Nieprzeczytany post autor: NiceFox »

Rozumiem że potrzebujesz wszystko z dziada wyprowadzić na zewnątrz.
Więc komunikacja name pipe będzie ok.
Do tego np. Berkeley DB.
Pieniądze rosną na drzewie cierpliwości.

kowal
Bywalec
Bywalec
Posty: 20
Rejestracja: 20 wrz 2012, 14:38

Re: podłączenie się do MT przez aplikację w C++

Nieprzeczytany post autor: kowal »

green7 pisze:Chłopie - aleeeś "pourzywał" .... Proponowane narzędzie to słownik ortograficzny :)
No soorki - ale strasznie to razi.
Do rzeczy: skoro znasz c++ to nic innego Ci nie potrzeba. Zrób sobie w c dlla. Tego dlla będziesz wołał z poziomu mqla. Jako parametry podasz mu to co potrzebujesz: aktualne ceny, balance konta, equity czy co tam jeszcze niezbędne jest Ci do tradingu.
Wywołana z mql,a funkcja zwróci wartość, którą zinterpretujesz w mqlu i w zależności od niej wykonasz odpowiednie działania: np. otworzysz transakcje.

To samo możesz zrobić poprzez namedpipes: to tylko dodatkowa warstwa komunikacyjna. Tak czy inaczej musisz opracować po prostu "protokół komunikacji" c++ <-> mql.
Dużo zabawy.... jest już taki gotowiec to robiący, ale w c#
Dzięki green i NiceFox za odpowiedź. Za błędy przepraszam - przeglądarka mi chwilowo nie sprawdza błędów więc mam z tym rzeczywiście problem.
Tak jak wspomniałem wcześniej WinApi dopiero się uczę, a DLL jest prawie na końcu podręcznika więc tak za wczasu zapytam: czy pisząc "Zrób sobie w c dlla" miałeś na myśli C++ czy czysty C. Jest to o tyle istotne, że nie wiem, czy w takim DLL-u moge korzystać z operatora new i delete czy muszę stosować funkcję malloc do dynamicznego alokowania pamięci? - W moim przypadku jest to dość istotny aspekt programowania bo często z niego korzystam :)

green7
Maniak
Maniak
Posty: 2060
Rejestracja: 16 sty 2008, 18:44

Re: podłączenie się do MT przez aplikację w C++

Nieprzeczytany post autor: green7 »

Nie ma znaczenia. Jak wolisz - użyj c++ lub c. Tak czy inaczej funkcja musi mieć zadeklarowany odpowiednio nagłówek, by działała z poziomu mqla. W katalogu terminala masz przykładowy kod.
Green
Obrazek
Obrazek

ODPOWIEDZ