По следам статей
«Рынок — это просто! Часть 3» 03 июня 2022, 01:12 «ВПК России — лучший»
smart-lab.ru/blog/808353.php
«грааль от BuyBuy» 05 июня 2022, 05:17 «Sergey Pavlov»
smart-lab.ru/blog/808971.php
Резюмируем сжато:
Цена актива в момент t — это x(t), приращение цены — d(t)=x(t)-x(t-1).
Индикатор id(t)=A*d(t-1)+B*d(t-2)
Покупка, когда id(t)>=0, продажа, когда id(t)<0.
Чтобы индикатор работал идеально на 2-х предыдущих барах, д.б.
d(t-1)=A*d(t-2)+B*d(t-3)
d(t-2)=A*d(t-3)+B*d(t-4)
Решение с точностью до множителя существует всегда:
A=d(t-1)*d(t-4)-d(t-2)*d(t-3)
B=d(t-2)*d(t-2)-d(t-1)*d(t-3)
Все это работает на таймфрейме 1 min и ниже.
И добавим однозначности:
Если считать, что d(t) = d(t-0) = x(t-0) — x(t-1),
то d(t-1) = x(t-1) — x(t-2) и т.д.
Скрипт C# на WealthLab
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
} // Execute()
даёт результаты на минутках на 68 днях от 10:00 до 18:44 для сделок без комиссии и проскальзывания
для RI
для Si
PS Если считать, что d(t-i) = x(t) — x(t-i), лучше не станет.
Не спасает и предположение d(t-i) = x(t-i+1)-x(t-i) при i=1,2,3,4.
Не очень меняет картину и смена позиции на Open вместо Close.
Данные RI на один день пришлось убрать, т.к. для переноса через Clipboard их слишком много даже на один день.
PPS для дотошных выложил упаковки данных на
disk.yandex.ru/d/r8cLUoN_nsJp0w
И свое время потратили, и наше, и сомнения посеяли. Без вас, ведь, никто бы и проверять не стал.
WealthLab думает, что это минутки
Здесь смена позиции на Open.
но смена позиции на Close
есть строки Когда нас посещает долларовый мультимиллионер, его просьбу нельзя не уважить.
Политика?
Т.е. по существу насрать не получается?
С уважением
P.S. Я русский и родился в СССР
Незнание математики (ну, или программирования) еще не освобождает от ответственности.
Ну так меня учил Уголовный Кодекс )))
Уважаемый Rostislav Kudryashov!
Выложите в этот свой блог свои тестовые минутки, плз.
А я максимально быстро попытаюсь все приземлить.
С уважением
P.S. Осторожно напоминаю Вам, что и с прошлым моим индикатором у всех было не слава богу (ну понятно, запрограммировать 7-8 арифметических действий было ну очень сложно). И Вы были одним из первых, кто корректно проверил индикатор M1K. Думаю, и сейчас как-то разберемся.