Элитные показатели :) - страница 157

 

Это будет работать

Вы можете использовать что-то вроде if (previousNumberOfBars != Bars) или if (volume[0]==1), но использование объема чувствительно (оставляет гораздо больше места для ошибки, и почти наверняка при первом выполнении он не рассчитает все необходимые бары, поскольку объем уже будет > 1).

В любом случае, я бы рекомендовал инвертировать первые две строки цикла, чтобы получилось что-то вроде этого:

if(lastbar != Time[0])

{

for(int i=limit; i>=0; i--)

{[/php]You need to check that condition only once

regards

mladen

Snowski:
Quick coding question:

If I want an indicator to start its calculation on the open of a new bar, how can I code this?

I now have this - just an example, but I doubt it's correct:

[php]

datetime lastbar;

double buffer_a[];

double buffer_b[];

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int bars_counted = IndicatorCounted();

if(bars_counted < 0)

{

return(1);

}

bars_counted--;

int limit = Bars - bars_counted;

if(limit>BarsToLoad && BarsToLoad>0)

{

limit = BarsToLoad;

}

for(int i=limit; i>=0; i--)

{

if(lastbar != Time[0])

{

buffer_a = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i);

buffer_b = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);

//LONG ARROW

if(buffer_a > buffer_b)

{

ExtMapBuffer1 = Open - distance;

}

//SHORT ARROW

if(buffer_a < buffer_b)

{

ExtMapBuffer2 = Open + distance;

}

lastbar = Time[0];

}

}

//----

return(0);

}

//+------------------------------------------------------------------+
 

Да, конечно, поменяйте местами циклы... намного лучше.

Какой метод вы считаете наиболее точным, if(previousNumberOfBars != Bars) или if(lastbar != Time[0])?

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

Спасибо большое mladen, большая помощь для моих довольно бедных навыков инди-кодирования...

Будь здоров,

Сан.

 
chris1010:
Mladen или Mr Tools могли бы вы добавить всплывающее окно и оповещение по электронной почте к этому индикатору, пожалуйста? Мне кажется, что когда все линии в окне индикатора находятся вместе в одно и то же время в самом верху окна индикатора или в самом его низу, определяется хорошая точка покупки или продажи. Спасибо за любую помощь. Крис

Вот, Крис, поскольку рынок сейчас закрыт, я не смог протестировать оповещение в реальном времени, но получил оповещение на 1-минутном графике, так что, надеюсь, все будет в порядке. Оповещение должно срабатывать, когда wso и wro находятся на выбранных пользователем уровнях покупки или продажи. И согласен с вами, этот индикатор, когда обе линии находятся либо на максимуме, либо на минимуме, кажется хорошей возможностью для продажи и покупки.

Файлы:
 

Мистер Инструменты. Спасибо. Это здорово, когда мне помогают великие программисты.

 

Сан

Честно говоря, я не знаю, какой из них посоветовать.

Bars - это своего рода внутренняя переменная metatrader текущего графика, а Time[0] - элемент структуры массива, описывающий все имеющиеся в его истории бары для текущего графика. Я предполагаю, что сначала Bars обновляется, чтобы отразить новый размер массива, а затем вновь добавленная структура в массив обновляется данными (время, "объем" и цены) Но если они делают это "последовательным образом" (не позволяя другим потокам выполняться, пока не закончится выполнение кода - а я почти на 100% уверен, что так оно и есть - насколько я понял, всегда есть отдельный поток, который загружает данные и управляет всем тем, о чем мы говорим, и все мы заметили "паузу" в выполнении, когда мы открываем новый график и больше данных загружается и добавляется в массивы, переменные и графики, которые мы затем используем из кода metatrader) тогда обе переменные будут видны пользователю одновременно ... Время доступа должно быть одинаковым ... Так что : все одинаково

с уважением

mladen

Snowski:
Да, конечно, переключите контуры... намного лучше.

Какой метод вы считаете наиболее точным, if(previousNumberOfBars != Bars) или if(lastbar != Time[0])?

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

Спасибо большое mladen, большая помощь для моих довольно бедных навыков инди-кодирования...

Спасибо,

Сан.
 
mladen:

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

Желаю всем отличных выходных

пожелания

mladen

Привет, Младен,

Я рад слышать, что все хорошо.

когда у вас будет возможность, я выложил 2 индикатора, MA от RSX и Triangular MA abands.

Можно ли применить Triangular MA abands к MA RSX?

Спасибо!

Fudo

Фудомио:

mladen,

можно ли совместить MA of RSX (или даже просто RSX, если MA of RSX невозможна) с Triangular MA abands?

Спасибо
 

Спасибо mladen, отличное объяснение, никогда не смотрел на это с такой стороны (потоки в MT4)... снова чему-то научился.

Остаюсь с текущей настройкой (Time[0]).

Будь здоров, Сан.

 

...

Fudo

Вот, пожалуйста.

Сделал некоторые изменения (фактически новый индикатор, но это то, что я вывел как идею) Проверьте, если это то, что вы имели в виду.

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

Что касается того, к чему он применяется: вы можете выбрать - если вы установите TmaApplyToto 0, он будет применяться к RSX, в противном случае он будет применяться к сигнальной линии (MA от RSX).
с уважением

mladen

Fudomyo:
привет младен,

Я рад слышать, что все хорошо

когда у вас будет возможность, я выложил 2 индикатора, MA от RSX и Triangular MA abands.

Можно ли применить Triangular MA abands к MA RSX?

Спасибо!

Fudo
 

Интерполировать добавление

hi mladen

mtf скользящее среднее

mtf стогактический

интерполировать добавление

спасибо

Файлы:
 

casaliss,

Эти (и еще несколько ) вы можете найти в этой теме: https: //www.mql5.com/en/forum/178741.

У них нет опции, но эти индикаторы действительно применяют линейную интерполяцию.

с уважением

mladen

casaliss:
привет младен

mtf movingaverage

mtf stohactic

интерполировать добавление

спасибо