finstrateg
finstrateg личный блог
23 февраля 2017, 11:43

Лайфхак для TSLab

Ниша все еще пустует — до сих пор никто не сделал толковой программы для построения роботов.
За неимением нормальной программы приходится пользоваться лучшим из худших — TSLab-ом.

Речь пойдет о кубиках на сильно упрощенном примере!

Итак, при пользовании TSLab-ом периодически требуется обратиться к предыдущим значениям баров, что, можно сделать с помощью указания индекса i, под которым подразумевается номер текущего бара, например open[i-5] — обратились к цене открытия пятого бара от текущего.

Вроде все удобно, но если в кубике с формулой использовать подобную запись, то на начальном участке истории кубик выдает ноль (когда еще нету пяти баров и отсчитать пять баров назад не получится). И если это значение выводится на график, допустим фьючерса на индекс ртс, то на начальном участке истории получается одновременный вывод нулей и значений цены в районе 114000 — можно представить как это все отображается — в виде тонких линий, где ничего не рассмотришь, а только матом выругаешься )))

В кубике есть настройка — где можно указать с какого номера бара начинать вычисления, но это абсолютно не поможет в указанном случае, потому что TSLab все равно выдает нули, да и по другому никак..., кроме того, указывать номер бара в настройках кубика — достаточно идиотская затея, так как потом при каждом случае придется туда лезть и менять этот номер или вообще можно забыть про него и что-нибудь не так вычислить...

Если в самом кубике предусмотреть обработку описанного случая — чтобы TSLab не лез в отсутствующую историю, можно написать условие (i<5? open[i] : open[i-5]) — то есть при недостатке баров будет использоваться текущее значение open[i]. Но TSLab настолько «умен», что если в формуле идет обращение в прошлое и этого прошлого не достаточно, то он просто игнорирует все что написал «тупой» пользователь и все равно выдает ноль.

Ну и решение проблемы заключается в использовании двух кубиков подряд, в первом пишем то, что нам требуется (open[i-5]) — пусть этот кубик называется «formula», а во втором кубике записываем условие, которое исправляет то, что нам не требуется (formula==0? open[i] : formula). Данное условие вместо нуля выдаст цену open[i], а когда появится возможность, то выдаст open[i-5], что нам и требуется. И график будет выглядеть нормально и никакие индексы в настройках кубика указывать не надо...

Давно бы уже следовало сделать кубик, в котором можно написать программный код на C# с возможностью определения переменных и использования операторов циклов и условий, хотя бы для ограниченного количества вложенных блоков {} ...

24 Комментария
  • Сергей Гаврилов
    23 февраля 2017, 12:37
    «Давно бы уже следовало сделать кубик, в котором можно написать программный код на C#» — зачем козе баян?
  • Сергей Кузьминов
    23 февраля 2017, 13:01
    Может я не понял, но такая возможность давно есть. У TSLab'a замечательное открытое API. В Visual Studio пишешь код и потом подключаешь его как внешний скрипт.
    • Lexuz77
      23 февраля 2017, 13:32
      Сергей Кузьминов, «замечательное открытое API» у СтокШарп и ОСЫ — тут же мы должны платить за обычные коннекторы к биржам и терминалам, причем некоторые из них были «позаимстованны и присвоены» (недавно про это писали smart-lab.ru/blog/379616.php)
      • Сергей Кузьминов
        23 февраля 2017, 21:19
        Lexuz77, может я открою Вам большой секрет, но тестировать в ТСлабе можно абсолютно бесплатно и до бесконечности. Я ни в коем случае не защищаю эту программу, сам к ней отношусь весьма скептически. 
      • Евгений
        23 февраля 2017, 14:08
        finstrateg, они свой бесплатный тс лаб ваяют, с блэк джеком и женщинами.
  • ✔️AlgoDevil
    23 февраля 2017, 19:01
    mt5 все решит
  • KNK
    23 февраля 2017, 21:08
    для тестирования Тслаб не лучший вариант, логика обработки в некоторых классах слизана с велса но реализована с ошибками и не совпадает с названием. За некоторые решения разрабам хотелось прямо в руки плюнуть
  • SAI
    24 февраля 2017, 18:22

    Тоже мне лайф хак) Вот если бы раскрыли тайну как им пользоваться на халяву (такая возможность есть) то это был бы лайф хак.

    А по поводу кубика с кодом, такая возможность есть, можно писать как внешний скрипт так и свои кубики.

    Описание апи того что есть более чем достаточно!

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн