Чувак Хачинбек
Чувак Хачинбек личный блог
07 июня 2022, 22:29

Глубокое погружение в Мальчика (по просьбе Мальчика)

В комментарии к посту пользователь Мальчик buybuy попросил перевернуть те графики, которые были на полшестого, а также прислать полные данные по эксперименту.
Никаких проблем. Однако, чтобы зрителям не было скучно, в текущем посте рассмотрим картинки не одного, а нескольких индикаторов:

1) на основе СЛАУ с одной переменной
indicator = d1 * (d1 / d2)
2) на основе СЛАУ с двумя переменными (см. предыдущий пост)
indicator = d1 * (d1 * d4 - d2 * d3) + d2 * (d2 * d2 - d1 * d3)
3) на основе СЛАУ с тремя переменными.
indicator = d1 * (-d1 * d4 * d6 + d1 * d5 * d5 + d2 * d3 * d6 - d2 * d4 * d5 + d3 * d3 * (-d5) + d3 * d4 * d4) /<br />  (-d2 * d4 * d6 + d2 * d5 * d5 + d3 * d3 * d6 - 2 * d3 * d4 * d5 + d4 * d4 * d4) +<br /><br />  d2 * (-d1 * d3 * d6 + d1 * d4 * d5 + d2 * d2 * d6 - d2 * d3 * d5 + d4 * d4 * d4) /<br />  (d2 * d4 * d6 - d2 * d5 * d5 - d3 * d3 * d6 + 2 * d3 * d4 * d5 - d4 * d4 * d4) +<br /><br />  d3 * (-d1 * d3 * d5 + d1 * d4 * d4 + d2 * d2 * d5 - 2 * d2 * d3 * d4 + d3 * d3 * d3) /<br />  (-d2 * d4 * d6 + d2 * d5 * d5 + d3 * d3 * d6 - 2 * d3 * d4 * d5 + d4 * d4 * d4)

4) на основе СЛАУ с 4 переменными (формулу смотреть в исходниках).
Пока, думаю, этого достаточно (если, конечно, Русский ВПК не укажет дальнейшее направление).

Сами исходники, котировки и эквити можно скачать здесь.

А теперь собственно картинки:
(* цифрами обозначен порядок индикаторов: (1) — с одной переменной; (2) — с двумя и т.д.)

1) BTCUSD
Глубокое погружение в Мальчика (по просьбе Мальчика)
2) AUDCAD
Глубокое погружение в Мальчика (по просьбе Мальчика)

3) XAUUSD
Глубокое погружение в Мальчика (по просьбе Мальчика)

4) ROSN

Глубокое погружение в Мальчика (по просьбе Мальчика)



Собственно данный класс индикаторов без параметров может описывать движение цены на 1 мин таймфрейме, что видно из графиков выше, однако, как и всегда с финансовыми данными, это явно не грааль.

