[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 391

 
Integer:


1. Ну тя и заклинило. Еще раз повторяю. Система не может знать прошел поток вхолостую или же выполнял какие-то дйствия.

Системе не надо это знать. Это проблема потока. Он обработается в любом случае. Это гарантировано системой. Если, конечно, ты его сам не застопоришь какими-либо ошибками в коде.
 
Zhunko:
Системе не надо это знать. Это проблема потока. Он обработается в любом случае. Это гарантировано системой. Если, конечно, ты его сам не застопоришь какими-либо ошибками в коде.


Да уже давно ясно, что ты вообще не вкатил о чем разговор.
 

Жунко, зачем ты вообще пытаешься здесь что-то это... а сам даже не соображаешь о чем разговор. Надо системе, не надо системе... Ты вообще не вкатываешь о чем разговор. Это надо для решения ранее обозначенной задачи... и тут ты опять сечас начнешь, что этого не надо... Уже же выдал, что задачи такое не должно быть. Ходишь по круг в мыслях и сам этого не осознаешь, а еще натянул на себя роль гуру. 

 
Не поток важен, а то, что он делает, а делает это он не всегда. А рулить надо тем, что он делает. 
 
Integer:
Не поток важен, а то, что он делает, а делает это он не всегда. А рулить надо тем, что он делает. 

Здесь писал: 

Zhunko:

Есть ещё один случай, когда нужна очередь. Но не очередь исполнения потоков, а порядок обработки полученных данных от потоков (результатов работы потоков). Это наиболее частая задача для очередей.

Это?

 
Zhunko:

Здесь писал: 

Это?

Примерно похоже. Однако пред этим были такие утверждения что порядок вообще не важен. А здесь вообще обозначилось, когда не только равномерно задачи надо выполнять, а еще в определенной последоватльености (пусть не выполнять, а собирать данные для последующей обработки, а то ведь докулпаешься до не точности высказывания). Теперь твоя очередь ответить - я в курсе я так и делал... тогда чтоже было последние 10 страниц? 
 
подскажите плиз, это нормально если при прогоне 1 раз за один год истории (300-400 сделок )  тестер создает лог файл весом до  гигабайта... ?  
 
lottamer:
подскажите плиз, это нормально если при прогоне 1 раз за один год истории (300-400 сделок )  тестер создает лог файл весом до  гигабайта... ?  

В принципе нормально:) Не так чтобы нормально или не нормально, просто он так делает и все. Посмотрите что пишет, если сообщения об ошибках, надо принять какие-то меры с этими ошибками. Если какие-то информационные собщения - надо их отключить (если есть выключатель) или закомментировать вызов функций Print()(), Comment(), Alert().
 
Integer:

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

То, что было, это от отсутствия объяснения с твоей стороны. Написал ещё на 381 странице. Если бы ты прочитал мой ответ, то заметил бы и сказал.

===================

1. Есть несколько независимых потоков.

2. Результаты складываются в некоторую очередь.

3. Эта очередь является общим ресурсом.

4. Необходимо синхронизировать обращение потоков к общей очереди результатов.

Так?

===================

Вот так должно работать правильно без удаления глобальной переменной:

#property show_inputs

extern int Pause = 1000;

int    hwndChart = NULL; // Уникальный идентификатор скрипта.
string sName = "Condition";

void init()
 {
  hwndChart = WindowHandle(Symbol(), 0);
  // Создаём глобальную переменную синхронизации скриптов.
  if (!GlobalVariableCheck(sName)) GlobalVariableSet(sName, 0);
 }
 
void deinit()
 {
  while (!IsStopped())
   {
    if (!GlobalVariableSetOnCondition(sName, hwndChart, 0)) continue;
    if (GlobalVariableSetOnCondition(sName, 0, hwndChart)) return;
   }
 }

void start()
 {
  while (!IsStopped())
   {
    Sleep(200); // Имитация тика.
    // Начало блока синхронизации.
    if (!GlobalVariableSetOnCondition(sName, hwndChart, 0)) continue;
    if (GlobalVariableGet(sName) == hwndChart)
     {
      Print("Start");
      Sleep(Pause); // Имитация работы.
      Print("End");
     }
    GlobalVariableSetOnCondition(sName, 0, hwndChart);
   } // Завершение блока синхронизации.
 }

Chiripaha:

Эта...

Я думаю, что Арлес разобрался с ответом на вопрос, т.к. мне не сразу пока удается схватить суть решения. Но это потому, что я новичок и мне нужно больше времени, чтобы сначала теорию изучить, а потом практику испробовать. Но я постараюсь это дело освоить.


Верно, под нерешенным вопросом я имел ввиду именно этот список вопросов.

................

====================================

Т.е., другими словами. - Если в советнике нету блока предложенного Вами решения, то при использовании кучи таких советников может возникнуть ситуация, описанная в поставленном вопросе с Риск-Менеджментом?

Еще немножко пояснюсь. Я не уверен, что это сильно критический момент. Поэтому рассматриваю его пока гепотетически. Поскольку скорость решения задач высокая и, вероятно, решения в компе будут "пролетать" сквозь широкий канал битности компа. - Но может я и неправ в этом, т.к. по словам Арлеса - у него как раз и получается по 2 ордера на круг. Значит, проблема есть.

Только сейчас понял вопрос :-))

Если такое происходит, то это проблема неправильно выбранного риска. При небольшом риске ничего синхронизировать не надо. +- 0,0001% от депозита решающего значения не имеют.

 

Zhunko:

Только сейчас понял вопрос :-))

Если такое происходит, то это проблема неправильно выбранного риска. При небольшом риске ничего синхронизировать не надо. +- 0,0001% от депозита решающего значения не имеют.

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

Еще вопрос в тему многопоточности.

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

Как я понимаю, в коде чуть выше именно эта цикличность работы и реализована. Наверное, именно поэтому и вспомнил.

И, кстати, если подобного цикличного советника в тестере прогонять, то насколько это будет корректным? Или для этого случая цикл нужно "отключать"?