//--------------------------------------------------------------------
void Fun_New_Bar() // Ф-ия обнаружения ..
{ // .. нового бара
static datetime New_Time=0; // Время текущего бара
New_Bar=false; // Нового бара нет
if(New_Time!=Time[0]) // Сравниваем время
{
New_Time=Time[0]; // Теперь время такое
New_Bar=true; // Поймался новый бар
}
}
//--------------------------------------------------------------------
if (iBarShift(NULL,0,t)>0) Y=0; if ((TimeCurrent()-Time[0])<1) { Alert ("Открылась новая свеча"); if (Y==0) { SendMail("из Вашего эксперта", "Время открытия новой свечи"); Y=1; t=TimeCurrent(); } }У меня такое есть. Каждый новый бар отправляется сообщение на почту. Тут из текущего времени TimeCurrent() минусуется время открытия текущего бара Time[0]. И если это значение меньше 1 секунды, то значит только что открылся новый бар.
Может я вопрос не так задал?
Зачем нужен этот if в коде советника?
//----
iif(Volume[0]>1) return;
Видимо для того, чтобы эксперт останавливался на этой проверке и возвращался на начало кода. Но это вообще бессмысленное условие, так как оно стоит в конце. Да и к тому же ещё любой бар на втором тике уже будет иметь объём больше единицы. Не знаю зачем там это условие, да и ещё в конце.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вопрос по коду: Как определить начало очередного бара?
В коде одного советника увидел следующий код.
void CheckForClose()
{
string sHeaderLetter;
string sBodyLetter;
bool CloseOrd;
//----
iif(Volume[0]>1) return;
Зачем нужна эта проверка? Что будет если закомментировать этот if?