Добрый день!
Уважаемые программисты, помогите пожалуйста решить одну задачу, ТЗ:
После того, как происходит закрытие позиции, на протяжении 10 последующих свечей идёт поиск падающей свечи.
То, есть: если из 10 свечей найдена хотя бы одна падающая свеча, то выходим из цикла.
Изучаем первоисточники:
а так же вставляем на форуме код правильно
отредактируйте пожалуйста своё первое сообщение:
Изучаем первоисточники:
а так же вставляем на форуме код правильно
отредактируйте пожалуйста своё первое сообщение:
Пытался
While и for
while( h>=10)
{
if (g>=0) код ищет растущую свечу НЕ ОТ ЗАКРЫТИЯ ПОЗИЦИИ, А ОТ НАЧАЛА ЗАПУСКА. Я что только не перепробывал.
{
{
Alert("РАНОВА-ТО");
return(-1);
}
}
Не надо здесь никакого цикла. На каждом тике или раз на бар выполнять проверку.
Про выход из какого цикла идет разговор? Сформулируйте задачу, что бы понятно было, тогда и сами поймете.
Пытался
While и for
while( h>=10)
{
if (g>=0) код ищет растущую свечу НЕ ОТ ЗАКРЫТИЯ ПОЗИЦИИ, А ОТ НАЧАЛА ЗАПУСКА. Я что только не перепробывал.
{
{
Alert("РАНОВА-ТО");
return(-1);
}
}
int i=0; double g; do { g=(Close[i]-Open[i]); i++; } while(g>=0 && i<10);
Не надо здесь никакого цикла. На каждом тике или раз на бар выполнять проверку.
Про выход из какого цикла идет разговор? Сформулируйте задачу, что бы понятно было, тогда и сами поймете.
Пример проверки на каждом баре привести можете?
Пример проверки на каждом баре привести можете?
static datetime lastTime=0; if(lastTime!=iTime(NULL,0,0)){ // сделать что-то lastTime=iTime(NULL,0,0); }
еще раз - вставляйте код в своих сообщениях правильно.
Проверил, изменил переменную g>=-50
почему минус 50?
Ошибка как минимум тут:
int C=OrderCloseTime();
Это не int, а datetime
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Уважаемые программисты, помогите пожалуйста решить одну задачу, ТЗ:
После того, как происходит закрытие позиции, на протяжении 10 последующих свечей идёт поиск падающей свечи.
То, есть: если из 10 свечей найдена хотя бы одна падающая свеча, то выходим из цикла.
Вот часть кода, но неправильно работает.
if ((OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS, MODE_HISTORY)==true))
{
int C=OrderCloseTime();
int h=iBarShift(Symbol3,PERIOD_M1,C);
double g=(Close[1]-Open[1])/Point;
}
Alert("КОЛ-ВО СВЕЧЕЙ ПОСЛЕ ЗАКРЫТИЯ",h);
Alert("НАПРАВЛЕНИЕ СВЕЧЕЙ ПОСЛЕ ЗАКРЫТИЯ",g);
if ((h>1)&&(h<=10))
{
if (g>=0)
{
Alert("РАНОВА-ТО");
return(-1);
}
}
metka1();
}
return(0);
}
int metka1()
{
int send1=OrderSend(Symbol3,OP_BUY,Lots,Ask,3,Bid-30*Point,Bid+30*Point);
return(0);
}