Блог им. finstrateg

Лайфхак для 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# с возможностью определения переменных и использования операторов циклов и условий, хотя бы для ограниченного количества вложенных блоков {} ...

★7

VladMih, не вижу сложностей написать простой код на C#, но так как я не программист, то собрать эти куски в программу с классами, обертками, методами и прочими любимых в ТСЛабе фишками (из-за которых они сами уже зарылись в попытках разработать версию 2.0) для меня уже не так просто… вот тут бы и был полезен кубик в который можно вставить несложный код, в принципе сейчас кубики формула и логическая формула частично это позволяют, но они ограничены одной строкой кода, т.е. блок из нескольких строк туда уже не вставить...

«Торговать с...» — не поможет, так как на график она никак не влияет, да и не торгую я, а тестирую на истории, соответственно игнорировать историю не имею желания и лишний параметр, величину которого потом постоянно надо контролировать — нет желания использовать.
avatar

finstrateg

finstrateg, никого не спасёт твой лайфхак, если уж человек сам не смог решить такую проблему, то ему лучше вообще не торговать, тем более через ТСЛаб
avatar

vito333

Vladimir Volz, пользуйтесь )))
avatar

finstrateg

«Давно бы уже следовало сделать кубик, в котором можно написать программный код на C#» — зачем козе баян?
Может я не понял, но такая возможность давно есть. У TSLab'a замечательное открытое API. В Visual Studio пишешь код и потом подключаешь его как внешний скрипт.
Сергей Кузьминов, «замечательное открытое API» у СтокШарп и ОСЫ — тут же мы должны платить за обычные коннекторы к биржам и терминалам, причем некоторые из них были «позаимстованны и присвоены» (недавно про это писали smart-lab.ru/blog/379616.php)
avatar

Lexuz77

Lexuz77, может я открою Вам большой секрет, но тестировать в ТСлабе можно абсолютно бесплатно и до бесконечности. Я ни в коем случае не защищаю эту программу, сам к ней отношусь весьма скептически. 
Сергей Кузьминов, «замечательное открытое API» — что там замечательного, если сами разработчики толком не понимают как он работает и хелп нормальный сделать не могут + не каждый умеет работать в Visual Studio и желает разбирается в закодированных головоломках разработчиков.
avatar

finstrateg

finstrateg, они свой бесплатный тс лаб ваяют, с блэк джеком и женщинами.
avatar

Евгений

mt5 все решит
для тестирования Тслаб не лучший вариант, логика обработки в некоторых классах слизана с велса но реализована с ошибками и не совпадает с названием. За некоторые решения разрабам хотелось прямо в руки плюнуть
avatar

KNK

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

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

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

avatar

SAI

Алексей С, ну я и пользуюсь им на халяву — для тестирования он бесплатен, а для торговли он все равно не годится — не смог доверить деньги глючной программе )))
Свои кубики писал, только надо либо всего агента писать в своем кубике (что не так легко) или все писать стандартными кубиками, а если перемешивать, то глюков не избежать.
avatar

finstrateg


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UPDONW