Торговые стратегии на основе цифровых фильтров - страница 71

 
mrtools:
Полагаю, поскольку это фальшивая стратегия, то полагаю, что эта торговля не происходит сейчас, полагаю, что мы находимся в "Сумеречной зоне" .

Если вы используете SSA для этой стратегии, а я думаю, что это так, то, скорее всего, перерисован не только график цикла, но и сигнал на продажу. Не обязательно, но вероятность этого велика.

Так что SSA, возможно, сильный денуайзер и детрендер, но использование неказуальной версии в реальном времени ограничено, а улучшенные результаты - это комбинация влияния перекраски и денуайза/детренда.

Лично мне все равно, так как я использую казуальные версии SSA и HP фильтра.

Кшиштоф

 

вне образца

Здравствуйте, Ричкап,

Вы можете показать какие-либо правильные результаты вне выборки из вашей системы MESA?

С моей стороны я могу получить результаты от стратегий со следующими входными данными

циклы, измеренные способом Элерса

циклы, измеренные способом NOXA

циклы, измеренные Goertzel

SN, измеренный способом Элерса

SN измеренный CB способом с бинами сигналов

это основные компоненты, конечно, можно добавить к этому все, что угодно.

например, Jurik MA, VOL или RSX, которые у меня есть в оригинальных версиях.

Что касается проблемы перерисовки Goertzel, то он перерисовывается не только из-за SSA, но и из-за того, как он разработан, т.е. каждый новый бар он перерисовывает оригинальную кривую цикла, которая отличается каждый бар из-за новой информации о баре.

Я перепрограммировал его на полную версию без перерисовки, но еще не тестировал в реальном времени, поэтому не знаю, как он работает.

В автономном режиме все в порядке

Кшиштоф

Файлы:
scr1.jpg  81 kb
scr2.jpg  90 kb
 
fajst_k:
Привет Richcap,

Итак, можете ли вы показать какие-либо правильные результаты вне выборки из вашей системы MESA?

С моей стороны я могу получить результаты от стратегий со следующими входными данными

циклы, измеренные способом Элерса

циклы, измеренные способом NOXA

циклы, измеренные Goertzel

SN, измеренный способом Элерса

SN измеренный CB способом с бинами сигналов

это основные компоненты, конечно, можно добавить к этому все что угодно

например, Jurik MA, VOL или RSX, которые у меня есть в оригинальных версиях.

Что касается проблемы перерисовки Goertzel, то он перерисовывается не только из-за SSA, но и из-за того, как он разработан, т.е. каждый новый бар он перерисовывает оригинальную кривую цикла, которая отличается каждый бар из-за новой информации о баре.

Я перепрограммировал его на полную версию без перерисовки, но еще не тестировал в реальном времени, поэтому не знаю, как он работает.

В автономном режиме все в порядке

Кшиштоф

Что означает ваше сообщение, Кшиштоф? Вы что-то продаете?

Я ждал чего-то ценного, но ничего не увидел.

Я не прошу вас делиться тоннами кода (как это сделал я), я только хотел бы, чтобы вы дали нам одну хорошую идею.

Вы действительно думаете, что вы заплатили свои взносы своим постом #582?

Что это за заявление 'PicBuf=i*MathPow(10,-1*digs);'?

Зачем вам нужно MathPow(10,-1*digs) PicBuf и что, черт возьми, такое PicBuf?

Если вы посмотрите на код, который я написал только для подсчета и маркировки пиков в рамках анализа MESA, вы сможете понять, почему я вами недоволен

/*

* This function fills an array with 'amplitude' and 'frequency' (0 < f < Fn=0.5, Nyquist normalized freq) values

* of the peaks (and following valleys) under f_max and above f_min frequency by finding local maxima

* with a bisection equivalent algorithm.

* It returns the number of calculated peaks

*/

