ROBO_Trading

Перерисовка скриптов

Education
BITFINEX:BTCUSD   Bitcoin
Про это чаще вопросы стали задавать. Не про мои скрипты, а про чужие. Перерисовывается он или нет.

1) Если там закрытый исходный код, то точно определить уже нельзя. Да, там бывает можно увидеть что он переписывался, а можно и не увидеть. Так что точно сказать нельзя. Далее только если открытый исходный код.

2) В самом начале скрипта после символа собачки пишется версия языка. 2 или 3. 1 - уже не поддерживается. В версии 2 есть много способов написать так, чтобы перерисовывался скрипт, а в версии 3 таких способов гораздо меньше. В разы. Я даже ранее писал что в версии 3 перерисовку вообще нельзя сделать, но потом оказалось что способы там тоже есть.

3) Команда security. Она нужна чтобы брать цены с другой пары, иногда это полезно. Но этой же командой можно взять цены не только с другой пары, но и с той же самой пары, причем взять цены будущего! Из-за чего скрипт такой и будет перерисовываться. Команда security не означает что скрипт будет обязательно перерисовываться - смотря как сделано. И смотря для чего. К примеру, у меня в ShiftMA команда security используется для того чтобы можно было на одном таймфрейме посмотреть скользящие средние с другого таймфрейма той же пары, что удобно. А в более ранних версиях ShiftMA (которые тоже выложены у меня в профиле) этой команды не было.

4) Есть и очень простой способ подглядывать в будущее, который сразу же видно. В скриптах часто используются квадратные скобки после переменных. Если там число 1 значит эта переменная смотрит прошлую свечу. Соответственно, если 2 - значит позопрошлую свечу. И так далее. Нет ничего плохого в том что скрипт смотрит прошлые цены. Вот только те же квадратные скобки позволяют смотреть и будущее цены, если ставить туда отрицательное значение. Минус 3 будет означать смотреть на 3 свечи вперед. А вообще это как бы недопустимо, нет смысла делать такой скрипт, так как полезным он быть не может уже, и точно будет перерисовываться.

5) Оффсет. Свойство offset у многих линий на самом деле не влияют на торговлю никак. Это просто визуально сдвигает какую-то линию либо влево (в прошлое), либо вправо (в будущее). Вот только на торговлю это никак не влияет, поэтому безопасно. Например, у индикатора Облака Ишимоку есть большой оффсет в будущее, но ничего плохого в этом нет.

6) Есть так же очень неочевидные способы подсмотреть в будущее. Настолько неочевидные, что кодер написавший скрипт может сам этого не заметить, и будет уверен что там всё верно. К примеру, можно еще внутри свечи, которая еще не закрылась посмотреть цену закрытия этой свечи, и учесть эту цену в стратегии. Но если вдуматься, то это же посмотреть в будущее значит. Ведь если мы смотрим цену внутри еще не закрывшейся часовой свечи в 12:25, а потом смотрим цену закрытия той же свечи (а она в 12:59:59), то получается подсматриваем в будущее на 35 минут вперед. И вот это бывает не очевидно.

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

Признак 1) команда Security где скрипт обращается к выбранной же паре (то есть к самой себе), там написано tickerId - вот это обычно просто не нужно.
Признак 2) вторая версия языка (хотя его просто давно написали видимо, и третьей тогда еще не было, а потом не обновляли)
Признак 3) этот уже скорее гарантированно перерисуется - отрицательные значения в квадратных скобках

Вот для скрипта ShiftEx я специально решил сначала сделать его без "наворотов" моих, типа диапазона дат, галок лонг/шорт, размера лота и прочего. То есть самый минимум кода и команд, чтобы желающий изучить скрипт смог там проще всё понять как он работает. Ну а позже я сделаю следующую его версию, и код будет больше и сложнее.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.