Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
while(CurTime()<t+TRADE_TIMEOUT*TRADE_ITERATIONS && j<TRADE_ITERATIONS)
for (j=0;j<10 && ticket==-1;j++)
{
ticket=SendOrder(...);
if (ticket==-1) слип;
}
while (j<TRADE_ITERATIONS && ticket==-1)
if (CurTime>t+TRADE_TIMEOUT*j)
{
ticket=SendOrder(...);
j++;
}
while (j<TRADE_ITERATIONS && ticket==-1)
if (CurTime>t+TRADE_TIMEOUT*j)
{
ticket=SendOrder(...);
j++;
}
Вы знаете, что делает вызов Sleep(1000)?
Так вот, в течение секунды он не делает ничего. То есть, буквально. Процессор выполняет другие задачи.
Ваш код молотит несколько машинных команд в коротком цикле, загружая процессор на 100% в течение секунды. Повезет, если CurTime способен переключать контекст, иначе другие эксперты просто остановятся.
Собственно, пойнт был, что слип не тратит процессорное время, в отличие от цикла ожидания, более подходящего для контроллера клавиатуры, чем для программы, обеспечивающей работу огромного количества ресурсов в реальном времени в виндах, которым до реалтайма, как паровозу до марс экспресс.
Для того, чтобы хорошо понимать, что такое многозадачность, многопоточность. кооперативные и преемптивные треды, разделение ресурсов, и правильно писать программы, люди тратят годы жизни.
Объяснять все это здесь я больше смысла не вижу, и на этом свою преподавательскую деятельность заканчиваю.
Весь оффтопик по поводу того, как красивее, пожалуйста, в тему "Программирование и его красоты", а еще лучше в более подходящий тематический форум.
Напоследок, запустите скрипт и посмотрите на диспетчер задач.