Контрольная панель API

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

Создать контрольную панель: var controlPane = ctx.CreateControlPane("Control", "Control", "My control");

  • Первый элемент "Control" – уникальный id элемента.

  • Второй элемент "Control" – название панели

  • Третий элемент "My control" – заголовок панели, если он не указан, то значение будет браться из названия панели.

Добавить элемент на контрольную панель: var pane = controlPane.AddControl("SMA", "", ControlParameterType.NumericUpDown, true, 0, 0, double.NaN, double.NaN, false, false, null, Period);

  • "SMA" - название элемента

  • "" - название свойства, если пустое, то будет браться название последней переменной, в данном случае Period.

  • ControlParameterType.NumericUpDown - тип элемента, в данном случае число с элементом управления.

  • Period - параметр скрипта OptimProperty

Пример: Добавим индикатор SMA и контрольную панель. На контрольную панель выведем значение индикатора. При изменении значения будет пересчитываться скрипт и меняться индикатор SMA.

using TSLab.Script;
using TSLab.Script.Control;
using TSLab.Script.Handlers;
using TSLab.Script.Helpers;
using TSLab.Script.Optimization;

namespace MyLib
{
    public class TestControlPanel : IExternalScript
    {
        public OptimProperty Period = new OptimProperty(100, 100, 1000, 50);

        public void Execute(IContext ctx, ISecurity sec)
        {
            // Создаем индикатор SMA
            var sma = ctx.GetData("SMA", new[] { Period.ToString() }, () => Series.SMA(sec.ClosePrices, Period));
            
            // Создаем контрольную панель
            var controlPane = ctx.CreateControlPane("Control", "Control", "My control");

            // На контрольную панель добавляем период индикатора
            var pane = controlPane.AddControl("SMA", "", ControlParameterType.NumericUpDown, true, 0, 0, double.NaN, double.NaN, false,
                false, null, Period);
            // При изменении индикатора на контрольной панели будет пересчитываться скрипт
            pane.IsNeedRecalculate = true;

            // Рисуем индикатор SMA на графике
            ctx.First.AddList("SMA", sma, ListStyles.LINE, ScriptColors.Green, LineStyles.SOLID, PaneSides.RIGHT);
        }
    }
}

Last updated