int peaksVector (

double& peaks[], // this vector must be dimensioned to 4*degree

double f_max, // the frequency under which to search peaks (f_max < Fn)

double f_min, // the frequency above which to search peaks (f_max > 0 )

double& aa[], // autoregression coefficients

int degree) // order of autoregression

{

double frequency, Qn, delta_f, delta_f2;

double s1, s2;

double f1, f2, fm, d1, d2, dm;

double tolerance=0.01; // zero (maximum) finding tolerance (we don't need a very high precision

double fine_stepping = 1.0 / 10.0; // 2nd level stepping for local minimum/maximum search

int count=0, i;

bool growing=true;

// check for Nyquist

if (f_max > 0.5) f_max=0.5;

// First evaluate Qn to set proper resolution delta_f... (see (II-70) formula in Burg's PhD thesis)

/*

Qn=1.0;

for (i=0; i<degree; i++)

{

Qn=Qn*(1.0+MathAbs(aa))/(1.0-MathAbs(aa));

}*/

Qn=50; // above formula gives too high Qn, to be verified

delta_f=1.0/(degree*Qn);

// ...then starts to find peaks (and valleys)

s1=spectrumValue(f_min+delta_f,aa,degree);

peaks[0]= s1; // include first point ...

peaks[1]= f_min+delta_f; // ... and frequency

i=2;

d1=spectrumValue(f_min+delta_f*(1.0+fine_stepping),aa,degree) - s1 ;

if (d1 < 0)

growing=false; // set initial slope direcion

for (frequency=f_min+2*delta_f; frequency = f_max && !growing); frequency+=delta_f)

{

s2=spectrumValue (frequency,aa,degree);

if (s2>s1 && growing)

{

s1=s2; // updates new maximum

}

else if (s2<=s1 && growing) // found an interval in which there is a local maximum??

{

// search for a local maximum in the interval [ frequency-delta_f,frequency + delta_f ]

f1=frequency-2.0*delta_f;

f2=frequency;

delta_f2=delta_f*fine_stepping; // delta_f2 (adaptive) is used to evaluate funcion's slope

d1=spectrumValue(f1+delta_f2,aa,degree) - spectrumValue(f1,aa,degree);

d2=spectrumValue(f2+delta_f2,aa,degree) - spectrumValue(f2,aa,degree);

while (true)

{

// try to find maximum value by evaluating central point's slope

fm = (f1+f2)/2.0;

dm=spectrumValue(fm+delta_f2,aa,degree) - spectrumValue(fm,aa,degree);

if ( MathAbs(dm) < tolerance)

break;

if (dm < 0.0) f2=fm;

else f1=fm;

delta_f2=(f2-f1)*fine_stepping; // adapt delta_f2

d1=spectrumValue(f1+delta_f2,aa,degree) - spectrumValue(f1,aa,degree);

d2=spectrumValue(f2+delta_f2,aa,degree) - spectrumValue(f2,aa,degree);

}

peaks= spectrumValue (fm,aa,degree);

peaks=fm;

i+=2;

count++; // increments number of peaks

growing=false; // after a peak there must be a valley, so the funcion starts to decrease

}

else if (s2<s1 && !growing)

{

s1=s2; // updates new minimum

}

else if (s2>=s1 && !growing) // found an interval in which there is a local minimum??

{

// search for a local maximum in the interval [ frequency-delta_f,frequency + delta_f ]

f1=frequency-2.0*delta_f;

f2=frequency;

delta_f2=delta_f*fine_stepping; // delta_f2 (adaptive) is used to evaluate funcion's slope

d1=spectrumValue(f1+delta_f2,aa,degree) - spectrumValue(f1,aa,degree);

d2=spectrumValue(f2+delta_f2,aa,degree) - spectrumValue(f2,aa,degree);

while (true)

{

// try to find maximum value by evaluating central point's slope

fm = (f1+f2)/2.0;

dm=spectrumValue(fm+delta_f2,aa,degree) - spectrumValue(fm,aa,degree);

if ( MathAbs(dm) < tolerance)

break;

if (dm > 0.0) f2=fm;

else f1=fm;

delta_f2=(f2-f1)*fine_stepping; // adapt delta_f2

d1=spectrumValue(f1+delta_f2,aa,degree) - spectrumValue(f1,aa,degree);

d2=spectrumValue(f2+delta_f2,aa,degree) - spectrumValue(f2,aa,degree);

}

peaks= spectrumValue (fm,aa,degree);

peaks=fm;

i+=2;

growing=true;

}

}

return(count);

}
 

???

Странный ответ. Честно говоря, я вообще не смотрел на ваш код, так как я использую только NS.

Я также не профессиональный C++/MQL кодер, много лет я работал с тестированием программного обеспечения, так что я думаю, что я довольно легко улавливаю ошибки. Я уже говорил вам, что вы программист от Бога, так как у вас хватило терпения все это разработать.

В любом случае, я просто предлагаю вам обмен информацией на уровне результатов стратегии с четко определенными входными данными, это было намерением этого письма. Если вы заинтересованы, дайте мне знать.

Кшиштоф

 

хорошая идея

Я думаю, это просто хорошая идея - создать разные стратегии с разными входами, возможно, использовать генетический оптимизатор для выбора правильной комбинации входов и сравнить результаты.

Кшиштоф

 

чем я смотрел на ваш код. Очевидно, что ваш метод поиска важных пиков гораздо более продвинутый, чем в Goertzel.

// находим важные пики, измеряя высоту и остроту каждого пика и получая число "важности"

// для измерения остроты мы рассматриваем линейные линии между пиками и долинами и измеряем углы

// чем меньше угол, тем острее пик. Важность каждого пика определяется высотой/углом.

В Goertzel пики находят и сортируют без дополнительного тестирования, после чего заданное пользователем количество пиков используется для обратного преобразования.

Поэтому разрешение вашего MESA должно быть намного лучше, чем у Goertzel. Мне просто интересно, будут ли результаты простой циклической стратегии, основанной на циклах MESA, лучше. К сожалению, в данный момент нет возможности сравнить их из-за проблемы с перерисовкой.

Но при желании можно сравнить с циклами Элерса на основе откликов банковского фильтра.

Кшиштоф

 

фальшивая торговая стратегия?

Не нужно никого ни в чем убеждать, просто я сам!!!!!!!!

 

привет, ребята,

Я вижу, что тема умерла, но может быть я найду кого-нибудь, кто мне поможет...

У меня есть goertzel_cycle_v1_1 и я застрял на этом:

1. я создал индикатор синусоиды, чтобы посмотреть, как работает goertzel. код:

------------------------------------

int start()

{

int counted_bars=IndicatorCounted();

int i=Bars-counted_bars-1;

//----

while (i>=0)

{

indybuffer= MathSin(2*PI*i/20);

i--;

}

//----

return(0);

-------------------------------

2. я заменил в коде гертцеля "close" на индикатор "sinewave".

3. результат: чистый цикл из 20 баров -ок. но амплитуда 149.98, когда индикатор синуса находится между -1 и 1, как и ожидалось.

squareamp - "false", я перепробовал все, но понятия не имею, что не так.

любая помощь будет очень признательна

 

Индикатор FTLM_KG и STLM

forex_for_life:
Richcap,

Во-первых, я хотел бы поблагодарить вас за то, что вы поделились тем, что создали. Я не понимал, что именно вы разместили, пока не начал этот комментарий. Именно этот вид исследований и разработок заставил эту тему пылать огнем прогресса, сжигая все отбросы, которые являются ежедневной мирской болтовней на этом и большинстве других форумов. Это действительно очень мощно. Те, кто следил за этой темой, могли бы с удвоенной силой оценить то, что вы принесли на лабораторный стол.

Я не думаю, что Кшиштоф пытался быть злым в своем ответе. После того, как я прочитал его несколько раз, кажется, что пара слов и структур предложений просто создали такое впечатление. Пожалуйста, поправьте меня, если я ошибаюсь, Кшиштоф.

Я ни в коем случае не являюсь авторитетом в области DSP. Я часто посещаю эту тему, как ученик, больше, чем любую другую. Тем не менее, я узнал несколько вещей, которые, как мне кажется, могут быть полезны для вас в ваших поисках. Возможно, вы уже знаете все, чем я с вами делюсь, и если это действительно так, пожалуйста, не воспринимайте это как покровительство.

1. MESA был определен как один из менее идеальных методов спектрального анализа из-за его неспособности идентифицировать частоты в сценариях данных с уровнем шума выше среднего (а именно такими являются ценовые данные с финансовых рынков). Алгоритм Гертцеля, с другой стороны, может быть лучшим выбором. Пожалуйста, обратитесь к "странице газеты" Meyer's Analytics, статья под названием "Mesa против GDF".

2. Дальнейшее обсуждение вышеупомянутой темы (включая индикаторы) ведется в этой теме, начиная с сообщения 225.

3. Сергей Ильюхин, создатель программного обеспечения DFG, создал нечто очень похожее на индикатор, который вы разместили (что, я думаю, означает, что вы на правильном пути ), в комплекте с библиотекой и всем остальным, размещенным здесь NewDigital. Я использовал его в прошлом. Очень хорошо, ИМХО. Может быть, стоит посмотреть.

4. Кшиштоф был точен в своей оценке нити CB. Я знаю пару людей, которые сотрудничали с CB, и они подтвердили, что он делится только фотографиями и теориями, ничего конкретного. Тем не менее, те, кто в этой теме, как вы, clahn04, Simba, dvarrin и fajst_k, являются общительным типом и готовы открыто обмениваться мыслями и полученными продуктами. Пожалуйста, не позволяйте этому потоку прогресса остановиться, иначе в этой теме наступит очередное затишье в движении вперед.

У меня есть установка, которую я использую, и она имеет только 2 индикатора: неоптимизированный FTLM_KG и STLM в виде гистограммы, оба сглажены через ценовой прокси Jurik, чтобы удалить некоторые из шумов, присутствующих в результате того, что эти два индикатора не настроены на пару и t.f. Ничего удивительного и в зависимости от настроек могут отставать на бар время от времени, но достаточно эффективны, пока я не смогу переварить больше информации и вывести что-то лучшее т.е. легко настраиваемые индикаторы FTLM и STLM. Скриншот прилагается.

С наилучшими пожеланиями,

F_F_L

Здравствуйте, forex_for_life,

спасибо за вашу информацию. Ваши оба Инди со страницы 49 этой темы FLM_KG и STLM выглядят очень красиво. Не могли бы вы выложить эти два индикатора? Это именно то, что я ищу. Заранее спасибо и привет из Мюнхена.

Джим Кларк

 
SIMBA:
По моему опыту, одним из лучших не пользовательских индикаторов для определения тренда является STLM2. Вы можете проверить тренд на h4 и h1, или D1 и H4, и когда оба совпадают, посмотреть на более коротких таймфреймах, чтобы спровоцировать вход с тем, что вам подходит.

Я опубликовал mtf stlm2 в теме mtf, перепощу здесь, чтобы вы могли проверить его, просто заменив STLM2 на FTLM или FTLM_KG, вы получите возможность работы на нескольких таймфреймах для этих фильтров. Кроме того, мы можем просто изменить Ea, чтобы иметь возможность тестировать большинство стратегий, включая mtf stlm2.

Я бы предложил создать меню стратегий, а затем приступить к их историческому тестированию с помощью стандартных цифровых фильтров, а затем протестировать их, по крайней мере, наиболее перспективные, на демо с помощью пользовательских цифровых фильтров... Есть желающие?

Я скачал индикатор #MFT_STLM2_v2, выложенный великим Simba, но он не работает у меня на моей платформе.

Эта версия просрочена или что?

Я ищу STLM MTF для определения тренда.

Заранее спасибо друзья.

Пожалуйста.