← Zurück

Вопрос по программированию

Привет, друзья. Начал изучать мануал и программировать своего роботика. Подскажите пожалуйста. Допустим вследствие каких-либо причин у меня сработал сигнал на открытие позиции. Но я хочу сделать "проверку временем". Нужно после получения сигнала подождать 5 минут, и если сигнал все еще актуален , то только тогда открывать позицию. Как это можно реализовать? (возможно в S# есть такая функция или переменная) Заранее спасибо.

War dieses Thema hilfreich?

Thema teilen

Kommentare (4)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Alexander
Alexander

Mihailo: Привет, друзья. Начал изучать мануал и программировать своего роботика. Подскажите пожалуйста. Допустим вследствие каких-либо причин у меня сработал сигнал на открытие позиции. Но я хочу сделать "проверку временем". Нужно после получения сигнала подождать 5 минут, и если сигнал все еще актуален , то только тогда открывать позицию. Как это можно реализовать? (возможно в S# есть такая функция или переменная) Заранее спасибо.

Появился сигнал - запомнили: var signalDateTime = DateTime.Now;

дальше смотрим разницу if (DateTime.Now - signalDateTime >= new TimeSpan(0, 5, 0)) { //входим }

Mihailo
Mihailo Autor

Появился сигнал - запомнили: var signalDateTime = DateTime.Now;

дальше смотрим разницу if (DateTime.Now - signalDateTime >= new TimeSpan(0, 5, 0)) { //входим }

А программа новых сигналов не наделает? Нужно что-бы было так: Появился сигнал и программа больше ни на что не смотрит пока 5 мин не пройдет и не будет ясности исполнять сигнал или нет.

dart
dart

Mihailo: А программа новых сигналов не наделает? Нужно что-бы было так: Появился сигнал и программа больше ни на что не смотрит пока 5 мин не пройдет и не будет ясности исполнять сигнал или нет. if (condition_to_buy == true && flag_sleep == 0) if ( flag_sleep == 1 && base.Trader.MarketTime >= signalDateTime.AddMinutes(5) && condition_to_buy == true) { Buy; flag_sleep = 0;
} Насчет новых сигналов, всё зависит от вашего кода, есть там сигналы или нет. По прошествии 5 минут, если условие на покупку уже не действительно, можно обнулить этот сигнал и ждать появления нового: if (base.Trader.MarketTime > signalDateTime.AddMinutes(5)) flag_sleep = 0;

Mihailo
Mihailo Autor

еще подскажите пожалуйста. приведите пожалуйста пример кода стратегии, где сигнал возникает при пробитии максимума за 5 периодов например. а то вожусь и ничего сделать не получается. заранее спасибо.