[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 645

 
artmedia70:

几乎没有任何逻辑可言--简单地按顺序一个接一个地输出行......




我会用函数来使其易于理解

//--------------------------------------------------------------- 1 --
// Функция вывода на экран графических сообщений.
//--------------------------------------------------------------- 2 --
  int Informations()
  {
   int   Win_ind;                     // Номер окна индикатора
   int   x,y;
   
   trH4     =Trend_PSAR(NULL,240);  // Четырёхчасовой тренд
   trH1     =Trend_PSAR(NULL,60);   // Часовой тренд
   trM30    =Trend_PSAR(NULL,30);   // Получасовой тренд
   trM15    =Trend_PSAR(NULL,15);   // 15-ти минутный тренд

//--------------------------------------------------------------- 3 --
   Win_ind= WindowFind("Info");        // Ищем номер окна индикатора
   if (Win_ind<0)return;               // Если такого окна нет, уходим
//--------------------------------------------------------------- 4 --
   x =10; y =17;
   MyObject("Equ",         x,    y,   "Свободные средства",                   9, "Tahoma", Gold);
   MyObject("EquVal",      x*23, y,   DoubleToStr(Equ_NEW,2),                 9, "Tahoma", Yellow);

//.................................
   WindowRedraw();                      // Перерисовываем все объекты
   return;
  }


void MyObject(string Name, int X, int Y, string Text, int Size, string Srift, color CL){
   if (ObjectFind(Name)==-1)
      ObjectCreate(Name,OBJ_LABEL,1,0,0,0,0);
   ObjectSet(Name,OBJPROP_XDISTANCE,X);
   ObjectSet(Name,OBJPROP_YDISTANCE,Y);
   ObjectSetText(Name, Text, Size, Srift, CL);
}
 
ToLik_SRGV:

我也想过这个问题,但没有找到任何有用的东西。说到优化,你已经知道了iCustom的伟大刹车:),在指标中,对条数有一个限制,可以计算(通过IndicatorCounted()或通过条数)。在代码中,没有必要为if、while 等不同结构的数量和复杂性而烦恼。你不会有什么收获,但随着时间和经验的积累,代码会变得更加 "美丽"。那么,在可视化模式下,当每一次 "反弹 "都被建模时,几乎在任何情况下都会很慢(当然,取决于系统的复杂性)。我在某处读到,如果在一个dll中进行复杂的计算,会更快,但我没有检查过它。有了dll,也就有了足够的细微差别。

我记得,像TimeCurrent() 这样的命令慢了很多(当代码中有几个这样的命令时)。

-使用一次就好了--把它放到一个变量中,然后再访问这个变量

 
Vinin:


我将使用这些功能,以方便感知

是的,当然,维克多,它的可读性更强。但我已经在尝试,在可能的情况下,写 "正面"--它非常慢,在可能的情况下,我正在努力节省毫秒......
 
chief2000:

我记得像TimeCurrent()这样的命令非常慢(当代码中有几个这样的命令时)。

-使用一次就好了--把它放到一个变量中,然后再访问这个变量

很好!值得翻阅代码并重做...
 
chief2000:

我记得像TimeCurrent()这样的命令非常慢(当代码中有几个这样的命令时)。

-使用一次就好了,即把它存储在一个变量中,然后再访问这个变量

我如何正确地设置这样一个变量,以便以后可以调用它?

我先在全局变量 中声明它

datetime CurTime。

然后在start()中

我给它分配了一个值。

CurTime=TimeCurrent()。

我得到一个错误:'CurTime' - 预期的变量。

如何正确操作?

还有一个问题:如果我不是在start()而是在init()中给一些变量赋值,它们能正常工作吗?

我的意思是,如果在start()开始时有一个变量被分配给这个函数,那么一些函数,例如TimeCurrent(),仍然会在每个刻度上被调用。

 
遗憾的是!CurTime 给出了一个错误,CurrTime 没有...有什么问题呢?
 
artmedia70:
遗憾的是!CurTime 给出了一个错误,而CurrTime 却没有...有什么意义?
关键是CurTime是TimeCurrent函数的 过时名称,所以当变量名称与函数名称重合时,编译器总是会抱怨......。
 
keekkenen:
关键是CurTime是TimeCurrent函数的过时名称,所以如果一个变量名称与一个函数名称相匹配,编译器总是抱怨。
好吧!谢谢你,我以后会知道的。
 

朋友们,我的个人逻辑块有点不灵了。我无法决定在这种情况下如何做人。

我们在两个方向工作,即买入和卖出都有自己独立的控制单元。可以反方向开仓,这完全取决于每个TF中市场的走势。

假设卖出和买入是开放的(在M5和M15上),市场突然转向相反的方向,与M5和M15上开放的卖出相反(好吧,不管世界上有什么情况......)的情况。在这种情况下,所有未平仓的卖出开始大大增加缩减,由于我们也有未平仓的买入,所以有可能在买入和卖出中都关闭一些头寸,以最小的损失关闭亏损的卖出,而牺牲已平仓的买入。

所以,我无法决定这种情况的逻辑。它应该是什么?

为了以防万一,这里有一个例子。


 

好人们,回到昨天的话题。

   double c1b[];
   for(i=1;i<=PeriodB;i++)
   {
   c1b[i]=iCCI(NULL,0,PeriodB,PRICE_TYPICAL,i);
   }
   double c1b_1=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,1);
   double c1b_2=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,2);
   double c1b_3=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,3);
   
   double c1s[];
   for(i=1;i<=PeriodS;i++)
   {
   c1s[i]=iCCI(NULL,0,PeriodS,PRICE_TYPICAL,i);
   }
   double c1s_1=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,1);
   double c1s_2=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,2);
   double c1s_3=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,3);

if (NormalizeDouble(c1s_1,4)>NormalizeDouble(c1s_2,4)&&NormalizeDouble(c1s_2,4)<NormalizeDouble(c1s_3,4))
//if (c1s_1>c1s_2&&c1s_2<c1s_3)
     {                                          // 
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
if (NormalizeDouble(c1b_1,4)<NormalizeDouble(c1b_2,4)&&NormalizeDouble(c1b_2,4)>NormalizeDouble(c1b_3,4))
//if (c1b_1<c1b_2&&c1b_2>c1b_3)
     {                                          // 
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }

请告诉我日志上的信息是什么意思。

2010.06.24 17:28:26 TestGenerator: 未匹配的数据错误(2010.01.06 08:00的体积限制5357超过了)

原因: