Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1246

 
Alexey Viktorov:

Чем вы набираете столько строк кода? Вот один из последних моих советников, работает с набором бумаг на ФОРТС

Сколько бумаг будет перечислено в этом списке, столько и будет торговать. И в этом советнике с контролем двух торговых периодов времени, с трейлингом и естественно с анализом всего 326 строк.

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

Но всё-же лучше, на мой взгляд, всё это завернуть в пользовательскую функцию.

Спасибо. Но не то чтобы нетерпимо, просто это был мой первый вариант написания и на мой взгляд более универсальный. Можно было бы добавлять самые различные методы анализа и не писать в каждом открытие ордера, просто потому что это было бы не нужно и сосредоточиться на анализе и новых функциях, вместо писанины одного и того же. Ну не знаю как у вас влезло в 300+ строк, я не на столько продвинут в данном языке. Прописал в итоге все в каждой отдельной функции и вышло 1050 строк без учёта всего остального, типа расчета лота, трейлинга и т.п. Советник может только открывать сделки по 7 парам одновременно с учётом условий открытия и все в принципе. Потом захочу писать новую функцию и мне снова прописывать открытие ордеров, и снова и снова и снова, вместо того чтобы один раз написать и использовать. Трейлинг стоп работает постоянно и модифицирует все открытые ордера, но он написан один раз, так почему бы не написать один раз функцию для открытия ордеров и использовать ее для любого типа анализа. Мне пока не понятно.
 
Denis Diakonov:
Спасибо. Но не то чтобы нетерпимо, просто это был мой первый вариант написания и на мой взгляд более универсальный. Можно было бы добавлять самые различные методы анализа и не писать в каждом открытие ордера, просто потому что это было бы не нужно и сосредоточиться на анализе и новых функциях, вместо писанины одного и того же. Ну не знаю как у вас влезло в 300+ строк, я не на столько продвинут в данном языке. Прописал в итоге все в каждой отдельной функции и вышло 1050 строк без учёта всего остального, типа расчета лота, трейлинга и т.п. Советник может только открывать сделки по 7 парам одновременно с учётом условий открытия и все в принципе. Потом захочу писать новую функцию и мне снова прописывать открытие ордеров, и снова и снова и снова, вместо того чтобы один раз написать и использовать. Трейлинг стоп работает постоянно и модифицирует все открытые ордера, но он написан один раз, так почему бы не написать один раз функцию для открытия ордеров и использовать ее для любого типа анализа. Мне пока не понятно.

Если у вас в работе несколько символов, то самый эффективный вариант, это работать с пользовательской функцией. По каждому символу, в моём варианте из массива проводится анализ открытия и если функция анализа вернула true то вызывается функция открытия ордера. Одна функция анализирует ситуацию по всем символам поочерёдно, одна открывает ордера по символу по которому есть сигнал. И не важно сколько символов засунуто в массив. Получили сигнал, открыли ордер — вернулись к массиву символов, проверяем следующий. И так далее…

 
Alexey Viktorov:

Если у вас в работе несколько символов, то самый эффективный вариант, это работать с пользовательской функцией. По каждому символу, в моём варианте из массива проводится анализ открытия и если функция анализа вернула true то вызывается функция открытия ордера. Одна функция анализирует ситуацию по всем символам поочерёдно, одна открывает ордера по символу по которому есть сигнал. И не важно сколько символов засунуто в массив. Получили сигнал, открыли ордер — вернулись к массиву символов, проверяем следующий. И так далее…

Вот это хороший вариант. 
Так даже еще удобнее будет и код более компактный, к тому же возможность, вызывать функцию открытия ордера, откроется для любого добавляемого вида анализа рынка. Целью было найти способ не писать постоянно один и тот же код и соответственно ваше предложение достойно внимания! Спасибо!
 
Denis Diakonov:
Вот это хороший вариант. 
Так даже еще удобнее будет и код более компактный, к тому же возможность, вызывать функцию открытия ордера, откроется для любого добавляемого вида анализа рынка. Целью было найти способ не писать постоянно один и тот же код и соответственно ваше предложение достойно внимания! Спасибо!

Алексей вам стандартные вещи рассказывает...

 
Artyom Trishkin:

Алексей вам стандартные вещи рассказывает...

Стандартные, это когда на каждый день отдельный код.)))))

 
Artyom Trishkin:

Алексей вам стандартные вещи рассказывает...

Ну я третью неделю с этим языком знаком\

Вообще с 2008 но только сейчас начал пробовать что-то писать

 

Здравствуйте @Artyom Trishkin ,

У меня проблема с решением логики. Пожалуйста, помогите мне с этим? Вот ссылка на мою ветку: https://www.mql5.com/ru/forum/350570.

Надеюсь услышать тебя позже.

 

Рассчитать медиану цены на заданном интервале с заданным количеством приближений.

Здравствуйте есть массив значений.

Задача написать функцию.

Параметры входа:

- массив содержит номера нужных элементов  для расчета медианы - bufInBar[] 

- размер массива bufInBar[]  - count

- Количество приближений в медиан - fokus

void medianaL0(const int &bufInBar[], int count, int fokus)

То есть есть класс 

bufInBar[i] - используется для загрузки нужного элемента при расчете медианы 

BP[bufInBar[i]].CenaPerioda; - по этому значению рассчитывается медиана
BP[bufInBar[i]].Period; 

На выходе :

BP[bufInBar[i]].Mediana; 

Заполняется в порядке возрастания например с 0 до 10.

То есть,  если в условии  fokus=10, то на интервале i<count десять значений 

BP[bufInBar[i]].Mediana;

будут равны от 1 до 10

Например

BP[3256].Mediana=0;
BP[6256].Mediana=1;
BP[9256].Mediana=2;
...

Готов перевести со счета 12$

 
Mikhail Toptunov:

Рассчитать медиану цены на заданном интервале с заданным количеством приближений.


Готов перевести со счета 12$

вы же знаете, что для такого https://www.mql5.com/ru/job

а тут - если сами начали делать, но что-то не вышло или не понятно

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Доработать существующий советник, чтобы он осуществлял выходы из сделок по виртуальному тейк-профиту на основе слежения за мультитаймфрейменным боллинжер бендз. Советник должен следовать за линиями боллинжера и выходить по указанному алгоритму Здравствуйте, нужно создать Программу для сравнения данных и отображения их. Данные надо будет брать с...