Czy zna ktoś sposób na wymuszenie samo zamknięcia się EA, np. po spełnieniu jakiegoś warunku.
Samo polecenie zamknięcia i warunek ma znajdować się w zamykanym EA.
Kod, polecenie zamykające EA.
Re: Kod, polecenie zamykające EA.
Co prawda nie będzie to "zamknięcie" się EA, ale najprościej będzie uniemożliwienie mu handlu po spełnieniu się warunku np. w ten sposób:
Ten sposób poza prostotą ma jeszcze jedną zaletę - możesz przywrócić EA do działania, np. gdy spełni się inny warunek lub ustanie ten poprzedni.
Można również "uśpić" EA na pewien czas.
Kod: Zaznacz cały
bool stop_trade = false;
void start()
{
if(!stop_trade)
{
//...
if(warunek)
{
//...
stop_trade = true;
}
}
}
Można również "uśpić" EA na pewien czas.
Re: Kod, polecenie zamykające EA.
Dzięki za odpowiedź.
Używam EA do modyfikowania SL i... ręcznego otwierania zleceń.
Zaimplementowałem w niej kod ze skryptu. Po przeciągnięciu EA na wykres, wylicza on wielkość zlecenia, SL i TP, i otwiera je, po czym przechodzi do modyfikowania SL. Po zamknięciu zlecenia przechodzi właśnie w stan uśpienia.
Niestety - zarówno funkcja init jak i start, po ponownym uruchomieniu mt4, po prostu automatycznie otworzy mi ponownie zlecenie, jeżeli wcześniej zapomnę go usunąć z wykresu.
Pozostaje mi albo zaimplementować w EA kod zamykający go automatycznie, albo zrobienie czegoś odwrotnego - zaimplementowanie funkcji EA w skrypcie, ale to już by było postawienie problemu na głowie i zapewne generowało by wiele błędów.
Używam EA do modyfikowania SL i... ręcznego otwierania zleceń.
Zaimplementowałem w niej kod ze skryptu. Po przeciągnięciu EA na wykres, wylicza on wielkość zlecenia, SL i TP, i otwiera je, po czym przechodzi do modyfikowania SL. Po zamknięciu zlecenia przechodzi właśnie w stan uśpienia.
Niestety - zarówno funkcja init jak i start, po ponownym uruchomieniu mt4, po prostu automatycznie otworzy mi ponownie zlecenie, jeżeli wcześniej zapomnę go usunąć z wykresu.
Pozostaje mi albo zaimplementować w EA kod zamykający go automatycznie, albo zrobienie czegoś odwrotnego - zaimplementowanie funkcji EA w skrypcie, ale to już by było postawienie problemu na głowie i zapewne generowało by wiele błędów.
Re: Kod, polecenie zamykające EA.
Możesz użyć np. zmiennej globalnej (są trwałe po włączeniu/wylączeniu MT4).arkoni pisze:Dzięki za odpowiedź.
Używam EA do modyfikowania SL i... ręcznego otwierania zleceń.
Zaimplementowałem w niej kod ze skryptu. Po przeciągnięciu EA na wykres, wylicza on wielkość zlecenia, SL i TP, i otwiera je, po czym przechodzi do modyfikowania SL. Po zamknięciu zlecenia przechodzi właśnie w stan uśpienia.
Niestety - zarówno funkcja init jak i start, po ponownym uruchomieniu mt4, po prostu automatycznie otworzy mi ponownie zlecenie, jeżeli wcześniej zapomnę go usunąć z wykresu.
Pozostaje mi albo zaimplementować w EA kod zamykający go automatycznie, albo zrobienie czegoś odwrotnego - zaimplementowanie funkcji EA w skrypcie, ale to już by było postawienie problemu na głowie i zapewne generowało by wiele błędów.
Możesz w opcjach zaznaczyć "Zapytaj o ręczne potwierdzanie"(ale prawdę mówiąc tak dawno nie używałem tej opcji, że nie pamiętam czy pyta tylko przy otwieraniu pozycji czy kiedy).
Możesz otwierać skryptem, a kontrolować i zamykać EA.
Możliwości jest wiele...
- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
Re: Kod, polecenie zamykające EA.
Kod: Zaznacz cały
#include <WinUser32.mqh>
int start()
{
PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33050, 0);
}
z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE
Re: Kod, polecenie zamykające EA.
Wielkie dzięki - o to właśnie mi chodziło, a ze swoją dość ograniczoną wiedzą dotyczącą programowania wieki bym tego szukał. Choć teraz, wiedząc czego szukać, trochę tego w necie znalazłem.
LowcaG, otwierałem już zlecenie skryptem, a EA tylko je modyfikowała ale teraz po prostu chcę innego rozwiązania.
Nie stosuję pełnych automatów ale w tym zakresie, w którym ich używam, chcę pełnej automatyzacji.
EA , po przeciągnięciu go na wykres, ma wyliczyć możliwą wielkość zlecenia, SL i TP w oparciu o zmienność i określoną wielkość zaangażowania kapitału, otworzyć pozycję, przejść do modyfikowania, a po zamknięciu pozycji (ręcznym, na SL, TP) po prostu się wyłączyć. Bajka, prawda? Brakowało mi tylko polecenia samo zamykającego EA.
Wielkie dzięki wszystkim.
LowcaG, otwierałem już zlecenie skryptem, a EA tylko je modyfikowała ale teraz po prostu chcę innego rozwiązania.
Nie stosuję pełnych automatów ale w tym zakresie, w którym ich używam, chcę pełnej automatyzacji.
EA , po przeciągnięciu go na wykres, ma wyliczyć możliwą wielkość zlecenia, SL i TP w oparciu o zmienność i określoną wielkość zaangażowania kapitału, otworzyć pozycję, przejść do modyfikowania, a po zamknięciu pozycji (ręcznym, na SL, TP) po prostu się wyłączyć. Bajka, prawda? Brakowało mi tylko polecenia samo zamykającego EA.
Wielkie dzięki wszystkim.