zdarza mi sie napisac jakis ciekawy automacik, ale broker /nie bede pisal ktory/ po 2tyg zyskow rekwotuje mi wejscia i zamkniecia /nie ustawiam SL ani TP/, a ze automaty zajmuja pozycje na otwarciu swieczki to rekwoty wywalaly mi system. wrzuce swoja funkcje CloseAll, podobna mam do powtarzania przy wejsciu. mozesz przerobic ja na wlasne potrzeby. funkcja bool
Kod: Zaznacz cały
bool CloseAll(int type) {
bool closed = False;
for(int i=OrdersTotal()-1; i>=0; i--) {
OrderSelect(i,SELECT_BY_POS);
int cSlippage = 0;
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC) {
if(type == OP_BUY) {
if(OrderType() == type) {
while(cSlippage < 10) {
if(OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),cSlippage,Yellow)) {
Print("BUY Order #"+OrderTicket()+" closed");
PlaySound("tick.wav");
closed = True;
break;
}
else {
cSlippage++;
Print(ErrorDescription(GetLastError()));
closed = False;
Sleep(2000);
continue;
}
}
}
}
if(type == OP_SELL) {
if(OrderType() == type) {
while(cSlippage < 10) {
if(OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_ASK),cSlippage,Yellow)) {
Print("SELL Order #"+OrderTicket()+" closed");
PlaySound("tick.wav");
closed = True;
break;
}
else {
cSlippage++;
Print(ErrorDescription(GetLastError()));
closed = False;
Sleep(2000);
continue;
}
}
}
}
}
}
return(closed);
}
wywolanie do zamkniecia buy:
Kod: Zaznacz cały
if(CloseAll(OP_BUY)) ObjectDelete("AvgBuy");