РЕСПЕКТ! От ДУШИ!...В настройках отдельно включайте/выключайте алерт на нижний/верхний фракталы.
РЕСПЕКТ! От ДУШИ!...В настройках отдельно включайте/выключайте алерт на нижний/верхний фракталы.
насколько я понял, синяя стрелка - основная и красную мы ставим только после ее появления. Решение простое - на баре i появилась синяя стрелка, на этом же баре ставим красную, а на баре i+1 в буфере который отвечает за красных ставим EMPTY_VALUE.Алексей, если вас не затруднит, помогите пожалуйста с индикатором. Не могу, стрелку правильно выставить.
Посмотреть вложение 545782
На картинке: Линия МА с периодом 20. Нормализована до 3 знаков. (ступенчатая bufer_MA[] );
На каждой ступеньке вверх, выставляется синяя стрелка (код: 159 arrow_up[]);
Количество непрерывных ступеней, записывается в счётчик. ( count_up[] );
Использовал 4 буфера: 1.Линия МА. 2. Синяя стрелка. 3. Счётчик ступеней. 4. Для красной стрелки.
Нужно выставить красную стрелку (круг код: 161) всегда на синюю стрелку,
при таких условиях:
При появлении первой синей стрелки - (это первая ступень вверх) выставить Красную стрелку на синюю стрелку.
При появлении второй синей стрелки - (это вторая ступень вверх) выставить Красную стрелку на синюю новую-верхнюю стрелку. При этом удалить предыдущую Красную стрелку, с нижн(ей-их) ступеней.
При появлении третей синей стрелки - (это третья ступень вверх) выставить Красную стрелку на синюю новую-верхнюю стрелку. При этом удалить предыдущую Красную стрелку, с нижн(ей-их) ступеней.
и т.д.
То есть, если синих стрелок больше одной, и счётчик ступеней больше нуля, то переставить Красную стрелу, на новую (верхнюю) синюю стрелку.
Делал так:
PHP:#property strict #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 clrSteelBlue #property indicator_color2 clrDodgerBlue #property indicator_color3 clrNONE #property indicator_color4 clrRed input int period_MA = 20; input int Normalize = 3; double bufer_MA[]; double arrow_up[]; double count_up[]; double arr_verh[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0, bufer_MA); SetIndexStyle(0, DRAW_LINE); // Синяя линия SetIndexBuffer(1, arrow_up); SetIndexStyle(1, DRAW_ARROW, 0, 2); SetIndexArrow(1, 159); // Синяя стрелка SetIndexBuffer(2, count_up); SetIndexStyle(2, DRAW_NONE); // Счётчик ступеней SetIndexBuffer(3, arr_verh); SetIndexStyle(3, DRAW_ARROW, 0, 1); SetIndexArrow(3, 161); // Для красной стрелки 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[]) { int limit = rates_total - prev_calculated; if (limit > 1)limit -= 1; // Ступеньки из линии МА for (int i = 0; i < limit; i++) bufer_MA[i] = NormalizeDouble(iMA(Symbol(), 0, period_MA, 0, 0, 0, i), Normalize); // Счётчик количества непрерывных ступеней int continuous_steps_up = 0; // Определить сколько раз, у первой линии, было непрерывно ступеней вверх. for (int i = limit - 1; i >= 0; i--){ //+----------------------------------------------------------------------------------------------------+ if (i < rates_total - 1 && bufer_MA[i] > bufer_MA[i + 1] && bufer_MA[i] != bufer_MA[i + 1]){ continuous_steps_up++; arrow_up[i] = bufer_MA[i]; } //+----------------------------------------------------------------------------------------------------+ //| счётчик ступеней //+----------------------------------------------------------------------------------------------------+ if( bufer_MA[i] < bufer_MA[i + 1]){ continuous_steps_up = 0; } count_up[i] = continuous_steps_up; //+----------------------------------------------------------------------------------------------------+ } return (rates_total); } /////////////////////////////////////////////////
Это я так делал..
Не могли бы вы, мне помочь, прикрутить красную стрелку, так как на картинках?
Картинки:
.......разобрался)))))))))Поставил на золото....ступенек нет....отрисовка как обычная машка... В чём кроется причина? Не поможете?
Посмотреть вложение 545833
Кол-во знаков после запятой. Поставьте "0"Поставил на золото....ступенек нет....отрисовка как обычная машка... В чём кроется причина? Не поможете?
Посмотреть вложение 545833
Благодарю! Так и сделалКол-во знаков после запятой. Поставьте "0"
Похоже Вы не правильно интерпретируете слова АлексеяНо вы почему то, решили Клоузд-ом добить!
Чего уж непонятного в слове Клоузд, я не понимаю(
А что же в нём понятного та??
Попробую запустить какой-нибудь немного платный проект. Получится или нет - хз, но попытка не пытка. Но и тут еще могу появляться иногда.
В тестере очень медленно работает. Можете что нибудь с этим сделать? У меня не получилось, меняю limit стрелки пропадают.
В тестере очень медленно работает. Можете что нибудь с этим сделать? У меня не получилось, меняю limit стрелки пропадают.
ох, грехи мои тяжкие...
Скажите, вот за каким ухом вам нужно играть с округлением? Не говорите, что вы ничего не слышали о медианах.
Описываю алгоритм действий по шагам.
1. пишите Макару в личку что-то типа - у тебя есть аккаунт на MQL?
2. Ок, переходите во фриланс и даете ему такое ТЗ. Пусть мы задаем какой-то максимальный период = N. Нам нужно найти все медианы цены по нечетным периодам не превосходящим N. То есть 1, 3, 5, 7 и т.д. Потом среди этих медиан найти их медиану. Так, стоп - уточнение N должно быть нечетным, т.е. иметь вид 2*n+1. Но и количество полученных медиан должно быть нечетным. Значит, период должен быть задан так: 4*N+3. Где N - входной параметр. Цена вопроса - 30 баксов, через пару часов индикатор готов. Вы его смотрите, просите вставить какие-нибудь точечки, галочки и прочую мишуру.
3. Пока Макар писал вам индикатор, вы читали какие-нибудь умные статьи и поняли что разности более информативны. Поэтому вы тут же делаете заказ Макару на написание осциллятора вида цена минус индикатор. Цена вопроса прежняя.
4. Пока Макар делал вам индикатор, вы время зря не теряли и читали какие-то умные статьи, где написано как из осциллятора сделать советник. И вы пишите новое ТЗ. Цена вопроса та же самая ерунда. В результате вы получите что-то такое.
Посмотреть вложение 545851
Особо не впечатляет, но где-то в умных статьях сказано, что можно использовать несколько индикаторов сразу, главное чтобы они были непохожи. Делаете последний заказ типа - штук 5 чтобы периодов можно было прописать... Результат вас удивит.
Итог, за 120 баксов вы имеете 2 индикатора, 1 простой советник, и 1 сложный советник, который вы никому не отдадите
Благодарю.
При всём уважении, но способ урезания истории, не спасает ситуацию.
XAUUSD,M5: 1195778 tick events (1375 bars, 1196779 bar states) processed in 0:02:21.234 (total time 0:02:21.375)
Здравствуйте! Помогите облегчить индикаторы. Хочу с ними помудрить на графиках Renko, а то грузят на них терминал так, что он просто зависает. По возможности, пожалуйста, выведите в настройках ограничение в барах.
Добрый день. Просьба- колоризировать , если это не проблема, данный OsMA, по подобию терминального AO, где столбец с бОльшим показателем окрашен в зеленый, с меньшим- в красный. Заранее спасибо!