+1
доброе утро, скоро НГ. )))
avatar

igrun

  • 25 декабря 2024, 04:58
0
нажми на квадоатик в верхнем левом углу,
там все заполни как надо и будет тебе счастье
avatar

igrun

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

igrun

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

igrun

  • 25 декабря 2024, 00:29
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

igrun

  • 24 декабря 2024, 22:04
+1
120 000
avatar

igrun

  • 21 декабря 2024, 19:54
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

igrun

  • 16 декабря 2024, 18:30
0
Андрей в паре с серебром золотом еной не корректное отображение
avatar

igrun

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

igrun

  • 15 декабря 2024, 18:28