подскажите каким образом ... - страница 2

 
Я вот как предполагал работу с этим советником:

Слежу за рынком
Сначала рисую красную линию - ничего не происходит
Затем рисую синюю - тогда и только тогда, когда две линии на экране, ставится ордер

А если линии будет рисовать советник, то откуда он узнает, где их рисовать:)

Далее чтобы ордера ставились быстро, то установка в цикле с рефрешом через 5 - 10 секунд

И если цена линии не отличается от цены ордера, то советник не молотит


Вопрос??

Нельзя ли слвиг линии на экране использовать для запуска советника (тогда можно не ждать тика)
 
Пришла интересная мысль!!!

Обращаюсь к господам разработчикам:

Введите на панели управления, например рядом с кнопкой включения советников, кнопку принудительного запуска советника (тактовую). Думаю это не сложно, если советник для сработки ждет тика, от пусть еще ждет нажатия кнопки.

Ваа-ще класная штука!!!

Представляете: нажал мышой - советник отработал, еще нажал - еще отработал. Многи проблемы бы решились:)))
 
А если линии будет рисовать советник, то откуда он узнает, где их рисовать:)

Берёшь граф. объект, ставишь на экран, и - ордер открывается в ту же секунду, независимо от тиков. 5-10сек - это не быстро и не правильно. Трущобы:)
Введите на панели управления, например рядом с кнопкой включения советников, кнопку принудительного запуска советника (тактовую). Думаю это не сложно, если советник для сработки ждет тика, от пусть еще ждет нажатия кнопки.

Это на мой взгляд тоже не правильно. Такую кнопку для собственного советника или скрипта можно реализовать в том же советнике или скрипте. Выглядеть она может иначе, чем обычная кнопка, но заложить такую возможность - вполне реализуемо.
Иное дело - знать состояние штатной кнопки советника. Это нужно.
Представляете: нажал мышой - советник отработал, еще нажал - еще отработал. Многи проблемы бы решились:)))

Мне думается, что это привлекательно только на первый взгляд. На самом деле, даже при работе с собственным советником, трейдер забывает (а с чужим - и не знает) что как работает.
Поэтому лучше делать советник, кот. реагирует на события - создание, перемещение или удаление линий, граф. объектов, нажатие кнопок. Такая технология интуитивно понятна юзеру и более естественна, легко воспринимается и усваивается:)
 
Чтобы не ждать тика, то лучше всю эту систему сделать в виде скрипта. Установил линии, запустил скрипт. Удалил линию, запустил скрипт.
 
Чтобы не ждать тика, то лучше всю эту систему сделать в виде скрипта. Установил линии, запустил скрипт. Удалил линию, запустил скрипт.

Чтобы не ждать тик я поставил в скрипт бесконечный цикл. Реакция системы - моментальная. Просто по факту окончания события.
А запускать всё время скрипт утомительно. Пару раз запустишь и перехочется. Гораздо приятней, если он работает себе, а ты сидишь и наслаждаешься:)
 
Убедил SK. Я со скриптами вообще еще не работал. Если они действительно моментально отрабатывают команды, то я наверное тоже переведу свой советник на скрипт.

Вопрос!
Можно ли скрипт подключать к графику не перетаскиванием, а как-нибудь по другому( по времени например)
Или скрипт перетащил, выключил терминал на ночь, утром включил, а скрипт прицеплен, и торгуешь себе спокойно?
 
Скрипт от советника отличается только тем, что после прихода тика (запускаются они оба одинаково - по факту прихода тика) скрипт, когда дойдёт до return, выгружается, а эксперт в этой же ситуации переходит в ждущий режим и снова запускается следующим тиком. В остальном они практически одинаковы.

Присоединить к графику ни скрипт ни эксперт программно нельзя. Так устроен МТ. Об этом много говорили на форуме, но возможности как не было, так и нет.

Очень удобно было бы иметь возможность запускать программно скрипт из эксперта. Строго говоря, код, содержащийся в скрипте, можно вставить отдельным блоком в эксперт, а далее вместо вызова скрипта просто передавать управление этому блоку внутри эксперта. Но в такой технологии есть один существенный недостаток: эксперт и скрипт работают "параллельно", каждый в своём потоке, т.е. изначально имеется возможность разграничить их функции, заставить работать синхронно. А если весь код в одном эксперте или в одном скрипте, то такой код может работать только последовательно. Особенная неприятность заключается в том, что при исполнении торговых операций исполнение программы "застряёт" на неопределённый срок, ожидая ответ сервера.

Я в этой ситуации пошёл всё же по пути распараллеливания: скрипт думает и приказывает, а советник только общается с сервером (торгует). Т.е. скрипт как бы выполняет роль компьютера, а советник - принтера. В качестве средства коммуникации используются глобальные перменные.

Если они действительно моментально отрабатывают команды, то я наверное тоже переведу свой советник на скрипт.

Дело не в моментальности. И скрипт и эксперт работают с одной и той же одинаковой скоростью и оба "моментально" отреагируют. Речь идёт о том, что в период редкого поступления тиков эксперт будет запускаться кратно тикам и только запустившись может дойти в своём исполнении до того места, где обрабатывается событие, например, перемещение графического объекта. Юзер перемещает линию, ждёт неопределённое время тика и лишь потом что-то происходит.

В моём вариате реализации эта проблема решена зацикливанием кода в эксперте и скрипте.
 
А если в эксперте код зациклен, как эксперт себя поведет на следующем тике? Предыудщий цикл будет принудительно остановлен терминалом и начнется новый. Или системой будет отрабатываться еще один цикл, затем на следующем тике еще один и т.д. пока система не встанет от перегрузки.
 
Спасибо SK за конкретное разъяснение. Теперь более понятна отработка комманд.

Я в свое время программировал микроконтроллеры.
Там была такая очень полезная вешь, как задающий генератор на высокой частоте.
Вот бы такую на МТ. Генератор генерит, программа ходит по шагам и ждет внешних событий: прихода тика, появления объекта на окне. Быстро обрабатывает и ходит дальше. Красота :)))

А подгонять торговый сервер никак? Только сидеть и ждать как он отреагирует?
 
А если в эксперте код зациклен, как эксперт себя поведет на следующем тике? Предыудщий цикл будет принудительно остановлен терминалом и начнется новый. Или системой будет отрабатываться еще один цикл, затем на следующем тике еще один и т.д. пока система не встанет от перегрузки.

Так рассуждать вполне логично.
Но эти рассуждения были бы верны, если бы МТ был "плохим" программным продуктом. По моим представлениям это не так. Я думаю, что МТ очнь хороший.
Кроме того, в теле бесконечного цикла может стоять оператор Sleep(), предотвращающий систему от перегрузок.

Как поведёт себя эксперт на следующем тике зависит от кода, кот. сидит внутри цикла.
В моём случае код такой, что выход из спец. функции Start() не происходит вообще. Однажды зайдя в цикл поток вычислений остаётся там "навсегда". Остановить его можно внешним воздействием, например, обрабатывая коорд. граф. объектов. Переместил значок - вышел. Не перемещал - работаем дальше.

Причём этот процесс идёт независимо от тиков. Цикл осуществляется, т.е, грубо говоря, один за другим исполняются подряд все написанные операторы до тех пор, пока не будет достигнута скобка окончания цикла. По факту достижения управление передаётся первому оператору в теле цикла и всё продолжается. Тики при этом поступаю само собой, обновляют хранящуюся где-то в недрах МТ сведения о разных бидах, асках и пр. А зацикленный эксперт или скирпт обращается к этим сведениям изнутри цикла по мере необходимости.
Причина обращения: