Czy ktoś ma jakiś pomysł (bo mi się powoli kończą) co jest przyczyną że robot nie odwraca pozycji?
W back testach działa idealnie buy/sell/buy/sell itd. Działają dwie strony. O dziwo ten sam kod na jednej platformie "upiera się" się przy sell M30, pomimo iż rynek jest dużo wyżej (kilkadziesiąt pips). Wygląda to tak jakby nie odwracał pozycji ( ma w sobie TrSL), chociaż dawno powinien był to zrobić (mam podgląd do warunków handlowych systemu na innym wykresie tzn. inny komputer i program Amibroker). Dla pewności włączyłem inną platformę i o dziwo tam od razu złożył zlecenie buy. Może jest to kwestia platformy (testuję na PrimeXM u jakiegoś brokera LMAX)? Może czegoś innego (server platformy)?
Odwracanie pozycji
Re: Odwracanie pozycji
Teraz powinno być ok, poprawiłem kod...tylko 2 cyfry :) Przepraszam za zamieszanie :)
Re: Odwracanie pozycji
Wielkie G. Dzisiaj powinien mieć sell bo rynek spada a wciąż jest buy. Ten sam problem co poprzednio.
- m05
- Gaduła
- Posty: 449
- Rejestracja: niedziela 11 sie 2013, 09:58
- Lat na Forex: 7
- Lokalizacja: exPRL
- Kontakt:
Re: Odwracanie pozycji
Fragment wyłuskany z innego EA sprawdza warunki do zamknięcia trejdu i zamyka jeżeli jest sygnał przeciwny, a tak chyba chciałeś by zamykał.
Kod: Zaznacz cały
extern bool UseOppositeSignalClose=true;
int OldBars;
//-------Init--------------//
OldBars=Bars;
bool LookForTradeClosure()
{
if (!OrderSelect(Ticket, SELECT_BY_TICKET) ) return(true);
if (OrderSelect(Ticket, SELECT_BY_TICKET) && OrderCloseTime() > 0) return(true);
bool success = true;
bool CloseTrade;
X--------------------------------------------------------------------------------------------X
if (OrderType() == OP_BUY)
if (!CloseTrade && UseOppositeSignalClose)
{
if (TWÓJ WARUNEK SYGNAŁU PRZECIWNEGO== true) CloseTrade = true;
}
if (OrderType() == OP_SELL)
if (!CloseTrade && UseOppositeSignalClose)
{
if (TWÓJ WARUNEK SYGNAŁU PRZECIWNEGO== true) CloseTrade = true;
}
X-----------------------------------------------------------------------------------------------X
if (CloseTrade)
{
bool result = CloseTrade(Ticket);
//Actions when trade close succeeds
if (result)
{
Ticket = -1;
}
if (!result)
{
success = false;
}
}
return(success);
}
X------------------------------------------------------------------------------------------X
bool CloseTrade(int ticket)
{
while(IsTradeContextBusy()) Sleep(100);
bool result = OrderClose(ticket, OrderLots(), OrderClosePrice(), 1000, CLR_NONE);
if (result)
{
return(true);
}
if (!result)
{
OldBars = 0;
}
}
Jeżeli chcesz odnieść sukces, daj się ponieść. 中国的
http://www.dzieciom.pl/2708 Many thanks in advance.
http://www.dzieciom.pl/2708 Many thanks in advance.
Re: Odwracanie pozycji
Ok, dzięki.
Re: Odwracanie pozycji
Spróbuję z twoją sugestią. Na razie mam taki kod:
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
if (OrderSymbol()==Symbol())
RefreshRates();
if (Type==OP_BUY && (abc)){OrderClose(OrderTicket(),OrderLots(),Bid,2);}
RefreshRates();
if (Type==OP_SELL && (abc)){OrderClose(OrderTicket(),OrderLots(),Ask,2);}
}
i dzisiaj jak zajął pozycję o 10:56 na buy tak do tej pory na niej siedzi :) 70 pips jest niżej (a sygnały na 30 minutowych). Przypomina to jakby się wieszał w pewnym momencie i nic dalej nie robił.
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
if (OrderSymbol()==Symbol())
RefreshRates();
if (Type==OP_BUY && (abc)){OrderClose(OrderTicket(),OrderLots(),Bid,2);}
RefreshRates();
if (Type==OP_SELL && (abc)){OrderClose(OrderTicket(),OrderLots(),Ask,2);}
}
i dzisiaj jak zajął pozycję o 10:56 na buy tak do tej pory na niej siedzi :) 70 pips jest niżej (a sygnały na 30 minutowych). Przypomina to jakby się wieszał w pewnym momencie i nic dalej nie robił.
Re: Odwracanie pozycji
A jak jest w przypadku kiedy jest funkcja TrailingStop, ale nie jest on ustawiony z różnych dziwnych przyczyn (chyba coś źle policzone jest)? Czy wtedy pomimo warunku odwrotnego zamknie bieżącą transakcję czy nie? A może inaczej: czy spełnienie warunku przeciwnego automatycznie unieważnia reguły dotychczasowe i zostaje ona wykonana automatycznie z zadanymi parametrami dla pozycji przeciwstawnej?
- m05
- Gaduła
- Posty: 449
- Rejestracja: niedziela 11 sie 2013, 09:58
- Lat na Forex: 7
- Lokalizacja: exPRL
- Kontakt:
Re: Odwracanie pozycji
Nic się nie dzieje. Najwyżej dostaniesz komunikat o błędzie, bo funkcja modyfikacji będzie chciała zmodyfikować coś, co już nie istnieje.
Jeżeli chcesz odnieść sukces, daj się ponieść. 中国的
http://www.dzieciom.pl/2708 Many thanks in advance.
http://www.dzieciom.pl/2708 Many thanks in advance.
Re: Odwracanie pozycji
Komunikat o błędzie to "0" lub przedtem "1"
- m05
- Gaduła
- Posty: 449
- Rejestracja: niedziela 11 sie 2013, 09:58
- Lat na Forex: 7
- Lokalizacja: exPRL
- Kontakt:
Re: Odwracanie pozycji
Ale aplikacja mniej czasu straci, niż by zadać mu dodatkowa formułę sprawdzania obsługi tego błędu, więc czasem nie warto tego zmieniać. W relacji serwer-> klient jest chyba jakaś dziura w tym zagadnieniu i kolejkowanie poleceń coś nie hallo działa.
Jeżeli chcesz odnieść sukces, daj się ponieść. 中国的
http://www.dzieciom.pl/2708 Many thanks in advance.
http://www.dzieciom.pl/2708 Many thanks in advance.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 19 gości