Группа "Стол заказов MQL"

Рейтинг 2151



РЕКОМЕНДУЮ



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

здравствуйте.

хочу глянуть на свечи.

и реализация наверное начнется так.

//+------------------------------------------------------------------+
//| RoundLevelPaint.mq4 |
//| Copyright 2023 |
//| example.com/|
//+------------------------------------------------------------------+
#property copyright «Copyright 2023»
#property link «example.com/»
#property version «1.00»
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 clrRed

extern int RoundDigits = 2; // Количество знаков после запятой для круглых уровней

double Buffer[];

int init()
{
IndicatorBuffers(1);
SetIndexBuffer(0, Buffer);
SetIndexStyle(0, DRAW_NONE);
return(0);
}

int deinit()
{
return(0);
}

int start()
{
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-1);

int limit = Bars — counted_bars;
if(limit > 0)
{
for(int i = 0; i < limit; i++)
{
double high = High[i];
double low = Low[i];

// Находим ближайшие круглые уровни
double round_up = NormalizeDouble(MathCeil(high * MathPow(10, RoundDigits)) / MathPow(10, RoundDigits), RoundDigits);
double round_down = NormalizeDouble(MathFloor(low * MathPow(10, RoundDigits)) / MathPow(10, RoundDigits), RoundDigits);

// Проверяем, проходит ли свеча через круглый уровень
if((high >= round_up && low <= round_up) || (high >= round_down && low <= round_down))
{
// Меняем цвет свечи
SetIndexArrow(0, i, 121); // Красный цвет
}
}
}

return(0);
}

### Как работает индикатор:

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

2. Поиск круглых уровней: Индикатор находит ближайшие круглые уровни вверх и вниз от максимума и минимума свечи соответственно. Круглые уровни определяются как числа, заканчивающиеся на ноль с точностью до указанного количества знаков после запятой (RoundDigits).

3. Проверка пересечения: Если максимум или минимум свечи пересекает найденный круглый уровень, индикатор изменяет цвет этой свечи на красный.

### Настройка:

— RoundDigits: количество знаков после запятой, которое используется для определения круглого уровня. Например, если установлено значение 2, то круглые уровни будут такими: 1.00, 1.05, 1.10 и так далее.

### Установка:

1. Создайте новый файл с именем RoundLevelPaint.mq4 в папке MQL4\Indicators вашего терминала MetaTrader 4.
2. Скопируйте приведенный выше код и вставьте его в созданный файл.
3. Сохраните файл и перезагрузите терминал MetaTrader 4.
4. В Навигаторе найдите ваш индикатор и перетащите его на график желаемого инструмента.
5. Установите необходимые параметры и нажмите «ОК».

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

но на взгляд и усмотрение Андрея.
Андрей сколько стоить будет. и возьметесь ли.
  • 0
  • Просмотров: 1635
  • 14 декабря 2024, 20:38
  • igrun
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Подправить советник.
Следующая запись в группе  
Доработка индикатора
11 декабря 2024
20 декабря 2024

Брокер для ваших роботов, 15 лет на рынке

Комментарии (30)

+
0
доброго вечера
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 14 декабря 2024, 20:39
+
0
вариант где значок ставится на круглый уровень, когда его пересекает свеча:


input int Round     = 2;    // скругление уровня
input int Step      = 500;  // шаг
input int Barov     = 1111; // баров для расчета
input int ArrowCode = 40;   // код значка







1000р. или буду делать по вашему тз.
Редактирован: 15 декабря 2024, 14:26
avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 15 декабря 2024, 13:42
+
0
а трудоемкость правки вашего кода небольшая да ведь?
в принципе советник близок к цели.
напишите в личку номер карты и в какую страну делать перевод.
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 15 декабря 2024, 18:28
+
0
Небольшие изменения внесу бесплатно. Реквизиты те же что и в прошлый раз.
Редактирован: 15 декабря 2024, 19:42
avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 15 декабря 2024, 19:41
+
0
готово перевел
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 15 декабря 2024, 20:09
+
+1
скинул в базу: www.opentraders.ru/downloads/3938/

avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 15 декабря 2024, 20:48
+
0
Андрей в паре с серебром золотом еной не корректное отображение
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 16 декабря 2024, 16:15
+
0
измените настройки. для ены может быть так:

avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 16 декабря 2024, 16:28
+
0
а для крипты, акций индексов
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 16 декабря 2024, 16:32
+
0
все подбирается также. что подобрать для примера?
avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 16 декабря 2024, 16:33
+
0
биткоин
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 16 декабря 2024, 16:35
+
0
на битке глючит. буду заниматься отладкой. когда сделаю напишу здесь
avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 16 декабря 2024, 16:50
+
0
на битке все также, только круглые уровни будут по другому определяться. напишите каким образом нужно строить их на битке и я доделаю
avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 16 декабря 2024, 17:23
+
0
на сахаре например нормально, а когда цена инструмента выше уже нужен другой алгоритм:

avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 16 декабря 2024, 17:26
+
0
Для создания индикатора для MetaTrader 4, который будет окрашивать свечи, проходящие через круглые уровни, нужно использовать язык программирования MQL4. В данном случае мы будем работать с таймфреймом H1, но вы можете изменить его под свои нужды.

### Шаги:

1. Создание круглых уровней:
Круглые уровни – это цены, заканчивающиеся на нули (например, 10 000, 11 000 и т.д.). Мы будем проверять каждую свечу на то, пересекает ли она такие уровни.

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

3. Тестирование на BTCUSD:
Индикатор должен корректно работать на паре BTCUSD, которая часто используется для торговли биткоином.

### Код индикатора:

//+------------------------------------------------------------------+
//| RoundLevel.mq4 |
//| Copyright 2023, YourNameHere |
//| www.metaquotes.net/terminal:metaeditor |
//+------------------------------------------------------------------+
#property copyright «YourNameHere»
#property link «www.metaquotes.net/terminal:metaeditor»
#property version «1.00»
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 clrGreen

extern int Step = 1000; // Шаг для определения круглого уровня

double ExtBuffer[];
int init() {
IndicatorBuffers(1);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,159);
SetIndexEmptyValue(0,EMPTY_VALUE);
return(0);
}

int start() {
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
for(int i=counted_bars;i>0;--i){
double open = iOpen(_Symbol,_Period,i);
double close = iClose(_Symbol,_Period,i);
bool isCrossingRoundLevel = false;
int levelStart = MathFloor(open / Step) * Step;
int levelEnd = levelStart + Step;
if((open >= levelStart && open <= levelEnd) || (close >= levelStart && close <= levelEnd)) {
isCrossingRoundLevel = true;
}
if(isCrossingRoundLevel) {
ExtBuffer[i] = 1;
} else {
ExtBuffer[i] = EMPTY_VALUE;
}
}
return(0);
}

### Пояснение к коду:

1. Step: Внешний параметр, определяющий шаг для круглых уровней. По умолчанию установлено значение 1000, что означает, что уровни будут находиться каждые 1000 пунктов (например, 20 000, 21 000 и т.д.).

2. ExtBuffer[]: Массив для хранения значений индикатора. Если свеча проходит через круглый уровень, в массив записывается 1, иначе EMPTY_VALUE.

3. start(): Основная функция, которая проверяет каждую свечу на пересечение круглого уровня. Она вычисляет начало и конец текущего уровня (levelStart и levelEnd) и определяет, попадает ли цена открытия или закрытия свечи в этот диапазон.

4. Окраска свечей: Для того чтобы свечи были окрашены, вам необходимо вручную настроить цвета свечей в платформе MT4. Это делается через меню «Графики» → «Свойства», где выбирается нужный график и устанавливаются нужные цвета для бычьих и медвежьих свечей.

### Установка и использование индикатора:

1. Сохраните данный код в редакторе MetaEditor в формате .mq4.
2. Скомпилируйте файл и установите его в вашу платформу MT4.
3. Откройте график пары BTCUSD и добавьте созданный индикатор через меню «Вставка» → «Индикаторы» → «Пользовательские».
4. Настройте параметры индикатора при необходимости.

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

Андрей можно например так но платить еще более 300 рублей не буду
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 16 декабря 2024, 18:30
+
0
Доделаю, чуть посвободнее буду
avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 16 декабря 2024, 18:41
+
0
можно узнать откуда коды выше? и оба нерабочие
avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 16 декабря 2024, 19:43
+
0
они просто недописанные а это гигачат
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 16 декабря 2024, 21:22
+
+1
сделал для битка: www.opentraders.ru/downloads/3938/

avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 16 декабря 2024, 20:15
+
0
Создание советника для MetaTrader 4 (MT4), который будет использовать отбой от круглых уровней, требует учета специфики цены актива, включая количество знаков до и после запятой. Это важно, так как разные активы могут иметь различную точность ценовых данных. Например, валютная пара EURUSD может отображаться с точностью до пяти знаков после запятой (например, 1.23456), тогда как другие инструменты могут иметь другую точность.

Вот примерный алгоритм создания такого советника:

### Шаг 1: Определение количества знаков

Для начала нужно определить количество знаков до и после запятой у конкретного инструмента. В MT4 есть встроенная функция Digits, которая возвращает количество знаков после запятой для текущего символа (инструмента).

int digits = Digits(); // Получаем количество знаков после запятой

### Шаг 2: Идентификация круглого уровня

Круглый уровень – это цена, заканчивающаяся на ноль или несколько нулей. Чтобы проверить, является ли текущий уровень круглым, можно воспользоваться следующей логикой:

double currentPrice = SymbolInfoDouble(Symbol(), SYMBOL_BID); // Текущая цена
int intPart = (int)currentPrice; // Целая часть цены
double fracPart = currentPrice — intPart; // Дробная часть цены

bool isRoundLevel = false;
if(fracPart == 0) {
isRoundLevel = true; // Если дробная часть равна нулю, то это круглый уровень
}

### Шаг 3: Учет количества знаков после запятой

Так как количество знаков после запятой влияет на определение круглого уровня, можно модифицировать проверку следующим образом:

// Округляем дробную часть до нужного количества знаков
fracPart = NormalizeDouble(fracPart, digits);

if(fracPart == 0) {
isRoundLevel = true; // Если дробная часть равна нулю, то это круглый уровень
}

Функция NormalizeDouble округляет число до указанного количества знаков после запятой.

### Шаг 4: Реализация стратегии отбоя

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

void OnTick() {
double currentPrice = SymbolInfoDouble(Symbol(), SYMBOL_BID);
int digits = Digits();
int intPart = (int)currentPrice;
double fracPart = currentPrice — intPart;
fracPart = NormalizeDouble(fracPart, digits);

if(fracPart == 0) { // Если текущий уровень круглый
// Проверяем условия для отбоя
if(currentPrice > previousPrice) {
// Отбой вниз
OpenSell();
} else {
// Отбой вверх
OpenBuy();
}
}
}

В этом примере OpenSell() и OpenBuy() являются функциями, открывающими сделки на продажу и покупку соответственно. Вы можете заменить их своими собственными функциями открытия ордеров.

### Заключение

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

  23  igrun Автор Сообщений: 1706 - igrun

  • 24 декабря 2024, 22:04
+
0
скока буит стоить?
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 24 декабря 2024, 22:05
+
0
скока буит стоить?


Сделать входы на отбой пробой по индикатору?
1000р.
avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 25 декабря 2024, 00:14
+
0
пока советник писать не надо,
только индикатор подправить — чтобы он был завершен.
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 25 декабря 2024, 00:29
+
0
но Андрей это дополнение к индикатору,
я потому и спрашиваю что допустим 300 рублей за предыдущую правку,
500 рублей ну ни мне ни тебе за эту правку.
и того 800 реблей, сделаешь индикатор?
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 25 декабря 2024, 04:23
+
0
у индикатора который писал в топике такая же логика.
avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 25 декабря 2024, 09:06
+
0
а как настраивать?
количество знаков до запятой и
количество нулей после запятой.
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 25 декабря 2024, 09:36
+
0
input int Round = 0;  // округление уровня


если бид 1.08855 а округление 0 — уровень 1.0000
округление 3 — уровень 1.088
округление 4 — уровень 1.0885
avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 25 декабря 2024, 11:30
+
0
а если биток?
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 25 декабря 2024, 12:04
+
0
у битка делит целую часть с шагом Step.
На скрине шаг 1000:

avatar

  35  AM2 Сообщений: 16419 - Андрей

  • 25 декабря 2024, 14:05
+
0
спс
avatar

  23  igrun Автор Сообщений: 1706 - igrun

  • 25 декабря 2024, 14:21

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий