[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 645 1...638639640641642643644645646647648649650651652...1145 新评论 Victor Nikolaev 2010.06.24 01:31 #6441 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); } Oleg 2010.06.24 02:30 #6442 ToLik_SRGV: 我也想过这个问题,但没有找到任何有用的东西。说到优化,你已经知道了iCustom的伟大刹车:),在指标中,对条数有一个限制,可以计算(通过IndicatorCounted()或通过条数)。在代码中,没有必要为if、while 等不同结构的数量和复杂性而烦恼。你不会有什么收获,但随着时间和经验的积累,代码会变得更加 "美丽"。那么,在可视化模式下,当每一次 "反弹 "都被建模时,几乎在任何情况下都会很慢(当然,取决于系统的复杂性)。我在某处读到,如果在一个dll中进行复杂的计算,会更快,但我没有检查过它。有了dll,也就有了足够的细微差别。 我记得,像TimeCurrent() 这样的命令慢了很多(当代码中有几个这样的命令时)。 -使用一次就好了--把它放到一个变量中,然后再访问这个变量。 Artyom Trishkin 2010.06.24 10:10 #6443 Vinin: 我将使用这些功能,以方便感知 是的,当然,维克多,它的可读性更强。但我已经在尝试,在可能的情况下,写 "正面"--它非常慢,在可能的情况下,我正在努力节省毫秒...... Artyom Trishkin 2010.06.24 10:12 #6444 chief2000: 我记得像TimeCurrent()这样的命令非常慢(当代码中有几个这样的命令时)。 -使用一次就好了--把它放到一个变量中,然后再访问这个变量。 很好!值得翻阅代码并重做... Artyom Trishkin 2010.06.24 11:05 #6445 chief2000: 我记得像TimeCurrent()这样的命令非常慢(当代码中有几个这样的命令时)。 -使用一次就好了,即把它存储在一个变量中,然后再访问这个变量。 我如何正确地设置这样一个变量,以便以后可以调用它? 我先在全局变量 中声明它 datetime CurTime。 然后在start()中 我给它分配了一个值。 CurTime=TimeCurrent()。 我得到一个错误:'CurTime' - 预期的变量。 如何正确操作? 还有一个问题:如果我不是在start()而是在init()中给一些变量赋值,它们能正常工作吗? 我的意思是,如果在start()开始时有一个变量被分配给这个函数,那么一些函数,例如TimeCurrent(),仍然会在每个刻度上被调用。 Artyom Trishkin 2010.06.24 11:15 #6446 遗憾的是!CurTime 给出了一个错误,CurrTime 没有...有什么问题呢? keekkenen 2010.06.24 11:39 #6447 artmedia70: 遗憾的是!CurTime 给出了一个错误,而CurrTime 却没有...有什么意义? 关键是CurTime是TimeCurrent函数的 过时名称,所以当变量名称与函数名称重合时,编译器总是会抱怨......。 Artyom Trishkin 2010.06.24 11:51 #6448 keekkenen: 关键是CurTime是TimeCurrent函数的过时名称,所以如果一个变量名称与一个函数名称相匹配,编译器总是抱怨。 好吧!谢谢你,我以后会知道的。 Artyom Trishkin 2010.06.24 12:04 #6449 朋友们,我的个人逻辑块有点不灵了。我无法决定在这种情况下如何做人。 我们在两个方向工作,即买入和卖出都有自己独立的控制单元。可以反方向开仓,这完全取决于每个TF中市场的走势。 假设卖出和买入是开放的(在M5和M15上),市场突然转向相反的方向,与M5和M15上开放的卖出相反(好吧,不管世界上有什么情况......)的情况。在这种情况下,所有未平仓的卖出开始大大增加缩减,由于我们也有未平仓的买入,所以有可能在买入和卖出中都关闭一些头寸,以最小的损失关闭亏损的卖出,而牺牲已平仓的买入。 所以,我无法决定这种情况的逻辑。它应该是什么? 为了以防万一,这里有一个例子。 Craft 2010.06.24 15:36 #6450 好人们,回到昨天的话题。 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超过了) 1...638639640641642643644645646647648649650651652...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
几乎没有任何逻辑可言--简单地按顺序一个接一个地输出行......
我会用函数来使其易于理解
我也想过这个问题,但没有找到任何有用的东西。说到优化,你已经知道了iCustom的伟大刹车:),在指标中,对条数有一个限制,可以计算(通过IndicatorCounted()或通过条数)。在代码中,没有必要为if、while 等不同结构的数量和复杂性而烦恼。你不会有什么收获,但随着时间和经验的积累,代码会变得更加 "美丽"。那么,在可视化模式下,当每一次 "反弹 "都被建模时,几乎在任何情况下都会很慢(当然,取决于系统的复杂性)。我在某处读到,如果在一个dll中进行复杂的计算,会更快,但我没有检查过它。有了dll,也就有了足够的细微差别。
我记得,像TimeCurrent() 这样的命令慢了很多(当代码中有几个这样的命令时)。
-使用一次就好了--把它放到一个变量中,然后再访问这个变量。
我将使用这些功能,以方便感知
我记得像TimeCurrent()这样的命令非常慢(当代码中有几个这样的命令时)。
-使用一次就好了--把它放到一个变量中,然后再访问这个变量。
我记得像TimeCurrent()这样的命令非常慢(当代码中有几个这样的命令时)。
-使用一次就好了,即把它存储在一个变量中,然后再访问这个变量。
我如何正确地设置这样一个变量,以便以后可以调用它?
我先在全局变量 中声明它
datetime CurTime。
然后在start()中
我给它分配了一个值。
CurTime=TimeCurrent()。
我得到一个错误:'CurTime' - 预期的变量。
如何正确操作?
还有一个问题:如果我不是在start()而是在init()中给一些变量赋值,它们能正常工作吗?
我的意思是,如果在start()开始时有一个变量被分配给这个函数,那么一些函数,例如TimeCurrent(),仍然会在每个刻度上被调用。
遗憾的是!CurTime 给出了一个错误,而CurrTime 却没有...有什么意义?
关键是CurTime是TimeCurrent函数的过时名称,所以如果一个变量名称与一个函数名称相匹配,编译器总是抱怨。
朋友们,我的个人逻辑块有点不灵了。我无法决定在这种情况下如何做人。
我们在两个方向工作,即买入和卖出都有自己独立的控制单元。可以反方向开仓,这完全取决于每个TF中市场的走势。
假设卖出和买入是开放的(在M5和M15上),市场突然转向相反的方向,与M5和M15上开放的卖出相反(好吧,不管世界上有什么情况......)的情况。在这种情况下,所有未平仓的卖出开始大大增加缩减,由于我们也有未平仓的买入,所以有可能在买入和卖出中都关闭一些头寸,以最小的损失关闭亏损的卖出,而牺牲已平仓的买入。
所以,我无法决定这种情况的逻辑。它应该是什么?
为了以防万一,这里有一个例子。
好人们,回到昨天的话题。
请告诉我日志上的信息是什么意思。
2010.06.24 17:28:26 TestGenerator: 未匹配的数据错误(2010.01.06 08:00的体积限制5357超过了)