Automatyczne ustawianie stop lossów
Jakiś czas temu opisywałem ciekawą ofertę brokera MB Trading. Z racji, iż jest to broker ECN w specyficzny sposób obsługuje on składanie zleceń - nie można złożyć zlecenia po rynku z predefiniowanymi poziomami SL i TP - trzeba wejść po rynku, a następnie modyfikować poziomy SL i TP.
Powyżej opisana sytuacja (oraz liczne, wręcz zbyt licznie pytania) zainspirowała mnie do napisania tego wpisu. Poniżej przedstawiam przykładowy kod, jaki można wykorzystać, aby automatycznie ustawić SL dla wszystkich zleceń go nie posiadających. Kod oczywiście można stosować nie tylko u brokerów ECN.
void stoploss(int sl,int magic=0) {
for(int i=0;i<OrdersTotal();i++) {
if(OrderSelect(i,SELECT_BY_POS)) {
if(OrderMagicNumber()==magic && OrderSymbol()==Symbol()) {
if(OrderStopLoss()==0) {
if(OrderType()==OP_BUY || OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP) {
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-sl*Point,
OrderTakeProfit(),OrderExpiration(),CLR_NONE);
} else {
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+sl*Point,
OrderTakeProfit(),OrderExpiration(),CLR_NONE);
}
}
}
}
}
}
W parametrach funkcji podajemy wielkość stop lossa do ustawienia oraz opcjonalny magic number (gdy nie podamy, zastosuje magic number równy zero, czyli ustawi SL dla wszystkich zleceń wprowadzonych “z palca”).
6 odpowiedzi do wpisu "Automatyczne ustawianie stop lossów"
szantilas
Witam, Bardzo przydalaby mi sie taka funkcja tylko nie wiem jak ja umiescic w MT4. Z gory dziekuje za pomoc. Pozdrawiam.
luktom
W funkcji start wpisujesz (aby uzyskać 40 pipsów): stoploss(40,0);
Fesiek
Witaj. Po wpisaniu powyższej funkcji w MetaEditor i skompilowaniu nie występują żadne błędy. Funkcja ta jednak w MetaTrader ładuje się i od razu usuwa. W zakładce "Dziennik" są raporty w tym samym czasie: "Script {nazwa} loaded successfully" i "Script {nazwa} removed". Co ciekawe, każdy skrypt jaki mam tak się zachowuje. Czy może w opcjach MT4 coś trzeba zmienić?
luktom
No i działa poprawnie, bo tak właśnie działają skrypty :P Przenieś ten skrypt do katalogu experts i odpal go jako EA, wtedy uzyskasz to co chcesz.
Andreas
Witam Mam wskaźnik ( coś w rodzaju twojego macoma), jaka jest możliwość dodania "trailing stop" do kroczącego tego wskaźnika z tym by można było ustawić określoną ilość popsów, od czoła tego wskaćnika. Np.wskaxnik pokazuje 1,2200 a ja chciałbym ustawić minus (2 lub 3 ,5 ???) Pozdrawiam Ps.Moge podesłać kod tego wskaźnika
Andreas
Witam Może niedokładnie napisałem o co mi chodzi: Czy jest możliwość by "trailing stop" podążał za wskaźnikiem a nie za kursem ? Pozdrawiam