Aby program wykonywał określone polecenia, napisałem:Gram na wykresie M5. Po 10 minutach od zawarcia transakcji dochodzi do jej weryfikacji. Jeżeli po tych 10 minutach transakcja jest zyskowna, zostaje ona zamknięta dopiero po załamaniu trendu. Jeżeli transakcja jest stratna, zostaje ona zamknięta w momencie wyjścia na zero.
Kod: Zaznacz cały
double O_1 = iOpen("EURUSD", PERIOD_M5, 0);
double O0 = iOpen("EURUSD", PERIOD_M5, 1);
double O1 = iOpen("EURUSD", PERIOD_M5, 2);
//+---------------------------------------------------------------------------+
//| ***** Zamknięcie buy ***** |
//+---------------------------------------------------------------------------+
for (int i=OrdersTotal()-1; i>=0; i--){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderType() == OP_BUY){
if (OrderOpenPrice() >= iOpen("EURUSD", PERIOD_M5, iBarShift("EURUSD", PERIOD_M5, (OrderOpenTime() + 600)))){
if(TimeCurrent()-OrderOpenTime()>=900){
if(O_1<O0&&O0>O1){
OrderClose(OrderTicket(),OrderLots(),Bid,0,LimeGreen);
}
}
}
}
}
}
for (i=OrdersTotal()-1; i>=0; i--){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderType() == OP_BUY){
if (OrderOpenPrice() < iOpen("EURUSD", PERIOD_M5, iBarShift("EURUSD", PERIOD_M5, (OrderOpenTime() + 600)))){
if(TimeCurrent()-OrderOpenTime()>=600){
if(OrderOpenPrice()==Bid){
OrderClose(OrderTicket(),OrderLots(),Bid,0,LimeGreen);
}
}
}
}
}
}
//+---------------------------------------------------------------------------+
//| ***** Zamknięcie sell ***** |
//+---------------------------------------------------------------------------+
for (i=OrdersTotal()-1; i>=0; i--){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderType() == OP_SELL){
if (OrderOpenPrice() <= iOpen("EURUSD", PERIOD_M5, iBarShift("EURUSD", PERIOD_M5, (OrderOpenTime() + 600)))){
if(TimeCurrent()-OrderOpenTime()>=900){
if(O_1>O0&&O0<O1){
OrderClose(OrderTicket(),OrderLots(),Ask,0,LimeGreen);
}
}
}
}
}
}
for (i=OrdersTotal()-1; i>=0; i--){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderType() == OP_SELL){
if (OrderOpenPrice() > iOpen("EURUSD", PERIOD_M5, iBarShift("EURUSD", PERIOD_M5, (OrderOpenTime() + 600)))){
if(TimeCurrent()-OrderOpenTime()>=600){
if(OrderOpenPrice()==Ask){
OrderClose(OrderTicket(),OrderLots(),Ask,0,LimeGreen);
}
}
}
}
}
}
Pozdrawiam