Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 883
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так а в mql5 то-же самое. Даже чуток расширено. Разве это не то, что надо?
SYMBOL_TRADE_TICK_VALUE
Значение SYMBOL_TRADE_TICK_VALUE_PROFIT
double
SYMBOL_TRADE_TICK_VALUE_PROFIT
Рассчитанная стоимость тика для прибыльной позиции
double
SYMBOL_TRADE_TICK_VALUE_LOSS
Рассчитанная стоимость тика для убыточной позиции
double
SYMBOL_TRADE_TICK_SIZE
Минимальное изменение цены
double
Первое что бросилось в глаза, это последовательность буферов.
Буферы построения ВСЕГДА должны идти подряд. То-есть если буферы данных под номерами 2 и3, то буфер цвета ОБЯЗАТЕЛЬНО должен быть под номером 4
Если это не единственная ошибка, тогда будем смотреть дальше.
ОК, действительно нашел такую особенность в инструкциях, здесь:
".....
bool SetIndexBuffer(
int index, // индекс буфера
double buffer[], // массив
ENUM_INDEXBUFFER_TYPE data_type // что будем хранить
);
Параметры
index
[in] Номер индикаторного буфера. Нумерация начинается с 0. Номер должен быть меньше значения, объявленного в #property indicator_buffers.
buffer[]
[in] Массив, объявленный в программе пользовательского индикатора.
data_type
[in] Тип данных, хранящихся в индикаторном массиве. По умолчанию INDICATOR_DATA (значения рассчитанного индикатора). Может также принимать значение INDICATOR_COLOR_INDEX, тогда данный буфер предназначен для хранения индексов цветов для предыдущего индикаторного буфера. Можно задать до 64 цветов в строке #property indicator_colorN. Значение INDICATOR_CALCULATIONS означает, что данный буфер участвует в промежуточных расчетах индикатора и не предназначен для отрисовки.
Попробовал переделать получил еще большую хрень. Гистограмма пропала вовсе, а линейный индикатор стал мягко говоря странным. Сигнальная обрезалась свыше 50, а основная ниже. Таких обрезаний и в коде то нету.
Я вам дал ссылку на изучение не гистограммы, а работы с буфером цвета. Абстрагируйтесь от гистограммы, и сосредоточьтесь на том, как нужно с цветом работать.
Изучил, ничего нового не почерпнул, видимо оно (новое для меня) конечно есть, очевидное для всех посвященных, само собой разумеющееся. Найти я не смог, кроме вышеописанной особенности взаимного расположения буферов при индексировании. Эту последовательность соблюл, получил еще более убогую картинку.
Картинки ниже, фал приложен
Здравствуйте.
Подскажите, пожалуйста, где можно подсмотеть алгоритм "надежного" открытия ордеров (пока меня интересуют только рыночные), потому что я зашел в тупик.
Проблема в том, что у счета (Alpari) уровни StopLevel и FreezeLevel равны нулю и если использовать только эти https://book.mql4.com/ru/appendix/limits ограничения, выходит что стоплосс при покупке можно устанавливать на уровне Бид, а при продаже на уровне Аск, но это не так. В этом случае OrderSend возвращает ошибку "Нет цен" (ERR_OFF_QUOTES, код 136).
При этом сделки без стопов или со стопами в 50 и больше пунктов открывает без проблем.
Опытным путем я выяснил, что минимальный размер СлопЛосс составляет 19 пунктов. Не знаю как определить этот отступ программно.
Здравствуйте.
Подскажите, пожалуйста, где можно подсмотеть алгоритм "надежного" открытия ордеров (пока меня интересуют только рыночные), потому что я зашел в тупик.
Проблема в том, что у счета (Alpari) уровни StopLevel и FreezeLevel равны нулю и если использовать только эти https://book.mql4.com/ru/appendix/limits ограничения, выходит что стоплосс при покупке можно устанавливать на уровне Бид, а при продаже на уровне Аск, но это не так. В этом случае OrderSend возвращает ошибку "Нет цен" (ERR_OFF_QUOTES, код 136).
При этом сделки без стопов или со стопами в 50 и больше пунктов открывает без проблем.
Опытным путем я выяснил, что минимальный размер СлопЛосс составляет 19 пунктов. Не знаю как определить этот отступ программно.
Попробуйте минСтопЛосс = Текущая цена +/- (МаксЗначение(2*Спред, СтопЛэвэл));
Добрый день ниже код проблема часто обновляется массив adx_sig[9] . Хотел чтоб получилось зависимость обновления данных от времени. Но что то пошло не так.