Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это будет работать
Вы можете использовать что-то вроде if (previousNumberOfBars != Bars) или if (volume[0]==1), но использование объема чувствительно (оставляет гораздо больше места для ошибки, и почти наверняка при первом выполнении он не рассчитает все необходимые бары, поскольку объем уже будет > 1).
В любом случае, я бы рекомендовал инвертировать первые две строки цикла, чтобы получилось что-то вроде этого:
{
for(int i=limit; i>=0; i--)
{[/php]You need to check that condition only once
regards
mladen
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, большая помощь для моих довольно бедных навыков инди-кодирования...
Будь здоров,
Сан.
Mladen или Mr Tools могли бы вы добавить всплывающее окно и оповещение по электронной почте к этому индикатору, пожалуйста? Мне кажется, что когда все линии в окне индикатора находятся вместе в одно и то же время в самом верху окна индикатора или в самом его низу, определяется хорошая точка покупки или продажи. Спасибо за любую помощь. Крис
Вот, Крис, поскольку рынок сейчас закрыт, я не смог протестировать оповещение в реальном времени, но получил оповещение на 1-минутном графике, так что, надеюсь, все будет в порядке. Оповещение должно срабатывать, когда wso и wro находятся на выбранных пользователем уровнях покупки или продажи. И согласен с вами, этот индикатор, когда обе линии находятся либо на максимуме, либо на минимуме, кажется хорошей возможностью для продажи и покупки.
Мистер Инструменты. Спасибо. Это здорово, когда мне помогают великие программисты.
Сан
Честно говоря, я не знаю, какой из них посоветовать.
Bars - это своего рода внутренняя переменная metatrader текущего графика, а Time[0] - элемент структуры массива, описывающий все имеющиеся в его истории бары для текущего графика. Я предполагаю, что сначала Bars обновляется, чтобы отразить новый размер массива, а затем вновь добавленная структура в массив обновляется данными (время, "объем" и цены) Но если они делают это "последовательным образом" (не позволяя другим потокам выполняться, пока не закончится выполнение кода - а я почти на 100% уверен, что так оно и есть - насколько я понял, всегда есть отдельный поток, который загружает данные и управляет всем тем, о чем мы говорим, и все мы заметили "паузу" в выполнении, когда мы открываем новый график и больше данных загружается и добавляется в массивы, переменные и графики, которые мы затем используем из кода metatrader) тогда обе переменные будут видны пользователю одновременно ... Время доступа должно быть одинаковым ... Так что : все одинаково
с уважением
mladen
Да, конечно, переключите контуры... намного лучше.
Какой метод вы считаете наиболее точным, if(previousNumberOfBars != Bars) или if(lastbar != Time[0])?
Я лично не вижу очевидной разницы на первый взгляд, но могу ошибаться. Согласен насчет опции Volume, не очень хорошо для индикатора, но в советнике может работать нормально.
Спасибо большое 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
привет младен,
Я рад слышать, что все хорошо
когда у вас будет возможность, я выложил 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
привет младен
mtf movingaverage
mtf stohactic
интерполировать добавление
спасибо