Вот насчет этого вопроса, - по моему, вы не правы. Проверьте пожалуйста в сервисдеске. Пусть они точно ответят на вопрос: формируются ли новые бары в платформе независимо от прихода котировок, или нет. Если нет, то на событии нового бара проверять была ли на нем котировка. Если была, - но новый бар сформировался. Можно и так. Много менять не нужно.
О мама миа... Ну просто почитайте уже информацию. Я очень удивлён, что вы этого не знаете, а когда вам про это говорят, ещё и сомневаетесь. Даже не буду глядеть в сторону сервисдеск по таким детским вопросам - засмеют же. Уж сами тогда поинтересуйтесь у них - у вас в профиле есть ссылка на сервисдеск.
Артём немного не раскрыл сам вопрос, а вопрос вот в чём: написать в процедурном стиле, чтоб это работало корректно
voidOnTick()
{
if(IsNewBar("AUDCAD",PERIOD_H1)) {
// задача №1
}
if(IsNewBar("GBPJPY",PERIOD_M15)) {
// задача №2
}
if(IsNewBar("EURUSD",PERIOD_H4)) {
// задача №3
}
}
// Функция "Новый бар"bool IsNewBar(....) {
здесь код, который нужно написать
}
Время открытия бара Time[i], как правило, не совпадает со временем поступления тика. Время открытия бара для любого таймфрейма всегда кратно таймфрейму. Любой первый тик, возникший в пределах таймфрейма, является барообразующим; если же в пределах таймфрейма не поступило ни одного тика, то и бар в пределах этого таймфрейма не образуется.
Артём немного не раскрыл сам вопрос, а вопрос вот в чём: написать в процедурном стиле, чтоб это работало корректно
Хотел методом постепенного добавления задач добиться от людей быстрого, удобного, лёгкого и простого способа реализации задачи. Чтобы потом показать как всё легко это делается при помощи ООП.
Но главный отторгатель ООП сам отторгся от решения задачи :)
Хотел методом постепенного добавления задач добиться от людей быстрого, удобного, лёгкого и простого способа реализации задачи. Чтобы потом показать как всё легко это делается при помощи ООП.
Но главный отторгатель ООП сам отторгся от решения задачи :)
Да Я по сути сам не совсем изложил, перефразирую:
Артём немного не раскрыл сам вопрос, а вопрос вот в чём: написать в процедурном стиле, чтоб это работало корректно
Может всё-же вернётся, и докажет что это возможно очень легко, и просто
Просто нужно написать функцию, у которой пользователь спросит: "наступил ли новый бар на М5?" и получит ответ "да/нет".
Например:
Вот вашу функцию IsNewBar() и будем развивать и крутить/вертеть далее с дальнейшим расширением задачи
Мне кажется не совсем удачный пример для демонстрации пользы ООП.
Вот, например, вариант с использованием только одной функции:
можно конечно ее убрать из OnTick и вставить в OnTimer
Вот насчет этого вопроса, - по моему, вы не правы. Проверьте пожалуйста в сервисдеске. Пусть они точно ответят на вопрос: формируются ли новые бары в платформе независимо от прихода котировок, или нет. Если нет, то на событии нового бара проверять была ли на нем котировка. Если была, - но новый бар сформировался. Можно и так. Много менять не нужно.
Мне кажется не совсем удачный пример для демонстрации пользы ООП.
Вот, например, вариант с использованием только одной функции:
можно конечно ее убрать из OnTick и вставить в OnTimer
Не смотрел логику, ну будем считать, что гипотетически всё верно отрабатывает.
А по любому из случайных символов?
Представьте, что программа использует список символов из окна Обзор рынка, и пользователь в любой момент может менять наборы символов.
с уважением.
Артём немного не раскрыл сам вопрос, а вопрос вот в чём: написать в процедурном стиле, чтоб это работало корректно
Да по таймеру. Новый бар возникает и без котировки. Нас интересует именно событие появления бара, а котировку мы можем зафиксировать в ОnTick();
Бар в любом случае появится.
Вот здесь по барам объясняется:
Время открытия бара Time[i], как правило, не совпадает со временем поступления тика. Время открытия бара для любого таймфрейма всегда кратно таймфрейму. Любой первый тик, возникший в пределах таймфрейма, является барообразующим; если же в пределах таймфрейма не поступило ни одного тика, то и бар в пределах этого таймфрейма не образуется.
Артём немного не раскрыл сам вопрос, а вопрос вот в чём: написать в процедурном стиле, чтоб это работало корректно
Хотел методом постепенного добавления задач добиться от людей быстрого, удобного, лёгкого и простого способа реализации задачи. Чтобы потом показать как всё легко это делается при помощи ООП.
Но главный отторгатель ООП сам отторгся от решения задачи :)
Хотел методом постепенного добавления задач добиться от людей быстрого, удобного, лёгкого и простого способа реализации задачи. Чтобы потом показать как всё легко это делается при помощи ООП.
Но главный отторгатель ООП сам отторгся от решения задачи :)
Да Я по сути сам не совсем изложил, перефразирую:
Артём немного не раскрыл сам вопрос, а вопрос вот в чём: написать в процедурном стиле, чтоб это работало корректно
Может всё-же вернётся, и докажет что это возможно очень легко, и просто
Да Я по сути сам не совсем изложил, перефразирую:
Артём немного не раскрыл сам вопрос, а вопрос вот в чём: написать в процедурном стиле, чтоб это работало корректно
Может всё-же вернётся, и докажет что это возможно очень легко, и просто
У меня была цель, чтобы в конечном результате его код в процедурном стиле работал в таком цикле:
У меня была цель, чтобы в конечном результате его код в процедурном стиле работал в таком цикле:
Цикл по символам, проверка открытия нового бара по факту прихода котировки и прочее, можно запросто добавить к моему решению. И причем здесь ООП?
Не тот пример выбрали. Подумайте на досуге о чем то еще.