[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 391

 
Integer:


1.你被卡住了。再一次。系统没有办法知道一个流量是否空闲,或者是否执行了一个动作。

系统不需要知道这些。这是这条线的问题。无论哪种方式都会得到处理。它是由系统保证的。当然,除非你自己用代码中的一些错误来阻止它。
 
Zhunko:
系统不需要知道这些。这是一个流量问题。无论如何都会被处理。它是由系统保证的。当然,除非你自己用代码中的一些错误来阻止它。


很久以来就很清楚,你根本就不知道自己在说什么。
 

顺子,你为什么还想在这里说点什么......你甚至不知道你在说什么。你想要这个系统,你不想要这个系统......。你甚至不知道你在说什么。这是关于解决之前所概述的问题...而现在你要开始说这是没有必要的......你已经说过不应该有这样的任务。你在你的脑子里转来转去,你没有意识到,你把自己放在一个大师的角色上。

 
重要的不是流量,而是它的作用,而它并不总是能做到。而你必须引导它做什么。
 
Integer:
重要的不是线,而是它的作用,而且它并不总是这样做。而你必须管理它所做的事情。

在这里 写道。

竺可桢

还有一种情况是需要排队的。但不是线程执行的队列,而是处理从线程收到的数据(线程工作的结果)的顺序。这是队列中最频繁的任务。

这个?

 
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:

这...

我想阿尔勒已经想出了问题的答案,因为我还不能马上掌握解决方案的要领。但那是因为我是个初学者,我需要更多时间先学习理论,然后再尝试实践。但我将努力掌握这件事。


对了,我说的未解决的问题正是指这个问题清单。

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

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

我的意思是,换句话说。- 如果在EA中没有你建议的解决方案块,那么使用大量这样的EA可能会导致问题中描述的情况与风险管理?

让我再解释一下。我不确定这是否过于关键。因此,到目前为止,我一直在考虑它的问题。因为解决问题的速度很高,可能计算机中的解决方案会 "飞过 "计算机的宽比特率通道。- 但也许我错了,因为根据阿尔勒的说法--他每轮只得到2个订单。所以有一个问题。

现在我才明白这个问题 :-))

如果发生这种情况,这就是一个错误的风险问题。如果风险很低,就没有必要同步什么。存款的+-0.0001%并不关键。

 

Zhunko:

现在才明白这个问题:-))

如果发生这种情况,这就是一个错误的风险问题。在低风险的情况下,没有必要同步任何东西。存款的+-0.0001%不是决定性的。

它发生了...当一个人在解决当前的一些问题(议题)时,很难将心思转移到其他任务上。而当有很多任务时,就很难做到面面俱到。: ))时间管理规则。

另一个关于多线程的问题。

谢尔盖-科瓦廖夫的教程描述了一种具有优化Squaredness的方法,专家顾问将在一个循环中工作。如果我们考虑到这一点和多线程,我是否正确理解EA的这种循环行为不会对其他EA、脚本和指标造成不利影响?而我们可以安全地在循环中开始EA的工作?或者最好不要这样做?那么什么时候应该避免呢?

据我所知,这个工作周期是在上面的代码中实现的。也许,这就是我记住它的原因。

顺便问一下,如果在测试器中运行这样一个循环的EA,它的正确性会如何?或者在这种情况下,我们应该 "关闭 "循环?