![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Советник для закрытия всех ордеров
Я видел советники/скрипты, которые закрывают все открытые ордера, но я ищу советник, который закрывает все открытые ордера в определенное время. У кого-нибудь есть такой советник?
Или кто-нибудь может показать мне, какой код нужно изменить в советнике, который открывает ордера, чтобы добавить код для закрытия ордера.
Спасибо
EDIT: если у кого-то есть советник, который открывает ордер в определенное время, а затем закрывает его в другое время, может кто-нибудь написать здесь, пожалуйста.
Открывать только в указанное время
Здравствуйте, matrixbiz
Этот советник открывает сделки в указанное время, но не закрывает в указанное время.
Я ищу такой же код (закрытие всех ордеров в указанное время) для встраивания в существующие советники.
Может быть это поможет
Я видел советники/скрипты, которые закрывают все открытые ордера, но я ищу советник, который закрывает все открытые ордера в определенное время. У кого-нибудь есть такой советник?
или кто-нибудь может показать мне, какой код нужно изменить в советнике, который открывает ордера, чтобы добавить код для закрытия ордера.
Спасибо
EDIT: если у кого-то есть советник, который открывает ордер в определенное время, а затем закрывает его в другое время, может кто-нибудь написать здесь, пожалуйста.Привет кодеры
Я все еще учусь методом копирования и вставки, потому что я полный новичок.
Мне нужна функция, которая закрывает все открытые сделки в указанное время.
Я попробовал кое-что.
При компиляции ошибок нет. Но в strategytester у меня следующее сообщение:
Testgenerator: unmatched data error (volume limit 719 at 2008.03.27 12:30 exeeded
Testgenerator: unmatched data error(volume limit 135 at 2008.03.27 23:00 exeeded
Black - это оригинальный код. Это работает
Синий - это то, что я хочу вставить.
Спасибо за любую помощь
//+-----------------------------------------------------------------------+
//| Проверка условий закрытия ордера |
//+-----------------------------------------------------------------------+
void CheckForCloseConditions()
{
int ticket;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
if(OrderType()==OP_BUY)
{
if (GetSignal()==1)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
return(0);
}
}
if(OrderType()==OP_SELL)
{
if (GetSignal()==2)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
return(0);
}
}
}
return(0);
}
//+-----------------------------------------------------------------------+
//| Проверяем условия закрытия ордера трейлинг |
//+-----------------------------------------------------------------------+
void CheckForCloseConditionsTrailing()
{
int ticket;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA_Trailing || OrderSymbol()!=Symbol()) continue;
if(OrderType()==OP_BUY)
{
if (GetSignal()==1)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
return(0);
}
if(TrailingStop>0){
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
if(OrderType()==OP_SELL)
{
if (GetSignal()==2)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
return(0);
}
if(TrailingStop>0){
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Magenta);
return(0);
}
}
}
}
}
return(0);
}
//+-----------------------------------------------------------------------+
//| Функция запуска |
//+-----------------------------------------------------------------------+
int start()
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//Закрыть открытые ордера по времени
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
if (UseCloseTime){
if (!(Hour()>=CloseTime && Hour()>=CloseTime)) {
Comment("Время для закрытия сделки пришло!");
return(0);
} else Comment("");
}else Comment("");
{
int ticket;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
if(OrderType()==OP_BUY)
{
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
return(0);
}
}
if(OrderType()==OP_SELL)
{
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
return(0);
}
}
}
return(0);
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//Закрываем открытые трейлинг ордера по времени
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
if (UseCloseTime){
if (!(Hour()>=CloseTime && Hour()>=CloseTime)) {
Comment("Время для закрытия трейлинга пришло!");
return(0);
} else Comment("");
}else Comment("");
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) //break;
if(OrderMagicNumber()!=MAGICMA_Trailing || OrderSymbol()!=Symbol()) //продолжить;
if(OrderType()==OP_BUY)
{
// if (GetSignal()==1)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
return(0);
}
if(TrailingStop>0){
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
if(OrderType()==OP_SELL)
{
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
return(0);
}
if(TrailingStop>0){
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Magenta);
return(0);
}
}
}
}
}
return(0);
if(CalculateNumberOfOrders(Symbol())<1&&CalculateNumberOfOrdersTrailing(Symbol())<1)
CheckForOpenConditions();
else
{
CheckForCloseConditions();
CheckForCloseConditionsTrailing();
}
return(0);
}
Как исправить ошибку "'CloseHour' - выражение в глобальной области видимости недопустимо"?
Глобальные переменные?
привет, matrixbiz
Что значит "глобальные переменные"? Переменные в начале скрипта для определения параметров индикаторов и т.д.?
Смотрите прикрепленный # 1EA_Test_Template. Мне это нужно для тестирования функций скриптов.
Запустите его в strategytester и он работает.
Откройте Ea с помощью MetaEditor и активируйте неактивный скрипт после int start().
Теперь скомпилируйте и запустите его в strategytester, советник не торгует. См. сообщение об ошибке в журнале.
Как исправить ошибку "'CloseHour' - выражение в глобальной области видимости недопустимо"?
Помощь по скриптам и инклюдным файлам
Они отправляют заказы очень уверенно!
Нужно ли компилировать скрипты и Include-файлы?
Если да, то должны ли они полностью работать, или с ними можно обращаться так же, как с exe-файлом? (Загрузить/закрыть Метатрейдер/открыть заново).
Спасибо ребята
Помогите с этим советником
Здравствуйте,
Кто-нибудь из кодеров может добавить опцию безубытка к этому индикатору?
Благословения и добрые мысли всегда с вами!
Спасибо
Я не знаю язык, который находится на KimIV. но мне удалось найти нужный файл для загрузки, но когда я его компилирую, возникает ошибка
'GetParent' - функция не определена C:\Program Files\Straighthold Trader\experts\e-CloseByPercentProfit.mq4 (180, 10)
Не мог бы кто-нибудь сообщить или исправить эту ошибку, если она есть.
Я не знаю языка, на котором написан KimIV. но мне удалось найти нужный файл для загрузки, но когда я его компилирую, возникает ошибка.
'GetParent' - функция не определена C:\Program Files\Straighthold Trader\experts\e-CloseByPercentProfit.mq4 (180, 10)
Не мог бы кто-нибудь сообщить ему об этом или исправить ошибку, если она есть.Да, у меня то же самое.
Может быть это функция, которая была удалена из Metatrader? Этот советник был создан в декабре 2007 года, так что он не старый...
Я понятия не имею, извините.