任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 852 1...845846847848849850851852853854855856857858859...1178 新评论 cJIecapb 2015.02.18 06:54 #8511 如何在几个柱子中找到 High[]的最大值? Alexey Viktorov 2015.02.18 07:49 #8512 最好使用mql4的新CopyHigh 功能和MathMax 数学函数 或iHighest Maksim Slovakov 2015.02.22 05:48 #8513 早上好,告诉我错误在哪里。///////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////Зона консолидации///////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////// if(Hour()>=10) { for(x9=2; x9<=5; x9++) { x10=Hour()-x9;//x10 -номер свечи от которой считаем восемь свечей назад if(x10>=0) { int Minn=iLowest(NULL, PERIOD_H1, MODE_LOW , x10+8, x10); int Maxx=iHighest(NULL, PERIOD_H1, MODE_HIGH, x10+8, x10); z11 =iHigh(NULL,PERIOD_H1,Maxx); z12 =iLow(NULL, PERIOD_H1,Minn); ZPB =iTime(NULL,PERIOD_H1,x10+8); ZPB1 =iTime(NULL,PERIOD_H1,x10); if(z11-z12<=z10) { y4=ObjectCreate("Зона консолидации",OBJ_RECTANGLE,0,0,0,0,0); y4=ObjectSet("Зона консолидации",OBJPROP_WIDTH,2); y4=ObjectSet("Зона консолидации",OBJPROP_COLOR,Blue); y4=ObjectSet("Зона консолидации",OBJPROP_BACK,true); y4=ObjectMove("Зона консолидации",0,ZPB,z11); y4=ObjectMove("Зона консолидации",1,ZPB1,z12); } } } } //////////////////////////////////////////////////////////////////////////////////////////////////// 这个想法是,在每次迭代时,代码应该检查通道宽度,如果它小于或等于当前值(z11-z12<=z10),就应该画一个矩形,但输出是先通过所有迭代,然后有一个一致性检查。 Any rookie question, so [ARCHIVE!] Any rookie question, [存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. Vitalie Postolache 2015.02.22 10:44 #8514 AlexeyVik:最好使用mql4的新CopyHigh 功能和MathMax 数学函数 或iHighest 如果CopyHigh,那么ArrayMaximum,IMHO... Виктор 2015.02.22 13:23 #8515 请告知如何处理错误1(ERR_NO_RESULT 没有错误,但结果未知)?当欧元兑美元 的订单亏损超过1美元(100点,0.01手),我的专家顾问试图修改订单(将订单的止盈放在其开盘价)。我得到这个错误,我应该怎么做? Alexey Viktorov 2015.02.22 15:40 #8516 evillive: 如果CopyHigh,那么ArrayMaximum,IMHO... 是的,我也是这么想的......。可能会有一些失误和误解。大约一个半月前,第五论坛上也有同样的问题。因此,我在那里谈到了ArrayMaximum,这里有一点被混淆了...... Mikhail Toptunov 2015.02.23 06:44 #8517 你好,我正在使用2000年的移动平均线(MAs)。任务是计算收盘时MA价格的重复次数[1]。- 我怎样才能用最少的资源执行这项任务。 Victor Nikolaev 2015.02.23 11:47 #8518 Top2n:你好,我正在使用2000年的移动平均线(MAs)。任务是计算收盘时MA价格的重复次数[1]。- 我怎样才能用最少的资源执行这项任务。 如果我们不在收盘价上使用第1期,那么重复的次数将为零。但如果我们考虑进入某个范围,这个任务就可以解决,而且更有趣。或者,我们找到最大值和最小值。我们把差额除以范围。然后我们定义一个落入每个muving的范围(我们将考虑一个与范围或区间相对应的数组)。命中率最高的数组索引 是赢家。也许我说得不是很清楚。这个任务最好在一个单独的主题中解决。可能有几种解决方案的变体。而在未来,有人可能需要它们。而在这里,他们事后也不会发现有什么端倪。 [删除] 2015.02.23 15:01 #8519 你好,看了教程,到了GV的变量。我无法理解他们是如何工作的。例如,教程中说,GV变量只能是double类型的。好吧,双倍,所以双倍)。但在列出GlobalVariableSet()、GlobalVariableGet()、GlobalVariableDel()函数时,他们写到其中一个返回时间,另一个返回bool,等等。我脑子里一片混乱,我不明白他们是如何组织的。我最近也开始研究MQL4,我的脑子里有很多新的信息。如果可能的话,请给我解释一下教科书中的一个问题的例子(或你自己的任何问题)。任务24。几个专家顾问同时在终端工作。存款金额为10 000美元。所有未结订单的总价值不应超过存款金额的30%。每个专家顾问都应该被分配相同的金额。创建一个包含计算分配给交易的资金数额的专家顾问程序。int专家。//专家顾问的数量。专家的 double Depo=10000.0, // 指定的存款。 持久性=30。// 给定的百分比 钱。// 被搜索的资金。 string Quantity="GV_Quantity"; // GV-变量的名称 //-------------------------------------------------------------------- int init()//特殊。功能启动 { Experts=GlobalVariableGet(Quantity); // 获取文本值。 Experts=Experts+1; // 专家的数量。 GlobalVariableSet(Quantity, Experts); // 新值 Money=Depo*Persent/100/Experts; // Exp. Alert("对于窗口中的专家", Symbol()," 分配",Money)。 返回。//从init()退出 } //-------------------------------------------------------------------- int start()// 特别。功能启动 { int New_Experts= GlobalVariableGet(Quantity);//新的exp数量。 if (Experts!=New_Experts) // 如果改变了 { Experts=New_Experts; // 现在的数字是 Money=Depo*Persent/100/Experts; // Exper的新值。 Alert("New value for expert" ,Symbol(),": " ,Money); } /* ... 必须在这里指定专家顾问的主代码。 其中使用变量 Money的值 ... */ 返回。//从 start()退出 } //-------------------------------------------------------------------- int deinit( )//正确的。 deinit()函数 { 如果 (专家 ==1)// 如果只有一个专家。. GlobalVariableDel(Quantity); //...删除 GV-变量 否则// 否则。. GlobalVariableSet(Quantity, Experts-1); //...减少1 Alert("EA已从窗口卸载",Symbol()); //通知卸载事宜。 返回。//从deinit()退出。 } Any rookie question, so MQL5 编程基础: 终端中的全局变量 轻松快捷开发 MetaTrader 程序的函数库 (第二十六部分):处理延后交易请求 Mikhail Toptunov 2015.02.24 04:52 #8520 Vinin: 如果你不对收盘价使用周期1,重复次数将为零。但如果你算打到一些范围,那么这个问题可能是可以解决的,而且更有趣。或者,我们可以找到最大和最小值。我们把差额除以范围。然后我们定义一个落入每个muving的范围(我们将考虑一个与范围或区间相对应的数组)。命中率最高的数组索引是赢家。也许我说得不是很清楚。这个任务最好在一个单独的主题中解决。可能有几种解决方案的变体。而在未来,有人可能需要它们。而在这里,他们事后也不会发现什么端倪。我得考虑一下,谢谢。另一个话题 - https://forum.mql4.com/ru/66882 1...845846847848849850851852853854855856857858859...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
最好使用mql4的新CopyHigh 功能和MathMax 数学函数
或iHighest
早上好,告诉我错误在哪里。
/////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////Зона консолидации/////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
if(Hour()>=10)
{
for(x9=2; x9<=5; x9++)
{
x10=Hour()-x9;//x10 -номер свечи от которой считаем восемь свечей назад
if(x10>=0)
{
int Minn=iLowest(NULL, PERIOD_H1, MODE_LOW , x10+8, x10);
int Maxx=iHighest(NULL, PERIOD_H1, MODE_HIGH, x10+8, x10);
z11 =iHigh(NULL,PERIOD_H1,Maxx);
z12 =iLow(NULL, PERIOD_H1,Minn);
ZPB =iTime(NULL,PERIOD_H1,x10+8);
ZPB1 =iTime(NULL,PERIOD_H1,x10);
if(z11-z12<=z10)
{
y4=ObjectCreate("Зона консолидации",OBJ_RECTANGLE,0,0,0,0,0);
y4=ObjectSet("Зона консолидации",OBJPROP_WIDTH,2);
y4=ObjectSet("Зона консолидации",OBJPROP_COLOR,Blue);
y4=ObjectSet("Зона консолидации",OBJPROP_BACK,true);
y4=ObjectMove("Зона консолидации",0,ZPB,z11);
y4=ObjectMove("Зона консолидации",1,ZPB1,z12);
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
最好使用mql4的新CopyHigh 功能和MathMax 数学函数
或iHighest
请告知如何处理错误1(ERR_NO_RESULT 没有错误,但结果未知)?
当欧元兑美元 的订单亏损超过1美元(100点,0.01手),我的专家顾问试图修改订单(将订单的止盈放在其开盘价)。
我得到这个错误,我应该怎么做?
如果CopyHigh,那么ArrayMaximum,IMHO...
你好,我正在使用2000年的移动平均线(MAs)。
任务是计算收盘时MA价格的重复次数[1]。
- 我怎样才能用最少的资源执行这项任务。
你好,我正在使用2000年的移动平均线(MAs)。
任务是计算收盘时MA价格的重复次数[1]。
- 我怎样才能用最少的资源执行这项任务。
你好,看了教程,到了GV的变量。我无法理解他们是如何工作的。例如,教程中说,GV变量只能是double类型的。好吧,双倍,所以双倍)。但在列出GlobalVariableSet()、GlobalVariableGet()、GlobalVariableDel()函数时,他们写到其中一个返回时间,另一个返回bool,等等。我脑子里一片混乱,我不明白他们是如何组织的。我最近也开始研究MQL4,我的脑子里有很多新的信息。如果可能的话,请给我解释一下教科书中的一个问题的例子(或你自己的任何问题)。
任务24。几个专家顾问同时在终端工作。存款金额为10 000美元。所有未结订单的总价值不应超过存款金额的30%。每个专家顾问都应该被分配相同的金额。创建一个包含计算分配给交易的资金数额的专家顾问程序。
int专家。//专家顾问的数量。专家的
double Depo=10000.0, // 指定的存款。
持久性=30。// 给定的百分比
钱。// 被搜索的资金。
string Quantity="GV_Quantity"; // GV-变量的名称
//--------------------------------------------------------------------
int init()//特殊。功能启动
{
Experts=GlobalVariableGet(Quantity); // 获取文本值。
Experts=Experts+1; // 专家的数量。
GlobalVariableSet(Quantity, Experts); // 新值
Money=Depo*Persent/100/Experts; // Exp.
Alert("对于窗口中的专家", Symbol()," 分配",Money)。
返回。//从init()退出
}
//--------------------------------------------------------------------
int start()// 特别。功能启动
{
int New_Experts= GlobalVariableGet(Quantity);//新的exp数量。
if (Experts!=New_Experts) // 如果改变了
{
Experts=New_Experts; // 现在的数字是
Money=Depo*Persent/100/Experts; // Exper的新值。
Alert("New value for expert" ,Symbol(),": " ,Money);
}
/*
...
必须在这里指定专家顾问的主代码。
其中使用变量 Money的值
...
*/
返回。//从 start()退出
}
//--------------------------------------------------------------------
int deinit( )//正确的。 deinit()函数
{
如果 (专家 ==1)// 如果只有一个专家。.
GlobalVariableDel(Quantity); //...删除 GV-变量
否则// 否则。.
GlobalVariableSet(Quantity, Experts-1); //...减少1
Alert("EA已从窗口卸载",Symbol()); //通知卸载事宜。
返回。//从deinit()退出。
}
如果你不对收盘价使用周期1,重复次数将为零。但如果你算打到一些范围,那么这个问题可能是可以解决的,而且更有趣。或者,我们可以找到最大和最小值。我们把差额除以范围。然后我们定义一个落入每个muving的范围(我们将考虑一个与范围或区间相对应的数组)。命中率最高的数组索引是赢家。也许我说得不是很清楚。这个任务最好在一个单独的主题中解决。可能有几种解决方案的变体。而在未来,有人可能需要它们。而在这里,他们事后也不会发现什么端倪。
我得考虑一下,谢谢。
另一个话题 - https://forum.mql4.com/ru/66882