Блог им. t-trade

Мааааленькая ошибка может стоить БОЛЬШИХ денег!

Мааааленькая ошибка может стоить БОЛЬШИХ денег!

В конце поста будет пару слов про эту картинку, а пока что про Easy Language.

А знаете ли Вы, что очередность записей в коде на языке Easy (power) Language огого как важна?! Вот такой пример: Если свеча растущая, то сделать счетчик равным единице. Если счетчик показывает 1 — продать. А счетчик нужно сбрасывать на каждой свечке.

Пример высосан из пальца, на самом деле здесь никакой счетчик не нужен. Просто хочу показать важность правильной очередности частей кода. 

Если мы напишем так:

var: counter(0);
if open<close then counter=1;
if counter=1 then sell short this bar close;
counter=0;

Вот в таком коде сделки будут совершаться, а счетчик сбрасываться на ноль, всё будет хорошо. 

И вот так всё будет хорошо:

var: counter(0);
counter=0;
if open<close then counter=1;
if counter=1 then sell short this bar close;


А вот если мы поместим сброс счетчика на 0 после расчета, но до совершения сделки, то ни одной позиции открыто не будет:

var: counter(0);
if open<close then counter=1;
counter=0;
if counter=1 then sell short this bar close;


На первый взгляд возникает вопрос — НО ПОЧЕМУ??? Ведь в какой-то момент счетчик становится равным единице, а когда он равен единице — нужно продавать! Но потом мы вспоминаем: Easy Language не ищет подходящие формации на графике. Вместо этого он читает код слева направо, сверху вниз на каждой свечке. А значит, к моменту, когда программа дочитает до момента совершения сделки, счетчик всегда будет на нуле. Очередность важна!

P.S. А чтобы получить картинку, которая в начале поста, достаточно продавать после каждой растущей минутки и покупать после каждой падающей. С пирамидингом, а как же! Конечно, если добавить комисс и проскальзывание, этот график превратится в очень быстро теряющий деньги. Но если двигаться в этом направлении, можно найти интересную идею...

P.P.S. Это был очередной такой минипост из серии по программированию на языке Easy Language. Если интересно, вот тут собраны все остальные из серии. Ну а ещё хочу сказать, что идет набор группы на курс по Easy Language! Подробности и скидки тут...

★9
6 комментариев
обычно кто сливает тот всегда эквити перпендикулярно растущую показывает.
avatar
дык
var: counter(0);
if open<close then counter=1;
counter=0;
if counter=1 then sell short this bar close;

шикарный код
в 98 процентах покажет доходность больше чем у большинства :)

а вообще реально был случай когда нашел багу в самой винде.
пол года бился над ошибкой — пересмотрел все что можно — а бага была не у меня.
avatar
Простите, а для чего счетчик в данном случае, и почему нельзя просто продать после растущей свечи без счетчика?
avatar
Denoy.ru, Прощаю. «Пример высосан из пальца, на самом деле здесь никакой счетчик не нужен. Просто хочу показать важность правильной очередности частей кода. „

теги блога Иван Коваль-Зайцев

....все тэги



UPDONW
Новый дизайн