Блог им. vldtar

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

В комментарии к посту пользователь Мальчик 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 мин таймфрейме, что видно из графиков выше, однако, как и всегда с финансовыми данными, это явно не грааль.

★8
36 комментариев
Если теперь попробуете 
 Y = (x(0) — x(-1)) + (x(0) — 2x(-1) + x(-2))/2
Y> const покупаем, У< -const — продаем,
то, скорее всего получите примерно тоже самое. Реальной прибыльности, аналогично, не обещаю.
avatar
3Qu, а ты сам же алго.
 не можешь пробовать?
можно обычным pine tradingview
avatar
Антон Б, 
1. Не могу. Я вообще на даче сижу без компа.
2. Зачем мне пробовать, если я примерно знаю результат? Для практических целей это, скорее всего, бесполезный экзерсис. Хотя… может, и не совсем бесполезный.)
3. Если кому интересно — пусть пробует. Неинтересно — не пробует.)
avatar

3Qu, 
Результаты на основе вашего индикатора.

По ссылке исходники обновил.

vldtar, ОК. Ваше резюме?
По крайней мере, все достаточно гладкое, в этом масштабе.
avatar
3Qu, усложнение модели не ведёт к улучшению эквити в нашем случае. Соответственно Eugene Logunov прав: данные модели всего-лишь ловят bid-ask bounce.
vldtar, 
 усложнение модели не ведёт к улучшению эквити

А что, если вашу первую формулу:
indicator = d1 * (d1 / d2)
упростить до :
indicator = d2
Мы же вроде только знак берем от индикатора )
Иван Портной, 
по просьбам трудящихся)
vldtar, 
по просьбам трудящихся)
Даа, не прокатило )). А какой инструмент и период?
Иван Портной, ROSN, 1min, 2009-2021 (тот же, что и на остальных тестах)
Мой браузер не хочет закачивать «опасные файлы» исходников. Да и я сам не считаю код на .js (Java Script) подходящим средством для торговых стратегий.
Непонятно, где Buy и Sell, где Short и его Cover.
По-моему, скрипт C# в WealthLab гораздо выразительнее. Кряки бесплатны. Попробуй прочесть smart-lab.ru/blog/808994.php.
И можно ли доверять добросовестности «Мальчика» с его претензиями smart-lab.ru/blog/809401.php
Rostislav Kudryashov, его добросовестности можно, его экзерсисам — нельзя.)
avatar
3Qu, 23:19 т.е. ты веришь, что Мальчик добросовестно не увидел в моей статье smart-lab.ru/blog/808994.php
не только кода, но и ссылки на тестовые данные с минутным тайм-фреймом И добросовестно потребовал от меня их предъявления smart-lab.ru/blog/809401.php
Rostislav Kudryashov, вообще-то, не от вас, а от Мальчика. От вас я ничего не только не требовал, но даже и не просил.
Вы получили результат, привели его. Надеюсь, что там все правильно.
avatar
3Qu, 23:42 ты опять не понял! О, боги! Я же написал
Мальчик… увидел… и (Мальчик) потребовал...
Где ты вычитал мои жалобы на твои требования ко мне!?
Rostislav Kudryashov, 
buy/sell — не имеет значения, т.к. не учитываются комиссии и иные издержки.
Здесь моделируется как одна транзакция/1 бар (1 минута).

На чём писать код, выбираю сам по личным предпочтениям. 
Кому ближе C#, Python — никаких проблем с ними нет, однако решения вида WealthLab/TSLab и т.д. меня только ограничивают. Но для продакшена — не спорю — надёжно, однако, точно не для исследовательских целей.
vldtar, 23:21 C# из WealthLab даёт самый прямой путь ко всем возможностям Windows. Какие ограничения!?
А что Buy/Sell, Short/Cover «держишь в уме», лишает твой код наглядности.
И тестировать стратегию для минуток на истории 13 лет — не слишком ли!?
Rostislav Kudryashov, 
И тестировать стратегию для минуток на истории 13 лет — не слишком ли!?

 Попробуйте более длинные периоды тестирования.

Если брать короткий отрезок (например, как у вас с 17.09.2018 по 31.12.2018), то Si у меня получается вот так (только  знак  "-" перед формулой):

vldtar, точно не помню, но, вроде, JS c NET-объектами работает?
Помнится, по работе, что-то туда NETовское впихивал. Лет, этак 12 назад. Или ошибаюсь?
avatar
3Qu, 23:27 с объектами .NET работает JScript.NET Читай Justin Rogers «Microsoft JScript.NET Programming»
Rostislav Kudryashov, это из праздного любопытства.
Как же мне тогда удалось в локальную ВЭБ- страницу Net-объект впихнуть — не понимаю.
А VBscript может?
avatar
3Qu, 23:59 Web-страницами обычно управляют интернет-браузеры. У них и спрашивай.
Eugene Logunov, если отдельно hi и lo свечей считать то можно надеется этот спред не считать.
avatar
Тестировать 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, Попробуйте на TSLab запрограммировать кубиками.



Rostislav Kudryashov, скрипт TSLab
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, TSLab бесплатный для тестов.
vldtar, 00:21 благодаря интеграции с Windows программа WealthLab позволяет строить такие штуки, какие в этой программе и не предусмотрены. И по наглядности-доступности кодов — можешь сравнить сам.
Что-то какие-то медовые графики у Вас. Если б грааль был так прост, то прибежало бы уже стотыщ миллионов леммингов и тему эту похерила.
Вася Пражкин, читайте в том числе и предыдущие посты — на этом НЕ заработать, т.к. эта прибыль не покрывает издержки.
Что за фуфло тут трут на??? кому эту ботву тут нарисовали епт??? не вкурили пацанчики с района ни текста этого, ни картинок разноцветных на
" — Вот видишь, мам, как я считать умею!
— Умничка, сынка, вот тебе мороженое!". ©
avatar

теги блога Чувак Хачинбек

....все тэги



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