Zlecenie odwrotne w EA

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
frykutek
Stały bywalec
Stały bywalec
Posty: 34
Rejestracja: 21 sty 2008, 14:14

Zlecenie odwrotne w EA

Nieprzeczytany post autor: frykutek »

Witam,
Napisałem EA (MT4) w oparciu o kilka Stoch. Strategia wykonuje tylko Buy a więc Long Position (założenie wstepne). Jednak spostrzegłem, ze sygnał Close Buy może być użyty jako Open Short (wygląda obiecująco).
Moja prośba. Czy ktoś zna polecenie lub może udostępnić kwałek kodu, który zamykając długą pozycje automatycznie otworzy Short'a (i na odwrót - otwierając Long zamknie poprzedniego Shotr'a). Chodzi o to aby nie pisać warunków brzegowych dla Short'a
Wiem, że jest to igranie ze "śmiercią" (przebywanie cały czas na open position) ale chciałbym taki wariant przetestować.

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

Skoro napisałeś EA to znasz komendę na otwieranie otwieranie i na zamykanie. Więc gdzie problem? Najpierw zamykasz a potem otwierasz.
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
frykutek
Stały bywalec
Stały bywalec
Posty: 34
Rejestracja: 21 sty 2008, 14:14

Nieprzeczytany post autor: frykutek »

Na żywo handluje na manualu. Od niedawna zajmuje się tematem EA. Mam dobre wskaźniki, które przelałem za pomocą aplikacji podanej przez klegów na tym forum ( http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ ).
Wynika z tego niezbicie, że użyte przeze mnie słowo "napisałem" ma w tym przypadku nie odpowiedni kontekst. Reasumując uczę się pisać EA.
Dlatego ponawiam prośbę o pomoc.
Każdy żyje we własnym kłamstwie.

Awatar użytkownika
13Spekulant
Gaduła
Gaduła
Posty: 91
Rejestracja: 08 wrz 2010, 22:34

Nieprzeczytany post autor: 13Spekulant »

Spróbuję pomóc, chociaż nie znam MQ4.
Otwórz źródła EA, znajdź kod, który odpowiada za otwarcie pozycji, powinno to być coś w rodzaju:

Kod: Zaznacz cały

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "macd sample",16384,0,Green);
(ticket to zmienna przechowująca ID otwartej pozycji) oraz kod odpowiedzialny za zamknięcie pozycji, coś w rodzaju:

Kod: Zaznacz cały

OrderClose(ticket,OrderLots(),Bid,3,Violet);
po zamknięciu pozycji (jeśli się uda!) po prostu otwierasz przeciwstawną (prawdopodobnie zmieniając tylko OP_BUY na OP_SELL i vice versa) i tyle. Koniecznie po zamknięciu poprzedniej, bo jak otworzysz przeciwstawną 2 razy większą to będziesz miał hedging.
Inna sprawa, ze musisz dostosować EA, żeby wiedział, ze jest cały czas na pozycji, a więc przed każdym otwarciem pozycji należy zamknąć poprzednią (obecną), może się do tego przydać ta zmienna ticket - to kosmetyczna zmiana, ale konieczna.
Mam nadzieję, że nic nie pokręciłem.

Awatar użytkownika
frykutek
Stały bywalec
Stały bywalec
Posty: 34
Rejestracja: 21 sty 2008, 14:14

Nieprzeczytany post autor: frykutek »

Dzięki za wsparcie. Sprawdzę Twoją koncepcję i się odezwę.
Każdy żyje we własnym kłamstwie.

ODPOWIEDZ