Общие вопросы по разработке > Роботы, графики, потоки

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
YUBA
Сообщения: 43
Зарегистрирован: 02 ноя 2016, 16:38
Поблагодарили: 4 раза

Роботы, графики, потоки

Непрочитанное сообщение YUBA » 27 янв 2017, 17:14

Решил написать сложный и долгий робот (советник). Теперь это доступно, т.к. к советнику можно (пока можно))) подключить DLL - Вылезти из песочницы. А что, ставим робота на ТФ 4ч, работаем, никому не мешаем, повторных вызовов не ожидаем - все хорошо. Написал макет, с продолжительностью где-то 10 мин. Вот такой:

Код: Выделить всё

function Initialize()
{
   //.......
   AddGlobalVariable("I",Types.Int,0);
}

function OnUpdate()
{
int m=I; I=m+1;
for(int i=0;i<300;i++)
{
System.Threading.Thread.Sleep(500);
System.Threading.Thread.Sleep(0);
System.Threading.Thread.Sleep(500);
System.Threading.Thread.Sleep(0);
System.Threading.Thread.Sleep(500);
System.Threading.Thread.Sleep(0);
System.Threading.Thread.Sleep(500);
System.Threading.Thread.Sleep(0);
ShowMessage("Поток " + m + " Время работы " + i + "  " + i*2);
i=i;
}
}
Функция Sleep() чем хороша - она приостанавливает поток выполнения робота, и дает другим потокам из очереди спокойно работать, совершенно им не мешая. Все хорошо, казалось бы.
Однако, как мы только запускаем такой робот, все другие советники и все графики останавливаются до окончания его работы. Т.е., все советники, индикаторы, графики работают в одном потоке, и совместно никак работать не могут - только по очереди (лента сделок и цены в таблицах тьфу-тьфу, вроде работают).
Вообще-то, это уровень прошлого века - откуда они таких программистов берут?
Возьме Форекс терминал Метатрейдер 4 или 5, они его сейчас для работы на бирже хотят приспособить.)) Далеко не лучший терминал. Квик лучше. Однако, в терминале Метатрейдер каждый советник работает в своем потоке и зависание одного никак не сказывается на работе других. Графики-индикаторы там тоже работают в свих потоках, и зависание какого либо графика и индикаторов в нем, никак не скажется на работе остальных.
Вообще, это все для роботостроения - полный абзац. В смысле идеологии построения АД3.5 был, пожалой вершиной мысли.

Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей