Структуры. Научите пожалуйста. - страница 4

 
Спасибо за вашу активность в теме.

 
Petr Zharuk #:
Спасибо за вашу активность в теме.

Пожалуйста, но все хотят услышать хоть что-то понятно? Или всё сказанное пролетело мимо?

 
Alexey Viktorov #:

Пожалуйста, но все хотят услышать хоть что-то понятно? Или всё сказанное пролетело мимо?

Да, на много понятнее чем было ещё вчера)
Я понимаю что имел дело с чем то похожим в Java. Классы, методы, конструкторы.
 
Vladislav Boyko #:

При каждом выполнении OnTick() нужна информация об открытых в данный момент ордерах. Так помести ее в структуру.

Какой-нибудь такой шаблон для начала:

Дальше думаешь, какая именно нужна будет информация об открытых сейчас ордерах. Например, для открытия новых ордеров сетки нужна верхняя и нижняя цены открытия ордеров, номер последнего шага и (как в том примере) признак наличия существования сигнального ордера. Добавляешь нужные переменные в структуру:

Один раз проходишь в цикле по всем ордерам и заполняешь эту структуру. Это ведь реализуемо, правда? Все. Дальше просто пихаешь уже подготовленные данные в условия для открытия новых ордеров сетки.

Для любых блоков программы информация по рыночным ордерам подготовлена и аккуратно упакована в удобном, читаемом виде. Не нужно делать миллион циклов и огромную вложенность.

Открываем первый ордер по сигналу индикатора? Пожалуйста:

Можно даже сделать еще более явно:

Добавляем закрытие и модификацию (тут я уже вставил немного упрощенный пример из реального кода):

Что касается history и exitSignal - это тоже заранее подготовленные, аккуратно упакованные в структуры данные.


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

превратив код в одноразовую портянку.


А пример кода, который подорвал мне сраку, я привел для демонстрации того, к чему приводит подход "начни писать, дальше разберешься"/"аппетит приходит во время еды"

Декомпозиция))) Хотя да, писать без алгоритма это еще те крючки для правок))) Алгоритм, оптимизация алгоритма, код алгоритма, оптимизация кода)))

 

Я уже выкладывал своё: https://www.mql5.com/ru/forum/160683/page1950#comment_34431498 - отсортированный массив ордеров.

Зачем мне этот массив? Потому что ордер может быть, например, уже не в активных, но ещё не в истории. Или уже отправлен (async!), но ещё не появился в активных.

А так мы храним всю инфу по ордеру от отправки до попадания в историю.

 

Доброго времени!


Спасибо участникам темы за мысли о структурах. 

Так как я уже применяю их в своих работах, говорит о том, что я начинаю их понимать.

Причина обращения: