Вопрос по программированию
Atom Ответить
31.01.2011


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

Теги:


Спасибо:




4 Ответов
Alexander

Фотография
Дата: 01.02.2011
Ответить


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


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

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

Mihailo

Фотография
Дата: 01.02.2011
Ответить



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

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


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

dart

Фотография
Дата: 01.02.2011
Ответить


Mihailo Перейти

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

if (condition_to_buy == true && flag_sleep == 0)
{
var signalDateTime = DateTime.Now;
flag_sleep = 1;
}
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

Фотография
Дата: 15.02.2011
Ответить


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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy