Блог им. Buybuy

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

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

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

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

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

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

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

С уважением

 
4.4К | ★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

Читайте на SMART-LAB:
Фото
📈 ̶Д̶е̶н̶ь̶г̶и̶ Рынки любят счет
В ноябре объем торгов фьючерсами на цифровые активы достиг исторического максимума — почти 49 млрд ₽ . Рост интереса связан с волатильностью на...
Фото
История фондового рынка России
История фондового рынка в России начинается с момента основания Петром I Санкт-Петербургской биржи в 1703 году. С работой бирж Петр I познакомился...
Акции Займера — топ-1 по ожидаемой дивдоходности в 2026 году
Аналитики ВТБ Мои Инвестиции выделили акции Займера как самые привлекательные по ожидаемой дивидендной доходности в 2026 году. 📈 По оценкам...

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

....все тэги



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