Bitcoin
Education

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

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

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 я специально решил сначала сделать его без "наворотов" моих, типа диапазона дат, галок лонг/шорт, размера лота и прочего. То есть самый минимум кода и команд, чтобы желающий изучить скрипт смог там проще всё понять как он работает. Ну а позже я сделаю следующую его версию, и код будет больше и сложнее.
Technical Indicators

Also on:

Related publications

Disclaimer