Блог им. Buybuy

Приношу свои глубочайшие извинения уважаемому 3Qu

Данный пост написан в обуздание моего гонора и обозначение технического гения уважаемого 3Qu.

А именно — выражаю всяческое согласие с тезисами:
1. Рынки устроены просто
2. Для формирования индикатора на минутках достаточно 15 баров

Теперь пару слов о причинах моего coming out.

Мне удалось построить стабильный (и весьма прибыльный) кубический индикатор (индикатор = знак кубического полинома от приращений цен).
Который сильно опережает по качеству прогноза будущего приращения цены и (самое главное) по доходности эквити и эквити/ДД линейные и квадратичные индикаторы.
Так вот, мало того, что по финрезультатам этот индикатор кроет линейные и линейно-квадратичные аналоги, как бык — овцу, так он еще и самодостаточен на прошлом 15-20 баров (суб-оптимальные квадратичные индикаторы имеют глубину до 300 баров, линейные — до 8000 баров....)

Результат подтвержден на FX и на крипте.
Будет свободная минутка — проверю результат на часовках Ri и вернусь к дискуссии с уважаемым А. Г.

Что вы думаете по этому поводу, коллеги?

С уважением

 
★5
49 комментариев
ChatGPT4 за минуту выдает 


#property description «RunningBB»
//---
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_plots 4
#property indicator_type1 DRAW_LINE
#property indicator_type2 DRAW_LINE
#property indicator_type3 DRAW_LINE
#property indicator_label1 «RBB middle»
#property indicator_label2 «RBB upper»
#property indicator_label3 «RBB lower»
#property indicator_label4 «RBB ATR»


class RunningMovingAverage
{
private:
int count;
double sum;

public:
RunningMovingAverage(): count(0), sum(0) {}

double AddData(const double& x)
{
if(count == 0)
sum = x;
else
sum += x;
count++;
return GetMovingAverage();
}

double GetMovingAverage()
{
if(count == 0)
return 0;
return sum / count;
}
};
class RunningVariance
{
private:
int count;
double mean;
double M2;

public:
RunningVariance(): count(0), mean(0), M2(0) {}

double AddData(const double& x)
{
count++;
double delta = x — mean;
mean += delta / count;
double delta2 = x — mean;
M2 += delta * delta2;
return GetVariance();
}

double GetVariance()
{
if(count < 2)
return 0;
return M2 / (count — 1);
}

double GetStandardDeviation()
{
return sqrt(GetVariance());
}
};

 

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
delete rv;
delete rma;
}


//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
SetIndexBuffer(0, buffer1);
SetIndexBuffer(1, buffer2);
SetIndexBuffer(2, buffer3);
SetIndexBuffer(3, buffer4);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(2,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(3,PLOT_DRAW_TYPE,DRAW_LINE);

//--- initialize running variance objects
rv = new RunningVariance();
rma = new RunningMovingAverage();

return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total, const int prev_calculated, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& tick_volume[], const long& volume[], const int& spread[])
{
//--- calculate running standard deviation and moving average of the close prices
for(int i = prev_calculated; i < rates_total; i++)
{
rv.AddData(close[i]);
double stdev = rv.GetStandardDeviation();
rma.AddData(close[i]);
double ma = rma.GetMovingAverage();

buffer1[i] = ma + 2.0 * stdev;
buffer2[i] = ma;
buffer3[i] = ma — 2.0 * stdev;
buffer4[i] = buffer1[i] — buffer3[i];
}

return(rates_total);
}

//+------------------------------------------------------------------+
//| Indicator buffers |
//+------------------------------------------------------------------+
double buffer1[];
double buffer2[];
double buffer3[];
double buffer4[];
RunningVariance* rv;
RunningMovingAverage* rma;

avatar
Nurlan, и как, работает?
avatar
Vkt, да. На эффективных рынках лучше всего.
avatar
Nurlan, 

