Jak zamknąć zlecenia o ustalonej wartości zysków (Profit)?
Jak zamknąć zlecenia o ustalonej wartości zysków (Profit)?
Jak zamknąć zlecenia o ustalonej wartości zysków (Profit)?
Czy jest możliwość zamknięcia wszystkich zleceń określając pewną granicę zysków (określony Profit)
Np: chcę żeby wszystkie zlecenia zamknęły się gdy wartość ogólna wszytkich zleceń osiągnie wartość określoną np: +10 EUR.
Bardzo proszę o wskazówki.
PULMONES
Czy jest możliwość zamknięcia wszystkich zleceń określając pewną granicę zysków (określony Profit)
Np: chcę żeby wszystkie zlecenia zamknęły się gdy wartość ogólna wszytkich zleceń osiągnie wartość określoną np: +10 EUR.
Bardzo proszę o wskazówki.
PULMONES
Kod: Zaznacz cały
extern double closeProfit=10;
int start() {
double profit=0;
for(int i=0;i<OrdersTotal();i++) {
if(OrderSelect(i,SELECT_BY_POS)) {
profit+=OrderProfit();
}
}
if(profit>=closeProfit) {
for(i=0;i<OrdersTotal();i++) {
if(OrderSelect(i,SELECT_BY_POS)) {
if(OrderType()==OP_BUY) {
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID) ,0);
}
if(OrderType()==OP_SELL) {
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK) ,0);
}
}
}
}
}
Ostatnio zmieniony 11 gru 2008, 23:15 przez luktom, łącznie zmieniany 2 razy.
Prosze...
Pozdrawiam
Kod: Zaznacz cały
extern double closeProfit=10;
int start()
{
//----
bool result;
int i, cmd;
double price, profit=0;
//----
for(i=0;i<OrdersTotal();i++) {
if(OrderSelect(i,SELECT_BY_POS)) {
profit+=OrderProfit();
}
}
if(profit>=closeProfit) {
while (OrdersTotal() > 0) {
OrderSelect(0, SELECT_BY_POS);
cmd = OrderType();
result = false;
while(result != true) {
if(cmd == OP_BUY) price = Bid;
else price = Ask;
result = OrderClose(OrderTicket(), OrderLots(), price, 3, CLR_NONE);
RefreshRates();
}
}
}
//----
return(0);
}