Доработка ботов (советников, индикаторов) vol. 2

Можете помочь с отображением свечей в подвале, похожих на терминальные? Потому что тут какое-то безобразие получилось, особенно когда они переворачиваются. SingleChart.png
 

Вложения

Вложения

Доброго дня всем! Подправьте пожалуйста индикатор под новые билды, сильно грузит терминал. Если не трудно, оптимизируйте код и добавьте в настройки количество отображаемых закрытых ордеров. В похожем видел такую настройку, ставишь
меньше ордеров-меньше нагрузка.
Заранее благодарю!
ice.jpg
 

Вложения

Доброго дня всем! Подправьте пожалуйста индикатор под новые билды, сильно грузит терминал. Если не трудно, оптимизируйте код и добавьте в настройки количество отображаемых закрытых ордеров. В похожем видел такую настройку, ставишь
меньше ордеров-меньше нагрузка.
Заранее благодарю!
Посмотреть вложение 588417
Вот оптимизированная версия с параметром MaxClosedOrders и рядом улучшений производительности.2026-03-13_161941.jpg
 

Вложения

Уважаемые форумчане.
Я пытался получить помощь в доработке моего Эксперта _DBL_SHsq.mq4 , но как-то не сложилось.
Не смог получить помощь и на козырном форуме MQL5, хотя по моему мнению, задача как для среднего уровня владеющих mql4.
Попрошу подсказать мне где найти библиотеку, где можно скачать готовые скрипты (думаю наверняка существуют такие), чтобы попытаться
самостоятельно попробовать решить мою задачу. Скрипты типа : Открыть позицию, Закрыть позицию ...
Я не владею тонкостями mql.
Буду премного благодарен.
 
Я пытался получить помощь в доработке моего Эксперта _DBL_SHsq.mq4 , но как-то не сложилось.
Скорее всего был неправильно сформулированный вопрос... Надо задать его ЧЁТЧЕ, ЧЕТЧЕЕ ))), еще раз ))).
 
Последнее редактирование:
Ну, если соображаешь - вставь эти куски и доработай эксперт.
Эксперт Buy and Sell ордера отрабатывает без проблем.
Если открыты 2 лота необходимо закрыть 1 лот.
if(triger == 2) - открываем 2 лота Buy (Lots*2). Sell - аналогично.
а именно :
if triger == 1 - закрыть 1 лот Buy.
if triger == -1 - закрыть 1 лот Sell.

Я работаю в TradeStation 9.1 ( язык EasyLanguage ) - тут это пишется и работает элементарно.

вот код
 

Вложения

Ну, если соображаешь - вставь эти куски и доработай эксперт.
Эксперт Buy and Sell ордера отрабатывает без проблем.
Если открыты 2 лота необходимо закрыть 1 лот.
if(triger == 2) - открываем 2 лота Buy (Lots*2). Sell - аналогично.
а именно :
if triger == 1 - закрыть 1 лот Buy.
if triger == -1 - закрыть 1 лот Sell.

Я работаю в TradeStation 9.1 ( язык EasyLanguage ) - тут это пишется и работает элементарно.

вот код
Если я правильно понимаю,
Что было добавлено/изменено
Описание элемента
_buy_lots, _sell_lots Глобальные переменные — общий объем открытых лотов покупки/продажи
ord_in_market() Теперь, помимо флагов, _buy/_sell накапливает лоты (+= OrderLots())
Close_partial_by_type() Новая функция — частичное закрытие: находит первый ордер требуемого типа и закрывает ровно Lots из него (не весь ордер)
trigger == 1 Если открытый ордер на покупку ≥ Lots*2 → вызывает Close_partial_by_type(OP_BUY, Lots) — закрывает 1 лот, оставляя 1 лот
trigger == -1 Если открытый ордер на продажу ≥ Lots*2 → вызывает Close_partial_by_type(OP_SELL, Lots) — закрывает 1 лот, оставляя 1 лот
Логика сигнала (общая)
trigger Действие
2 Закрыть продажу → Открыть покупку × Лоты*2
1 Частично закрыть покупку: Лоты*2 → Лоты
0 Закрыть все
-1 Частично закрыть продажу: Лоты*2 → Лоты
-2 Закрыть покупку → Открыть продажу × Лоты*2
 

Вложения

Изменяется параметр из DLL или нет, как он сигналит, надо разобраться изначально с этим. Если он не изменяется там и висит (то же значение в нём), надо значит проверять его на изменение уже в эксперте на mql. 2 ордера указанным лотом открылись, один ордер закрыть надо... какой ? Старший по времени или младший ? Пишутся универсальные функции, типа openOrderSerie, где в параметрах указывается лот ордера и количество ордеров для открытия и так далее там. Создаётся структура Order, с полями, куда сохраняются данные ордеров. Пишется функция checkOrders, которая по соответствующему сигналу в массив структур собирает данные об открытых ордерах по данному инструменту, меджику и типу (OP_BUY/OP_SELL), их тикет, лот, цену открытия/закрытия и так далее... Пишется функция closeOrderSerie, в которую передается массив с данными об открытых ордерах, количество ордеров которые надо закрыть и параметр со старшего по времени или младшего надо закрывать... ну как то типа того... )
P.S. А не вот типа - я открыл 2 лота, 1 лот мне надо закрыть ))).
 
Последнее редактирование:

Посмотрели (2221) Посмотреть

Отслеживают (1863) Посмотреть

Назад
Верх