Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 103
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
кидай весь файлом
1. При открытии ордера записать тикет в переменную глобального уровня или static, и дальше мониторить этот ордер до посинения, ой, пока не закроется сравнением OrderCloseTime() > 0. Если время закрытия больше нуля, значит ордер закрыт.
2. Замена оператору GOTO есть гораздо эффективней. Читай в документации о функциях.
Можно как то на каком то примере показать? Как мне дождаться закрытие предыдущей сделки.
double loss = 100;
int start()
{
int order;
if(OrdersTotal()==0)
{
order = OrderSend(Symbol(),OP_BUY,Lot,Ask,1*Point,Ask-loss*Point,Ask+loss*Point); // Вверх
order = OrderSend(Symbol(),OP_SELL,Lot,Bid,1*Point,Bid+loss*Point,Bid-loss*Point); // Вниз
}
return(0);
}
//+------------------------------------------------------------------+
Можно как то на каком то примере показать? Как мне дождаться закрытие предыдущей сделки.
double loss = 100;
int start()
{
int order;
if(OrdersTotal()==0)
{
order = OrderSend(Symbol(),OP_BUY,Lot,Ask,1*Point,Ask-loss*Point,Ask+loss*Point); // Вверх
order = OrderSend(Symbol(),OP_SELL,Lot,Bid,1*Point,Bid+loss*Point,Bid-loss*Point); // Вниз
}
return(0);
}
//+------------------------------------------------------------------+
Самый простой это последовательность действий. Сначала пытаемся что-то сделать с уже открытым ордером, а потом при условии что открытого ордера нет попытаемся его установить.
Разделить сопровождение позиции и открытие нового ордера на две отдельные пользовательские функции. Дальше в функции OnTick() проверять наличие открытых ордеров и в соответствии с полученным результатом обращаться к одной или другой функции.
На словах это выглядит так:
{
if(OrdersTotal() > 0)
открытие();
else
сопровождение();
}
bool открытие()
{
// здесь код открытия
}
bool сопровождение()
{
// здесь код сопровождения
}
Это в том случае если на счёте предусмотрено, а чаще всего это так, работа других советников или открытие ордеров вручную.
можно ли программно выбрать дату начала истории счёта в терминале?
Можно. Это будет самый первый ордер в истории с типом 6 - балансная операция.
мне не нужен первый ордер в истории .. история и так на максимум открывается мне нужна история с определённой даты .. которую я выставлю программно (видимо вопрос за счёт деталей оказался обтекаемым)
Но всё равно вопрос так и остаётся "обтекаемым", поэтому скажу, что нужно пропускать ордера, время открытия которых ранее этой самой "определённой даты"
Ответ тоже - можно.
Но всё равно вопрос так и остаётся "обтекаемым", поэтому скажу, что нужно пропускать ордера, время открытия которых ранее этой самой "определённой даты"
на скришоте вопрос подчёркнут красным туда нужно вставить определённую дату.. так вопрос не обтекаемый?
поставить фильтр по дате мне конечно в голову правда не пришло .. но за 7 лет очень много ордеров получается .
на скришоте вопрос подчёркнут красным туда нужно вставить определённую дату.. так вопрос не обтекаемый?
Что именно вы хотите сделать программно?
Не понятен ваш вопрос :(
Что именно вы хотите сделать программно?
там где подчёркнуто красным вписать дату и по сути нажать ок.. она определяет глубину истории в отчёте