36 Комментариев
  • 3Qu
    07 июня 2022, 23:07
    Если теперь попробуете 
     Y = (x(0) — x(-1)) + (x(0) — 2x(-1) + x(-2))/2
    Y> const покупаем, У< -const — продаем,
    то, скорее всего получите примерно тоже самое. Реальной прибыльности, аналогично, не обещаю.
    • Антон Б
      07 июня 2022, 23:23
      3Qu, а ты сам же алго.
       не можешь пробовать?
      можно обычным pine tradingview
      • 3Qu
        07 июня 2022, 23:30
        Антон Б, 
        1. Не могу. Я вообще на даче сижу без компа.
        2. Зачем мне пробовать, если я примерно знаю результат? Для практических целей это, скорее всего, бесполезный экзерсис. Хотя… может, и не совсем бесполезный.)
        3. Если кому интересно — пусть пробует. Неинтересно — не пробует.)
      • 3Qu
        08 июня 2022, 00:23
        vldtar, ОК. Ваше резюме?
        По крайней мере, все достаточно гладкое, в этом масштабе.
          • Иван Портной
            08 июня 2022, 01:04
            vldtar, 
             усложнение модели не ведёт к улучшению эквити

            А что, если вашу первую формулу:
            indicator = d1 * (d1 / d2)
            упростить до :
            indicator = d2
            Мы же вроде только знак берем от индикатора )
              • Иван Портной
                08 июня 2022, 01:13
                vldtar, 
                по просьбам трудящихся)
                Даа, не прокатило )). А какой инструмент и период?
  • Rostislav Kudryashov
    07 июня 2022, 23:11
    Мой браузер не хочет закачивать «опасные файлы» исходников. Да и я сам не считаю код на .js (Java Script) подходящим средством для торговых стратегий.
    Непонятно, где Buy и Sell, где Short и его Cover.
    По-моему, скрипт C# в WealthLab гораздо выразительнее. Кряки бесплатны. Попробуй прочесть smart-lab.ru/blog/808994.php.
    И можно ли доверять добросовестности «Мальчика» с его претензиями smart-lab.ru/blog/809401.php
    • 3Qu
      07 июня 2022, 23:19
      Rostislav Kudryashov, его добросовестности можно, его экзерсисам — нельзя.)
      • Rostislav Kudryashov
        07 июня 2022, 23:37
        3Qu, 23:19 т.е. ты веришь, что Мальчик добросовестно не увидел в моей статье smart-lab.ru/blog/808994.php
        не только кода, но и ссылки на тестовые данные с минутным тайм-фреймом И добросовестно потребовал от меня их предъявления smart-lab.ru/blog/809401.php
        • 3Qu
          07 июня 2022, 23:42
          Rostislav Kudryashov, вообще-то, не от вас, а от Мальчика. От вас я ничего не только не требовал, но даже и не просил.
          Вы получили результат, привели его. Надеюсь, что там все правильно.
          • Rostislav Kudryashov
            08 июня 2022, 00:33
            3Qu, 23:42 ты опять не понял! О, боги! Я же написал
            Мальчик… увидел… и (Мальчик) потребовал...
            Где ты вычитал мои жалобы на твои требования ко мне!?
      • Rostislav Kudryashov
        07 июня 2022, 23:26
        vldtar, 23:21 C# из WealthLab даёт самый прямой путь ко всем возможностям Windows. Какие ограничения!?
        А что Buy/Sell, Short/Cover «держишь в уме», лишает твой код наглядности.
        И тестировать стратегию для минуток на истории 13 лет — не слишком ли!?
      • 3Qu
        07 июня 2022, 23:27
        vldtar, точно не помню, но, вроде, JS c NET-объектами работает?
        Помнится, по работе, что-то туда NETовское впихивал. Лет, этак 12 назад. Или ошибаюсь?
        • Rostislav Kudryashov
          07 июня 2022, 23:50
          3Qu, 23:27 с объектами .NET работает JScript.NET Читай Justin Rogers «Microsoft JScript.NET Programming»
          • 3Qu
            07 июня 2022, 23:59
            Rostislav Kudryashov, это из праздного любопытства.
            Как же мне тогда удалось в локальную ВЭБ- страницу Net-объект впихнуть — не понимаю.
            А VBscript может?
            • Rostislav Kudryashov
              08 июня 2022, 00:15
              3Qu, 23:59 Web-страницами обычно управляют интернет-браузеры. У них и спрашивай.
  • Rostislav Kudryashov
    08 июня 2022, 00:02
    Тестировать 13 лет в WealthLab слишком долго. Но за 2019-й год скрипт по алгоритму «Мальчика»
    protected override void Execute()    {
        var d1 = (Close >> 1) — (Close >> 2);
        var d2 = (Close >> 2) — (Close >> 3);
        var d3 = (Close >> 3) — (Close >> 4);
        var d4 = (Close >> 4) — (Close >> 5);
        for (int i = 5; i < Bars.Count-2; i++) {
          double A = d1[i]*d4[i] — d2[i]*d3[i];
          double B = d2[i]*d2[i] — d1[i]*d3[i];
          double id = A*d1[i] + B*d2[i];
          int posDir = (! IsLastPositionActive)? 0
           : LastPosition.PositionType == PositionType.Long? 1: -1;  
          if (id >= 0 && posDir != 1) {
            if (posDir == -1)
              ExitAtClose (i, LastPosition);
            BuyAtClose (i);
          } else if (id < 0 && posDir != -1) {
            if (posDir == 1)
              ExitAtClose (i, LastPosition);
            ShortAtClose (i);
          }
        } // for (int i
        if (IsLastPositionActive)
          ExitAtClose (Bars.Count-1, LastPosition);
    } // Execute()
    дал результат на ROSN из предложенного автором набора данных



    не слишком выдающийся.
    PS всем ли очевидно, что Close>>1 даёт сдвиг данных на один бар вправо?
    Всё остальное предельно наглядно.
      • Rostislav Kudryashov
        08 июня 2022, 00:20
        vldtar, 00:14 не знаю, на чём крутить скрипты TSLab. WealthLab бесплатный. А если хочу производительности, использую C++. Роботов в Quik'е писал на QLua.
        Ещё много чего было...
        Из-за санкций прицелился на Java. Бесплатный JDK Liberica.
        PS не знаю даже, как прочесть indTest.tscript
        Какие-то кряко-зябры
        <?xml version=«1.0» encoding=«utf-8»?>
        <ExportScriptData xmlns:xsd=«www.w3.org/2001/XMLSchema» xmlns:xsi=«www.w3.org/2001/XMLSchema-instance»>
          <Code><![CDATA[<?xml version=«1.0» encoding=«utf-16»?>
        <GraphDataBase xmlns:xsd=«www.w3.org/2001/XMLSchema» xmlns:xsi=«www.w3.org/2001/XMLSchema-instance» xsi:type=«GraphViewData»>
          <EditData VersionString=«2.3» TemplateClass=«Script»>
            <ViewModel>
              <Model Scale=«1»>
                <Block Key=«Источник1» Category=«TradableSecurity» Location=«50 0» TypeName=«TradableSecuritySourceItem»>
                  <EditItem Guid=«13E828E4-4633-455C-B81B-730B003D8002» CodeName=«var0» IsParametersVisible=«false» OnlyValueHandlersCanUsed=«false» />
                </Block>
        и дальше — пуще
          • Rostislav Kudryashov
            08 июня 2022, 00:38
            vldtar, 00:21 благодаря интеграции с Windows программа WealthLab позволяет строить такие штуки, какие в этой программе и не предусмотрены. И по наглядности-доступности кодов — можешь сравнить сам.
  • Вася Пражкин
    08 июня 2022, 00:10
    Что-то какие-то медовые графики у Вас. Если б грааль был так прост, то прибежало бы уже стотыщ миллионов леммингов и тему эту похерила.
  • сергей иванов
    08 июня 2022, 12:12
    Что за фуфло тут трут на??? кому эту ботву тут нарисовали епт??? не вкурили пацанчики с района ни текста этого, ни картинок разноцветных на
  • Iggr
    08 июня 2022, 15:29
    " — Вот видишь, мам, как я считать умею!
    — Умничка, сынка, вот тебе мороженое!". ©

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

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