Контрольная панель API
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));
// Если в режиме оптимизации, то выходим
if (ctx.IsOptimization)
return;
// Создаем контрольную панель
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
Was this helpful?