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ć.
Zlecenie odwrotne w EA
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.
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.
- 13Spekulant
- Gaduła
- Posty: 91
- Rejestracja: 08 wrz 2010, 22:34
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:
(ticket to zmienna przechowująca ID otwartej pozycji) oraz kod odpowiedzialny za zamknięcie pozycji, coś w rodzaju:
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.
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);
Kod: Zaznacz cały
OrderClose(ticket,OrderLots(),Bid,3,Violet);
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.