Иван Коваль-Зайцев
Иван Коваль-Зайцев личный блог
23 января 2014, 17:59

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

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

В конце поста будет пару слов про эту картинку, а пока что про 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! Подробности и скидки тут...

6 Комментариев
  • Рома
    23 января 2014, 18:11
    обычно кто сливает тот всегда эквити перпендикулярно растущую показывает.
  • rutrader
    23 января 2014, 18:47
    дык
    var: counter(0);
    if open<close then counter=1;
    counter=0;
    if counter=1 then sell short this bar close;

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

    а вообще реально был случай когда нашел багу в самой винде.
    пол года бился над ошибкой — пересмотрел все что можно — а бага была не у меня.
  • lama
    23 января 2014, 20:23
    Простите, а для чего счетчик в данном случае, и почему нельзя просто продать после растущей свечи без счетчика?

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

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