Пример вывода таблицы со своими данными в новом окне. Можно раскрашивать ячейки с данными.
Пример рисования различных фигур на графике.
using TSLab.Script;
using TSLab.Script.CanvasPane;
using TSLab.Script.Handlers;
namespace MyLib
{
public class TestDataGrid : IExternalScript
{
public void Execute(IContext ctx, ISecurity sec)
{
// Создаем новое окно "Мое окно"
var window = ctx.AddWindow("MyWindow", "Мое окно");
// Рисуем таблицу 1 в окне "Мое окно"
Variant1(window);
// Рисуем таблицу 2 в окне "Мое окно"
Variant2(window);
}
/// <summary>
/// Первый вариант простая таблица с числами
/// </summary>
public void Variant1(IWindow window)
{
// Создаем таблицу
var pane = window.CreateDataGridPane("MyTable1", "Моя таблица1",
0,
"N0",
"Номер",
true, // включить номер индекса
TextAlignment.Left,
null,
1,
"d",
"Date",
false,
TextAlignment.Left,
null);
// Добавляем колонки с данными. Один вызов AddList - это одна колонка.
pane.AddList("1", "1", new[] { 1.0, 2.0 }, 1, "N2", "header1", true, TextAlignment.Right, null);
pane.AddList("2", "2", new[] { 10.0, 20.0 }, 2, "N2", "header2", true, TextAlignment.Right, null);
pane.AddList("3", "3", new[] { 100.0, 200.0 }, 3, "N2", "header3", true, TextAlignment.Right, null);
}
/// <summary>
/// Второй вариант таблица с числами и текстом, можно подкрашивать ячейки
/// </summary>
/// <param name="ctx"></param>
private void Variant2(IWindow window)
{
// Создаем таблицу
var pane = window.CreateDataGridPane("MyTable2", "Моя таблица2",
0,
"N0",
"Номер",
true, // включить номер индекса
TextAlignment.Left,
null,
1,
"d",
"Date",
false,
TextAlignment.Left,
null);
// Создаем данные колонки 1
var series1 = new InteractiveSeries(
[
new InteractiveObject(new InteractivePointActive(1, 0) { IsActive = true, Tag = "Текст 1" }),
new InteractiveObject(new InteractivePointActive(2, 0) { IsActive = true, Tag = "Текст 2" }),
new InteractiveObject(new InteractivePointActive(3, 0) { IsActive = true, Tag = "Текст 3" }),
new InteractiveObject(new InteractivePointActive(4, 0) { IsActive = true, Tag = "Текст 4" }),
]);
series1.DisplayProperty.Name = "Tag"; // Отображаемое значение, по умолчанию valueY
// Создаем данные колонки 2
var series2 = new InteractiveSeries(
[
new InteractiveObject(new InteractivePointActive(1, 1) { IsActive = true, ValueYBackColor = ScriptColors.Red, ValueYForeColor = ScriptColors.Black }),
new InteractiveObject(new InteractivePointActive(2, 2) { IsActive = true }),
new InteractiveObject(new InteractivePointActive(3, 3) { IsActive = true }),
new InteractiveObject(new InteractivePointActive(4, 4) { IsActive = true }),
]);
// Добавляем колонки с данными. Один вызов AddList - это одна колонка.
pane.AddList("1", "1", series1, 1, "N2", "header1", true, TextAlignment.Right, null);
pane.AddList("2", "2", series2, 2, "N2", "header2", true, TextAlignment.Right, null);
}
}
}
using TSLab.Script;
using TSLab.Script.GraphPane;
using TSLab.Script.Handlers;
namespace examples_of_a_graph
{
public class Examples_of_graph : IExternalScript
{
public void Execute(IContext ctx, ISecurity sec)
{
if (ctx.BarsCount < 20)
return; // мало баров для рисования.
var i = ctx.BarsCount - 1;
var point_1 = new MarketPoint(sec.Bars[i - 1].Date, sec.Bars[i - 1].High);
var point_4 = new MarketPoint(sec.Bars[i - 4].Date, sec.Bars[i - 4].Low);
var point_10 = new MarketPoint(sec.Bars[i - 10].Date, sec.Bars[i - 10].High);
var point_15 = new MarketPoint(sec.Bars[i - 15].Date, sec.Bars[i - 15].Low);
/* Очистка интерактивных объектов*/
ctx.First.ClearInteractiveObjects();
/* Точка на максимуме бара, который раньше предпоследнего бара на 10 баров*/
ctx.First.AddInteractivePoint("Point", PaneSides.RIGHT, false, ScriptColors.Yellow, point_10);
/* Линия, где начальная точка минимум бара. Конечная точка максимум предпоследнего бара. */
ctx.First.AddInteractiveLine("Interactive Line", PaneSides.RIGHT, false, ScriptColors.Red, InteractiveLineMode.Finite, point_4, point_1);
ctx.First.AddInteractiveLine("Interactive Line1", PaneSides.RIGHT, false, ScriptColors.Red, InteractiveLineMode.Finite, point_10, point_4);
/* Интерактивная простая линия по максимуму предпоследнего бара. (Вертикальная) */
ctx.First.AddInteractiveSimpleLine("interactive simple line", PaneSides.RIGHT, false, ScriptColors.Orange, InteractiveSimpleLineMode.Vertical, point_1);
/* Добавление текста на график, над максимумом предпоследнего бара */
ctx.First.AddInteractiveText("Hello world", PaneSides.RIGHT, false, ScriptColors.Yellow, point_4).Text = "Hello world";
/* Добавление интерактивного Фибоначчи */
ctx.First.AddInteractiveFibonachi("interactive Fibonacci", PaneSides.RIGHT, false, ScriptColors.Red, point_15, point_1);
}
}
}