OrderClose
bool OrderClose( int ticket, double lots, double price, int slippage, color Color=CLR_NONE)
Параметры:ticket - Уникальный порядковый номер ордера.
lots - Количество лотов для закрытия.
price - Цена закрытия.
slippage - Значение максимального проскальзывания в пунктах.
Color - Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.
Пример:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
{
OrderClose(order_id,1,Ask,3,Red);
return(0);
}
ДААА!!! но как мне узнать order_id ??????????????
Параметры:ticket - Уникальный порядковый номер ордера.
lots - Количество лотов для закрытия.
price - Цена закрытия.
slippage - Значение максимального проскальзывания в пунктах.
Color - Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.
Пример:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
{
OrderClose(order_id,1,Ask,3,Red);
return(0);
}
ДААА!!! но как мне узнать order_id ??????????????
или вот готовое решение
//--------------------------------------------------------------- CloseOrders bool CloseOrders(int dir, int SysID, string smb) { // Функция закрытия ордеров int i, total = OrdersTotal(); if (total<=0) return(true); int ticket[1000], nt=0; double op; nt=0; for (i=0; i<total; i++) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) return(false); if ((OrderType()==dir||dir<0) && (OrderMagicNumber()==SysID) && (OrderSymbol()==smb)) { ticket[nt]=OrderTicket(); nt++; } } for (i=0; i<nt; i++) { OrderSelect(ticket[i], SELECT_BY_TICKET); RefreshParam(OrderSymbol()); if (OrderType()==OP_BUY) if (!OrderClose(ticket[i], OrderLots(), _Bid, Slip)) return(false); if (OrderType()==OP_SELL) if (!OrderClose(ticket[i], OrderLots(), _Ask, Slip)) return(false); if (OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) if (!OrderDelete(ticket[i])) return(false); } return(true); }
для тестера сойдет и такой вариант
extern int slippage=1000; void close(){ for(int i=OrdersTotal()-1;i>=0;i--){ OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,slippage,0); if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,slippage,0); }
sergeev >>:
if (a=1) // Если истина, идем дальше
{
CloseOrders(-1, 88888, Symbol()); // <--- ТУТ необходимо закрыть все ордера
OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, Bid+StopLoss*Point, Bid-TakeProfit*Point, "Sell", 88888, 0, Green); //Открываем ордер на продажу
}
if (a=1) // Если истина, идем дальше
{
CloseOrders(-1, 88888, Symbol()); // <--- ТУТ необходимо закрыть все ордера
OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, Bid+StopLoss*Point, Bid-TakeProfit*Point, "Sell", 88888, 0, Green); //Открываем ордер на продажу
}
все ордера указанного маджика и указанной валюты.
и в тестере без нормализации не закроет
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
if (a=1) // Если истина, идем дальше
{
// <--- ТУТ необходимо закрыть все ордера
OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, Bid+StopLoss*Point, Bid-TakeProfit*Point, "Sell", 88888, 0, Green); //Открываем ордер на продажу
}
Как это можно организовать. Жду помощи. СПС.
--== Торгуй Форекс Большой И Мальнький ==--