У меня такая картинка получилась:



 Не понимаю как оно работает.


avatar
Vkt, как и боллинджер
Дмитрий Ермаков, так они на текущей цене в точку сходятся, а если ТФ поменять, то наоборот разлетаются. Не рабочий индикатор ИМХО
avatar
Vkt, кто его знает как это работает
avatar
Vkt, У меня по другому работает. Это целый индикатор для мт5 его не надо переделывать. 
avatar
Nurlan, а я его в МТ4 засунул...
Только синтаксические ошибки исправил, на которые компилятор ругался.

avatar
не переживайте, скоро из бана выходит маэстро, он вас и рассудит.
avatar
dim800, о как!

Жду с нетерпением)

А я тут недавно теоремку доказал.
Если не усложнять — анализ паттернов на долгосроке всегда проигрывает анализу корреляций. Так что маэстро — фтоппку )))

С уважением
Мальчик buybuy, и в каких же предположениях доказали? 
Как-то уже сама формулировка мне странна. Как проигрывает, в чем проигрывает, непонятно. 
avatar
SergeyJu, ну это в 2-х словах не описать, Сергей Юрьевич

Если вкратце — анализ паттернов — это наука вроде arrangement of hyperplanes (на русском термина нет).
С корреляциями все понятно вроде.

С уважением

P.S. Ну и в доказательной  части все не так просто (не хотелось устраивать долгую дискуссию). Если точнее — системы на основе анализа паттернов систематически проигрывают системам, основанным на анализе корреляций, в исключительных случаях (множество малой меры) возможно превышение +10% (число условное, но это не 1.5, не 2 и не 3)

С уважением
Мальчик buybuy, хитро все у Вас выходит. 
Вот кажите, если цена выше скользяшки, это паттерн или не паттерн по Вашему? 
По мне так это бинарный признак.
И под корреляцией Вы подразумеваете автокорреляцию или что-то многомерное. 
avatar
SergeyJu, нет, не паттерн

Паттерн — это совокупность последовательных баров, связанных линейными неравенствами.
Если цена выше скользяшки — это обычный линейный индикатор (знак линейной комбинации приращений цен).

Да. Под корреляцией я подразумеваю как обычную АКФ, так и нечто многомерное.

С уважением
Мальчик buybuy, это же очевидные вещи. Может, он пошутил
Дмитрий Ермаков, какие из них?

1. Мой coming out?
2. Существование хорошего кубического индикатора?

С уважением
Мальчик buybuy, я про первичность движения.
Дмитрий Ермаков, сорри — вообще не понимаю, про что это

Так то я больше по приращениям цен

С уважением
Мальчик buybuy, что тут понимать. Одна шестерня толкает другую. Проехали
Данный пост написан в обуздание моего гонора и обозначение технического гения уважаемого 3Qu.
я всегда знал, что  3ку один из самых тута умных....

а зачем цену предсказывать?.. достаточно иметь положительное математическое ожидание и эквити прет залюбуешься...
п.с.
Если Вы, Мальчишка, не ошиблися со своим кубическим конем… то поздравляю…
avatar
Не забываем, что МальчикБуйБуй нашампурил овер 900 телочек. И на пенсии останавливаться на этой цифре не собирается)
avatar
T-800, ну ты не вполне прав, братэлло...

После 4-го брака я ощутимо снизил темп
Стали привлекать традиционные ценности
М.б. вообще завяжу со сторонними телками...
Уоррен Битти же смог — а мне до него, как до героя-любовника, примерно как современной России до коммунизма...

С уважением
Как скачать?
avatar
Заскринил бы, чего там индюк на экран выдает.
avatar
Matrica, а чего скринить то?

Плюс, минус, опять плюс, опять минус...

А на график клеить сигналы я не умею

Подскажешь, как — могу попробовать исполнить

С уважением
Мальчик buybuy, типа вот так



avatar
Beach Bunny, красивое...

