Глюк ТСЛаба в оптимизаторе?

Автор: crn

Глюк ТСЛаба в оптимизаторе? - Wed Mar 09 2016 10:51 PM

Начальная картинка.


Делаем оптимизацию с полным перебором всех вариантов.
Получаем результат (он отфильтрован, чтоб не захламлять)



Как видим, сделок нет, профита нет, ничего нет, везде нули.
Щелкаем по нему два раза. Получаем:



Что это такое, и как с этим бороться?
Автор: ViL

Re: Глюк ТСЛаба в оптимизаторе? - Thu Mar 10 2016 06:54 AM

Скрипт, эти текстовые данные и настройки поставщика данных в http://support.tslab.ru/
Автор: ra81

Re: Глюк ТСЛаба в оптимизаторе? - Thu Mar 10 2016 07:27 AM

полагаю скрипт на апи? Видимо написан криво smile. Отсюда и бяда.
Автор: crn

Re: Глюк ТСЛаба в оптимизаторе? - Thu Mar 10 2016 01:40 PM

Originally Posted By: ra81
полагаю скрипт на апи? Видимо написан криво smile. Отсюда и бяда.


На апи.
Но скорее это тут не причем. В таблице результатов оптимизации ведь везде нули, а во вкладке Результат есть инфа.
Автор: ra81

Re: Глюк ТСЛаба в оптимизаторе? - Thu Mar 10 2016 01:48 PM

ну если скрипт послали в саппорт то жду результата. мне интересно. других вариантов я не вижу кроме ошибок в коде
Автор: crn

Re: Глюк ТСЛаба в оптимизаторе? - Thu Mar 10 2016 02:18 PM

Originally Posted By: ra81
ну если скрипт послали в саппорт то жду результата. мне интересно. других вариантов я не вижу кроме ошибок в коде

отсылаю. решил видео небольшое записать, чтоб наглядней было.
хотите вам тоже отошлю, может найдете что-то.
Автор: ra81

Re: Глюк ТСЛаба в оптимизаторе? - Thu Mar 10 2016 02:26 PM

кода будет достаточно. если баг есть сразу увижу. если нет, то это тслаб
Автор: crn

Re: Глюк ТСЛаба в оптимизаторе? - Thu Mar 10 2016 02:36 PM

Originally Posted By: ra81
кода будет достаточно. если баг есть сразу увижу. если нет, то это тслаб

Отправил вам в личку ссылку на ЯД.
Есть подозрения, что индикатор криво использую.
Автор: konstantinio

Re: Глюк ТСЛаба в оптимизаторе? - Sun Nov 20 2016 12:02 AM

Как решили вопрос? У меня та же проблема.
Вот простой скрипт по двум скользящим.
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);


        }
    }
}


Что может быть не так?
Автор: ViL

Re: Глюк ТСЛаба в оптимизаторе? - Sun Nov 20 2016 12:15 PM

Очевидно настройки текстового поставщика данных.
Автор: konstantinio

Re: Глюк ТСЛаба в оптимизаторе? - Sun Nov 20 2016 12:38 PM

Другой скрипт работает с этим же поставщиком данных корректно. Не думаю что дело в поставщике данных.
Автор: ra81

Re: Глюк ТСЛаба в оптимизаторе? - Tue Nov 22 2016 08:13 PM

Originally Posted By: crn
Originally Posted By: ra81
кода будет достаточно. если баг есть сразу увижу. если нет, то это тслаб

Отправил вам в личку ссылку на ЯД.
Есть подозрения, что индикатор криво использую.
не было ничего в личке.
Автор: ra81

Re: Глюк ТСЛаба в оптимизаторе? - Tue Nov 22 2016 08:17 PM

В скрипте вашем как минимум не так строка
var le = sec.Positions.GetLastActiveForSignal("LE");
Потому что уже в 1.2 такой способ запрещен а вы его тащите в 2.0. Как оно там работает вообще без понятия.
Автор: konstantinio

Re: Глюк ТСЛаба в оптимизаторе? - Wed Nov 23 2016 06:28 PM

Почему не работает? У меня все скрипты используют этот метод. Он описан в документации к версии 2.0 здесь. В версии 1.2 этот же скрипт оптимизация тоже выдает нули.
Автор: ra81

Re: Глюк ТСЛаба в оптимизаторе? - Wed Nov 23 2016 06:52 PM

Originally Posted By: konstantinio
Почему не работает? У меня все скрипты используют этот метод. Он описан в документации к версии 2.0 здесь. В версии 1.2 этот же скрипт оптимизация тоже выдает нули.

в 1.2 он уже помечен как обсолет, и тем более 2.0. Использовать его на свой страх и риск.
Цикл статей где все описано почему и от чего http://rusalgo.com/article/%D0%B7%D0%B0%D0%BF%D1%80%D0%B0%D1%88%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC-%D0%B2-tslab-%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5-%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%B8-%D0%BF%D1%80%D0%B0%D0%B2.html

В общем используйте попробуйте другой метод. Для начала. Что там еще за беда, пока не вижу. Но глаз не алмаз порой.
Автор: konstantinio

Re: Глюк ТСЛаба в оптимизаторе? - Wed Nov 23 2016 08:47 PM

Вы имеете в виду метод с указанием бара?
Code:
 IPosition GetLastActiveForSignal(string signalName, int barNum);

Я его попробовал в первую очередь. Результат однозначный - в оптимизации нули. Головоломка. frown Похоже надо обращаться в саппорт.
Автор: ra81

Re: Глюк ТСЛаба в оптимизаторе? - Wed Nov 23 2016 08:49 PM

наверное стоит smile
Автор: ra81

Re: Глюк ТСЛаба в оптимизаторе? - Thu Nov 24 2016 11:49 AM

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