Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Эта часть
if(newbar==Time[0])return(0);
else newbar=Time[0];
int ticket, total;
if(Bars<100)
{
Print("баров меньше 100");
return(0);
}
if(TakeProfit<10)
{
Print("TakeProfit меньше 10");
return(0); // проверяем TakeProfit
}
Мешает ли ea закрывать ордера в определенное время, если это не первый тик нового бара и если прибыль не > 10 пунктов.Привет, mladen, я удалил эту часть кодировки, но все равно моя ea не закрывается в желаемое время.
У вас есть идеи, в чем может быть причина? Спасибо.
С уважением,
Райан
Привет mladen, я удалил эту часть кодировки, но все равно моя ea не закрывается в желаемое время.
Есть ли у вас идеи, в чем может быть причина? Спасибо.
С уважением,
РайанВ том виде, в котором она написана, она будет закрывать ордера только, и только если время брокера точно 07:00:00.
В том виде, в котором он написан, он будет закрывать ордера только и только если время брокера точно 07:00:00
Привет, mladen, есть ли другой способ обойти это, так как, похоже, он не работает здесь.
С уважением,
Райан
Привет mladen, есть ли другой способ обойти это, так как кажется, что это не работает здесь.
С уважением,
РайанПопробуйте использовать
If (TimeCurrent()>= StringToTime("07:00:00"))
вместо этого
Попробуйте использовать
If (TimeCurrent()>= StringToTime("07:00:00"))
вместо этогоПривет, mladen, это все еще не работает. Мне интересно, может ли это быть связано с этими строками здесь... либо OrdersTotal или OrderSelect могут быть причиной проблемы?
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
С уважением,
Райан
Привет, mladen, это все еще не работает. Мне интересно, может ли это быть связано с этими строками... либо OrdersTotal, либо OrderSelect могут быть причиной проблемы?
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
С уважением,
РайанНет. Эти строки верны
Нет. Эти строки верны
Привет, mladen, потому что я установил свою ea, чтобы иметь только 1 сделку в любой момент времени, и я заметил, что OrdersTotal установил мой int i count в отрицательный 0 на 1-1, i>=0; i-- сделает мой i=-1.
поэтому я задался вопросом, может ли это быть ошибкой.
else if(total > 1) //для закрытия ордеров на основе времени... пока не решено.
{
if (Hour()==7 && Minute()==30)
{
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (!UseCurrSymbol || OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
pBid=MarketInfo(OrderSymbol(),MODE_BID);
OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);
}
if (OrderType()==OP_SELL)
{
pAsk=MarketInfo(OrderSymbol(),MODE_ASK);
OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red);
}
}
}
}//
}
return(0);
}
Привет mladen, потому что я настроил свою ea, чтобы иметь только 1 сделку в любой момент времени, и я заметил, что OrdersTotal установил мой int i count в отрицательный 0 на 1-1, i>=0; i-- сделает мой i=-1
поэтому я задался вопросом, может ли это быть ошибкой.
else if(total > 1) //для закрытия ордеров по времени... пока не решено.
{
if (Hour()==7 && Minute()==30)
{
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (!UseCurrSymbol || OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
pBid=MarketInfo(OrderSymbol(),MODE_BID);
OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);
}
if (OrderType()==OP_SELL)
{
pAsk=MarketInfo(OrderSymbol(),MODE_ASK);
OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red);
}
}
}
}//
}
return(0);
}Пожалуйста, замените это : f (Hour()==7 && Minute()==30) на строку, которую я вам отправил, и попробуйте.
OrdersTotal() вернет 1, если есть открытый ордер. При использовании OrderSelect(), этот 0 (OrdersTotal()-1) выберет правильный ордер. Если OrdersTotal() возвращает 0, значит, в пуле активных ордеров нет открытых ордеров.
Пожалуйста, замените это : f (Hour()==7 && Minute()==30) на строку, которую я вам отправил и попробуйте, тогда OrdersTotal() вернет 1, если есть открытый ордер. При использовании OrderSelect(), этот 0 (OrdersTotal()-1) выберет правильный ордер. Если OrdersTotal() возвращает 0, значит, в пуле активных ордеров нет открытых ордеров.
Привет, Младен, к сожалению, я только что повторил попытку, и она все еще не работает.
Есть ли другой способ, с помощью которого я могу закрыть свою сделку, основываясь на определенном времени?
С уважением,
Райан
Пожалуйста, замените это : f (Hour()==7 && Minute()==30) на строку, которую я вам отправил, и попробуйте, тогда OrdersTotal() вернет 1, если есть открытый ордер. При использовании OrderSelect(), этот 0 (OrdersTotal()-1) выберет правильный ордер. Если OrdersTotal() возвращает 0, значит, в пуле активных ордеров нет открытых ордеров.
Привет mladen, мне удалось решить проблему. похоже, что этот лайнер был причиной проблемы. код работает после того, как я его удалил.
else if(total > 1)
Спасибо за помощь...
С уважением,
Райан