А как это делать то?

С уважением
И на каких таймфреймах работает данный кубический индикатор?
avatar
arrangement of hyperplanes (на русском термина нет).


Типа Ж… есть, а слова нет.

С. А. Юзвинский
«Алгебры Орлика–Соломона в алгебре и топологии»
Обзор посвящен алгебрам Орлика–Соломона конфигураций гиперплоскостей.
На english:
This is a survey of Orlik–Solomon algebras of hyperplane arrangements.
avatar
Теперь пару слов о причинах моего coming out.

Ка́минг-а́ут, также ка́мин-а́ут, ка́минг а́ут и камина́ут (от англ. сoming out of the closet, обычно сокращаемого до сoming out) — процесс открытого и добровольного признания человеком своей принадлежности к сексуальному или гендерному меньшинству, либо результат такого процесса.
Взяли первые три момента распределения, сделали из них один линейный(в том смысле что эти факторы входят как линейная сумма) индикатор, он в принципе конечно работает, но очень слабо. По большей части curve fitting.
avatar
Не погружён в суть дискуссии, но когда человек без иронии публично признаёт свою неправоту — моё уважение!
Василий Баранов, да просто хитрый способ пропиарить свой индикатор
avatar
Даешь индикатор 4-го порядка, для которого будет хватать одного бара! )
avatar
Сложно сказать. Я не смог получить улучшение результата путем повышения степени полинома. Без конкретики вообще что либо сказать невозможно. Но даже если есть улучшение, все равно без секретного ингредиента на минутках с учетом костов будут убытки
avatar
Думаем, что коэффициенты этого кубического индикатора — результат подгонки. Со всеми вытекающими для иных участков, иных инструментов.
avatar
svgr, со стороны может показаться, что тут что-то интересное, похоже на споры инженеров. а если вникать, то это просто какие-то фокусы. просто это сильно выглядит, когда всякие волны, символы и стрелочки. а суть всегда одна: когда смотрим на линию цены, мы видим логику. а когда смотрим на индикаторы, видим магию статистики
avatar
Damian Ershov, ну, я понимаю о чём тут хотели сказать. Попытки открыть волшебный шаблон, который ухватит внутреннюю суть колебаний цены.
Однако нет никаких причин ему быть кубическим или каким-либо ещё. Получится просто переформулировка 'скользящей средней' в новых терминах с другим поведением. Которое преимущества всё равно не даст.
Нужна модель, отражающая резкие всплески цены в какую-то сторону. После которых торгующие 'возврат к среднему' улетают в глубокие минуса. Только такая модель может что-то дать.
avatar
svgr, на самом деле логика есть — кубический индикатор быстрее реагрирует на изменение цены, а значит теоретически может более точно описать прибыльный паттерн.
Но, повторю, без пруфов или хотя бы деталей реализации это всего лишь гипотеза. Которая к меня подтверждения не нашла.
avatar
Daniil Lazarev, так и должно быть. За счёт нелинейности происходит перераспределение результатов сделок. Становится больше выигрывающих подряд, но больше по размеру и проигрывающие, которые урежаются. Как при применении Мартингейла — приблизительная аналогия.
А потом предъявляется выигрывающий участок торговли (благо что легко это сделать) и говорится, что в итоге что-то улучшилось.
avatar
svgr, 
мысль-то верная...
выделение, точки нейтральности
плюс, приоритет направления
плюс, разница тейк/лосс
вполне достаточно?)))
avatar
᠌ ᠌᠌, 
есть некоторые понятия, табуированные в интеллигентном мужском сообществе. непонимание и нарушение табу может стремительно и навсегда забросить индивидуума в категорию «нерукопожатых». впрочем мальчику бубую это не грозит.
что, сказать можно… поздравления!
прошлую формулу, вы показали
очень хотелось бы, увидеть данную
avatar

теги блога Мальчик buybuy

....все тэги



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