Отображение сделок на графике(история)
Atom Ответить
02.09.2013


Доброго времени суток! Проблема заключается в том, что на тиковом графике сделки убегают в левую часть, а на минутных и секундных таймвреймах все нормально. Подскажите в чем может быть загвоздка.
Сделки отрисовываю так:
Код
      
public void DrawTrade(IEnumerable<MyTrade> trade)
        {
            this.GuiAsync(
                () => Chart.ProcessValues( TimeSpan.FromTicks(_tick).GetCandleBounds(trade.Last().Trade.Time).Max, new Dictionary<IChartElement, object>
            {
                {_tradeElement, trade.Last()},
            }));
        }

, где _tick - кол-во тиков.



Спасибо:




10 Ответов
shumak

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


И еще одну интересную штуку заметил, во время прорисовки графика последняя сделка на данный момент отрисовывается правильно, но затем когда появляется новая свеча, то сделка "улетает"(как показано на рисунке). Помогите пожалуйста решить эту проблему.

Автор топика
Спасибо:

Pantov

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


Попробуйте вот так:
Код

public void DrawTrade(IEnumerable<MyTrade> trade)
        {
            this.GuiAsync(
                () => Chart.ProcessValues( timeFrame.GetCandleBounds(trade.Last().Trade.Time).Max, new Dictionary<IChartElement, object>
            {
                {_tradeElement, trade.Last()},
            }));
        }


А вот как вывести в хинт значка сделки либо заявки что-то свое кто знает?
Спасибо:

shumak

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


Спасибо за ответ, но я ни вижу ни какой разницы между вашим вариантом и моим, разве что только вы используете переменную.
Автор топика
Спасибо:

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 04.09.2013
Ответить


Надо округлять время сделки, до времени начала свечи. На форуме есть как минимум 3 темы, где описано как с этим бороться. Эта одна из них.
https://www.stocksharp.co...ent---vsie-sdielki-Sell/
Спасибо:

shumak

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


Код
TimeSpan.FromTicks(_tick).GetCandleBounds(trade.Last().Trade.Time).Max
- я и округляю.
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 04.09.2013
Ответить


Поробуйте выводить сделки со временем, которое будет равно времени открытия свечи, когда была сделка.
Спасибо:

shumak

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


А как ? На данный момент я подписываюсь на событие trader.NewMyTrades += DrawTrade;
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 05.09.2013
Ответить


В этом обработчике найти последнюю подходящую свечку и взять время ее открытия. Значение кол-ва тиков здесь брать нельзя, т.к. сделки приходят не каждый тик, время между ними может быть абсолютно разным, поэтому вариант который работает с тайм-фрейм свечками здесь и не отрабатывает.
Спасибо:

shumak

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


Интересно то, что время сделок правильное(проверял через дебаг), а на графике они залипают. А примеры отрисовки сделок на истории есть ?
Автор топика
Спасибо:

shumak

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


esper Перейти
В этом обработчике найти последнюю подходящую свечку и взять время ее открытия. Значение кол-ва тиков здесь брать нельзя, т.к. сделки приходят не каждый тик, время между ними может быть абсолютно разным, поэтому вариант который работает с тайм-фрейм свечками здесь и не отрабатывает.

Сделал так, нашел пару сделок присвоил время закрытия нескольких свечек и попытался отрисовать на графике. Результат ничего не получилось, все так же залипает в левой части. "Где собака зарыта ? "
Автор топика
Спасибо:


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

loading
clippy