Нужна помощь - страница 4

 
a007 #:

У меня три простых вопроса: от ответов на них зависит будущее всего человечества:

1. Откуда взята идея советника (кто подсказал, где прочитал, ...) ?

2. каковы признаки (как это определил, как это понял)  отрабатывает только на одном окне, на втором уже не открывается?

3. Зачем кидать в другое окно, почему мало одного окна?

1. на период теста могу пока сказать только одно, подсказку нашел в сети, долгое время шел в этом направлении, но чувствовал, что что то не хватает ), и вот наконец то увидел одну интересную вещь в сети, которая и дала все нужные ответы ), думаю многие про суть идеи знают, и возможно кто то уже рубит капусту используя данный алгоритм... не знаю ), всё в принципе на поверхности, но в открытых источниках за много лет ничего похожего я не видел, пока приходиться тестить на коленках... в экселе, прикрутил котировки в нее, нафаршировал расчетами и формулами, и пока вот как то так обхожусь, 4 дня не фиксил стату для отчетности , наводил марафет в таблице ), но профитность без реинвеста за 5 дней в среднем составила 30% в день, не мартин, без оптимизации, без индикаторов, по барабану какой брокер, просадок не наблюдалось, развороты медленные, что дает возможность спокойно открываться в нужную сторону, сегодня так же профит в пределах 30%. Если поможете допилить сову для теста, буду выкладывать отчетность из мт4 на период теста.
2. да признаки просты, кидаешь сначала сову на одно окно, всё работает, затем кидаешь ее на второе окно, в окне появляется, но ничего не происходит, ордера не открываются.
3. пока приходится так, образовался сигнал для входа, выбираешь в Входных параметрах нужный список пар, указываешь направление, и кидаешь в окно графика, по правилам будет пока например 6 сигналов, и по каждому сигналу разный список вп, при таком виде совы надо кидать второй и далее третий... раз сову в разные окна, чтобы открывать последовательно по 6 ордеров разных вп из списка.
Чтобы открывать всё в одном окне, нужно прикручивать всю математику алгоритма, которая и будет давать сигналы для последовательного открытия по 6 ордеров, но это уже отдельная тема для индивидуальной работы с программистом.
На данном этапе решение по сове вижу пока в таком виде, если что подскажете лучше я не против, в случае положительного итога результатов тестирования (желательно в мт) уже будет смысл и интерес в создании полноценного автомата, пока всё идет куда лучше, а дальше будет видно.

 
Sergey Korsunov #:

всё сделал, работает отлично, спасибо
вот только при компиляции выдает какие то предупреждения, это что значит? и как их удалить?

OrderSend в MQL4

Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().


У вас же возвращаемое значение улетает в пустоту. Конечно не критично, но не лучший стиль программирования.

F1 вам в помощь, там так-же есть небольшой пример

 
на данный момент со своим измененным с вашей помощью кодом, получилось добиться нужного результата, за что огромное спасибо.
советник начал открывать нужный список инструментов в новых окнах.
завтра придется корректировать весь код, а он далеко не маленький у меня, да и корявый какой то получился ), но вроде работает ), нету опыта и знаний.
 
Sergey Korsunov #:
на данный момент со своим измененным с вашей помощью кодом, получилось добиться нужного результата, за что огромное спасибо.
советник начал открывать нужный список инструментов в новых окнах.
завтра придется корректировать весь код, а он далеко не маленький у меня, да и корявый какой то получился ), но вроде работает ), нету опыта и знаний.

Нужно сразу учиться писать короткий код. Сравните свой вариант и мой.

Выбросить лишние функции и скобки, повторяющиеся части оформить функциями.

Половина текста программы должен быть комментарий 3 уровня:

1. Ко всей программе четкий, полный и без излишеств.

2. К отдельным частям программы: Функциям, циклам, ...

3. К отдельным операторам.

 
a007 #:

Нужно сразу учиться писать короткий код. Сравните свой вариант и мой.

Выбросить лишние функции и скобки, повторяющиеся части оформить функциями.

Половина текста программы должен быть комментарий 3 уровня:

1. Ко всей программе четкий, полный и без излишеств.

2. К отдельным частям программы: Функциям, циклам, ...

3. К отдельным операторам.

Я только на самом начале пути, только только начинаю )
Первоначальный вариант у меня получился из более 8 000 строк О_о ))
После вчерашних поправок код сократился ровно 2 раза, но это тоже очень и очень много в сравнении с вашим.
Вчера ушел целый день на его переписывание.
Да, код в любом случае надо переделывать, на этот полотенец без слез не посмотришь ), если поможете доделать начатое, буду очень признателен.

По данной стратегии бот сегодня отработал всё как нужно.
Главная и основная его задача, просто открывать ордера в нужном порядке, что он благополучно и сделал.
Единственное что я накосячил сегодня, так это не обратил внимание на размер лот по умолчанию, всё по на открывал с лотом 0.01, а надо было лот 1.0 выставить, просто невнимательность, можно было конечно перезайти 1 лотом, но что то поленился ).  

Результат торгов по стратежки за сегодня (при 1 лоте) +50%!
Пока писал сообщение профит по экселю уже перевалил за 65% )

Файлы:
Screenshot_7.jpg  421 kb
 
a007 #:

............ повторяющиеся части оформить функциями.


вот как раз этого и не хватает в коде, а как сделать не знаю
весь код у меня как раз и состоит из повторений

 
Sergey Korsunov #:
советник начал открывать нужный список инструментов в новых окнах.

Что Вы называете новыми окнами? в Windows в каждом окне работает другая программа! Вы запустили много терминалов? Зачем нужны новые окна?

Советник должен работать на одном графике. Он должен отправлять ордера на сервер. В каких окнах он открывает списка?

 
a007 #:

Что Вы называете новыми окнами? в Windows в каждом окне работает другая программа! Вы запустили много терминалов? Зачем нужны новые окна?

Советник должен работать на одном графике. Он должен отправлять ордера на сервер. В каких окнах он открывает списка?

Попробую расписать
На данном этапе бот нужен исключительно для оперативного открытия ордеров по определенным правилам на время тестирования стратегии.
Терминал один.
Новые окна нужны исключительно для последовательности открытия новых ордеров в цикличной последовательности.
Выглядит это так:
Запускаю бота в первом окне, он открывает 6 ордеров с разными инструментами с учетом списка.
Для того, чтобы открыть следующий список из 6-и ордеров кидаю его во второе окно, но уже немного с другими настройками во Входными параметрами, и так далее.
После открытия всех ордеров в окнах, удаляю все боты, чтобы после фиксации профита дополнительным ботом, который закрывает все позиции, чтобы бот повторно их не открывал.
Пока хватает 6 окон, можно конечно и в одном окне работать, каждый раз после открытия новых ордеров удалять бота ), но это лишнее ).
Для понимания если интересно могу скинуть рабочую часть кода.
При открытии следующих ордеров, в настройках нужно будет выставить 2 параметра, 3-й по необходимости (направление сделки бай или селл).
На данный момент  бот выполняет свою работу, немного притормаживает иногда при открытии ордеров, но думаю это как раз связано со слишком длинным кодом ).
Вариант с текстовым файлом со списком инструментов несоизмеримо бы упростил код и существенно ускорил его работу.


 
Sergey Korsunov #:

Терминал один.
Новые окна нужны исключительно для последовательности открытия новых ордеров в цикличной последовательности.
Выглядит это так:  Запускаю бота в первом окне, ...

Все понял. Вы путаете окна и графики. Терминал - это приложение Windows. Каждое приложение работает в своем окне. Раз терминал один, значит и окно одно.

Робота запускаете в разных окнах, потом ждать, потом закрывать... Тратите на это много времени.

Робот должен быть один и сразу выполнять всю работу. Затем на реал 100 долларов и 2 недели тестирования.

Если сольет - туда ему и дорога. Если нальет - пополнить депозит.

 
Sergey Korsunov #:

Попробую расписать
На данном этапе бот нужен исключительно для оперативного открытия ордеров по определенным правилам на время тестирования стратегии.
Терминал один.
Новые окна нужны исключительно для последовательности открытия новых ордеров в цикличной последовательности.
Выглядит это так:
Запускаю бота в первом окне, он открывает 6 ордеров с разными инструментами с учетом списка.
Для того, чтобы открыть следующий список из 6-и ордеров кидаю его во второе окно, но уже немного с другими настройками во Входными параметрами, и так далее.
После открытия всех ордеров в окнах, удаляю все боты, чтобы после фиксации профита дополнительным ботом, который закрывает все позиции, чтобы бот повторно их не открывал.
Пока хватает 6 окон, можно конечно и в одном окне работать, каждый раз после открытия новых ордеров удалять бота ), но это лишнее ).
Для понимания если интересно могу скинуть рабочую часть кода.
При открытии следующих ордеров, в настройках нужно будет выставить 2 параметра, 3-й по необходимости (направление сделки бай или селл).
На данный момент  бот выполняет свою работу, немного притормаживает иногда при открытии ордеров, но думаю это как раз связано со слишком длинным кодом ).
Вариант с текстовым файлом со списком инструментов несоизмеримо бы упростил код и существенно ускорил его работу.


А второй список и настройки как то зависит от работы первого наборы ордеров, или все списки и настройки заранее известны? Хотелось бы глянуть на рабочую часть. Вы пишите что настройки нужно менять для второго списка / набора ордеров, но не обозначили от чего они зависят.

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