Как решили вопрос? У меня та же проблема.
Вот простой скрипт по двум скользящим.
Code:
using System;
using TSLab.Script;
using TSLab.Script.Handlers;
using TSLab.Script.Helpers;
using TSLab.Script.Optimization;

namespace DoubleSma
{
    public class DoubleSma : IExternalScript
    {
        #region Параметры оптимизации

        public OptimProperty SmaFast = new OptimProperty(16, 8, 512, 8);
        public OptimProperty SmaSlow = new OptimProperty(32, 8, 512, 8);

        #endregion

        public void Execute(IContext ctx, ISecurity sec)
        {
            //Расчет Индикаторов
            var smafast =  Series.SMA(sec.ClosePrices, SmaFast);
            var smaslow = Series.SMA(sec.ClosePrices, SmaSlow);


            var start = Math.Max(SmaFast, SmaSlow);

            for (int i = start; i < ctx.BarsCount; i++)
            {
                var le = sec.Positions.GetLastActiveForSignal("LE");

                //Позиции для лонга
                if (le == null)
                {
                    if (smafast[i - 1] < smaslow[i - 1] && smafast[i] > smaslow[i])
                        sec.Positions.BuyAtMarket(i, 1, "LE");
                }
                else
                {
                    if (smafast[i - 1] > smaslow[i - 1] && smafast[i] < smaslow[i])
                        le.CloseAtMarket(i, "LX");
                }

                var se = sec.Positions.GetLastActiveForSignal("SE");

                //Позиции для шорта
                if (se == null)
                {
                    if (smafast[i - 1] > smaslow[i - 1] && smafast[i] < smaslow[i])
                        sec.Positions.SellAtMarket(i, 1, "SE");
                }
                else
                {
                    if (smafast[i - 1] < smaslow[i - 1] && smafast[i] > smaslow[i])
                        se.CloseAtMarket(i, "SX");
                }


            }



            var pane = sec.PaneChart(ctx, 100, false, PaneSides.RIGHT, 2);
            pane.Chart(sec, Helper.blossom.Green);
            pane.Led("smaslow", smaslow, Helper.blossom.Red, 2);
            pane.Led("smafast", smafast, Helper.blossom.Blue, 2);


        }
    }
}


Что может быть не так?


Отредактировано konstantinio (Sun Nov 20 2016 12:11 AM)