[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 59 1...525354555657585960616263646566...1145 新评论 [删除] 2009.04.09 09:03 #581 xrust писал(а)>> 你可以,把详细报告的名称改为正常报告,你就会很高兴。 如果不难的话,你能告诉我,这个名字到底在哪里可以更改?用户帮助中根本没有提到这一点。 Rustamzhan Salidzhanov 2009.04.09 09:17 #582 呃......你让我很困惑.... 你从来没有重命名过一个文件? [删除] 2009.04.09 09:17 #583 亲爱的专家,请不要忽视我的问题。 是否有一个统计波动率的指标,比如说每天。但不是那个,它给出了一个未定义的数字,如0.34。但它应该计算出每天的烛台数,并将其除以一个给定的周期(天数),这样指标就能知道平均值。例如:开盘100,收盘200;第二天--开盘200,收盘250。这2天的平均波动率=((200-100)+(250-200))/2天=(100+50)/2=75 如果有的话在哪里下载。 [删除] 2009.04.09 09:33 #584 xrust писал(а)>> 呃......你把我难住了....>> 你从来没有重命名过一个文件吗? 终端应该每20分钟自动生成一份报告,并将其发送到ftp服务器。该函数默认保存一份常规报告。终端的这一功能默认保存的是普通报告,而我希望得到一份带有附加信息和图表的分项报告。你可以手动保存详细的报告,没有任何问题,并选择你想要的历史时期。 首先你把我难住了--我应该手动 重命名什么和什么地方,以组织自动 功能?这一点都不清楚。 Yug 2009.04.09 10:02 #585 重复一个来自https://forum.mql4.com/ru/10422 的帖子,也许我自己的问题在这里更合适。 下面是example.ini 中的一些代码。 [common] numCross=3 [cross1] name=EURUSD [cross2] name=GBPUSD [cross3] name=USDJPY 读取数据对的数量,然后将数据对的名称逐一保存在字符串数组中。 #include <IniFiles.mqh> extern string config_path = "C:\Program Files\MetaTrader - MetaQuotes\experts\example.ini"; string CrossName[]; int numCross=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { string sectionName = "common"; numCross = ReadIniInteger(config_path, sectionName, "numCross", 0); ArrayResize(CrossName, numCross); for (int i=0; i<numCross; i++) { sectionName = StringConcatenate("cross", i+1); CrossName[i] = ReadIniString(config_path, sectionName, "name", "-"); Print("init.1: CrossName[", (i+1), "]=", CrossName[i]); } Print("init.1: read complete"); for (i=0; i<numCross; i++) { Print("init.2: CrossName[", (i+1), "]=", CrossName[i]); } Print("-------------------------------"); for (i=0; i<numCross; i++) { sectionName = StringConcatenate("cross", i+1); CrossName[i] = StringSubstr(ReadIniString(config_path, sectionName, "name", "-"), 0, 0); Print("init.3: CrossName[", (i+1), "]=", CrossName[i]); } Print("init.3: read complete"); for (i=0; i<numCross; i++) { Print("init.4: CrossName[", (i+1), "]=", CrossName[i]); } return(0); } 这似乎很简单,在阅读了ini之后,我们应该得到一个配对名称的数组。 但结果是,在从ini中读取另一个参数并为数组的 另一个元素 赋值后。 所有其他先前分配的元素得到相同的值。 2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[3]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[2]=GBPUSD 2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[1]=EURUSD 2009.04.09 02:17:06 example GBPUSD,H4: init.3: read complete 2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[3]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[2]=GBPUSD 2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[1]=EURUSD 2009.04.09 02:17:06 example GBPUSD,H4: ------------------------------- 2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[3]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[2]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[1]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.1: read complete 2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[3]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[2]=GBPUSD 2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[1]=EURUSD 事实证明,当把一个字符串数组赋值给一个变量时,实际上是把 参考,而不是价值。我找遍了所有可用的文档和论坛,但没有找到任何答案,为什么会这样? 我通过使用StringSubstr 找到了出路,但有些东西告诉我这是不太正确的。 向知道的人提问:如何正确地将其他变量 的值分配给字符串阵列的元素? [WARNING CLOSED!] Any newbie 请教DxdCn老师自从MT4 600更新后,我的EA不能正常运行了,里面附有源码,请指点! Examples: Displaying a News TheXpert 2009.04.09 10:11 #586 Yug >> : 重复一个来自https://forum.mql4.com/ru/10422 的帖子,也许我自己的问题在这里更合适。 我想起来了!字符串实施的特殊性。在数组被调整大小后,它应该被传递并被清零。 ArrayResize( CrossName, numCross); for (int i=0; i< numCross; i++) { CrossName[ i] = ""; } 我可能是错的,但它应该有帮助。 Rustamzhan Salidzhanov 2009.04.09 10:44 #587 XinoXano писал(а)>> 终端应该每20分钟自动生成一份报告,并将其发送到ftp服务器。该函数默认保存一份常规报告。终端的这一功能默认保存的是普通报告,而我希望得到一份带有附加信息和图表的分项报告。你可以手动保存详细的报告,没有任何问题,并选择你想要的历史时期。 首先你把我难住了--为了组织自动 功能,我应该手动 重命名什么和哪里?这一点都不清楚。 报告模板statement.htm 和详细报告StatementDetailed.htm 位于terminal/templates/ 文件夹中。默认情况下,终端会发送普通的Statement.htm 报告,你需要StatementDetailed.htm,我建议你在俄罗斯将windows 环境下的StatementDetailed.htm 文件重命名为statement.htm。或者也可以写出关于重命名的说明? [删除] 2009.04.09 10:45 #588 亲爱的专家们。 请帮助我解决LOKING交易问题 更多细节和代码在这里。帮助我处理 "职位空缺 "的问题。 总是恭敬地。 [删除] 2009.04.09 10:58 #589 xrust писал(а)>> 报告模板statement.htm 和详细报告StatementDetailed.htm 位于terminal/templates/ 文件夹中。默认情况下,终端发送的是常规报告statement.htm,但你需要详细的statementDetailed.htm,我在俄语中建议你将windows 中的StatementDetailed.htm 文件重命名为statement.htm。或者也写出重命名的说明? 没有重命名我自己就可以了,但要把一个模板替换成另一个,我没有想到......。 非常感谢您!现在一切都很清楚,一切都在运作!!!! [删除] 2009.04.09 12:58 #590 Everlost >> : 很简单--当信号Cls_S或Cls_B到来时,我们就会忘记最后打开的位置(将Last_Position变量的值重置为-1)。 if ((Cls_S==true || Cls_B==true) && Last_Position>=0) Last_Position=-1; 我在理论上看到了它,但现在专家顾问完全停止了交易( 我是这样想的。 //Учет ордеров истории int ORDtime=0; double ORDprofit=0.01; int ORDtype=-1; for (int j=OrdersHistoryTotal()-1; j>=0; j--) { if (OrderSelect( j, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==Symbol()) { if (OrderCloseTime()!=0 && OrderCloseTime()> ORDtime) { ORDtime=OrderCloseTime(); ORDtype=OrderType(); ORDprofit=OrderProfit(); } } } } ... //Торговые критерии на открытие и экстренное закрытие ордеров if (( ORDtype==-1)&&(...)) { Opn_B=true; } if (( ORDtype==-1)&&(...)) { Cls_B=true; } if (...) { Opn_S=true; } if (...) { Cls_S=true; } // Дополнительные условия к открытию if (( Cls_B==true|| Cls_S==true)&&( ORDtype>=0)) ORDtype=-1; //ДОПИСАТЬ УСЛОВИЕ ИСТОРИЧЕСКИХ ОРДЕРОВ 是否有某种错误? 1...525354555657585960616263646566...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你可以,把详细报告的名称改为正常报告,你就会很高兴。
如果不难的话,你能告诉我,这个名字到底在哪里可以更改?用户帮助中根本没有提到这一点。
是否有一个统计波动率的指标,比如说每天。但不是那个,它给出了一个未定义的数字,如0.34。但它应该计算出每天的烛台数,并将其除以一个给定的周期(天数),这样指标就能知道平均值。例如:开盘100,收盘200;第二天--开盘200,收盘250。这2天的平均波动率=((200-100)+(250-200))/2天=(100+50)/2=75
如果有的话在哪里下载。
呃......你把我难住了....>> 你从来没有重命名过一个文件吗?
终端应该每20分钟自动生成一份报告,并将其发送到ftp服务器。该函数默认保存一份常规报告。终端的这一功能默认保存的是普通报告,而我希望得到一份带有附加信息和图表的分项报告。你可以手动保存详细的报告,没有任何问题,并选择你想要的历史时期。
首先你把我难住了--我应该手动 重命名什么和什么地方,以组织自动 功能?这一点都不清楚。
重复一个来自https://forum.mql4.com/ru/10422 的帖子,也许我自己的问题在这里更合适。
下面是example.ini 中的一些代码。
[common]
numCross=3
[cross1]
name=EURUSD
[cross2]
name=GBPUSD
[cross3]
name=USDJPY
读取数据对的数量,然后将数据对的名称逐一保存在字符串数组中。
#include <IniFiles.mqh>
extern string config_path = "C:\Program Files\MetaTrader - MetaQuotes\experts\example.ini";
string CrossName[];
int numCross=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
string sectionName = "common";
numCross = ReadIniInteger(config_path, sectionName, "numCross", 0);
ArrayResize(CrossName, numCross);
for (int i=0; i<numCross; i++)
{
sectionName = StringConcatenate("cross", i+1);
CrossName[i] = ReadIniString(config_path, sectionName, "name", "-");
Print("init.1: CrossName[", (i+1), "]=", CrossName[i]);
}
Print("init.1: read complete");
for (i=0; i<numCross; i++)
{
Print("init.2: CrossName[", (i+1), "]=", CrossName[i]);
}
Print("-------------------------------");
for (i=0; i<numCross; i++)
{
sectionName = StringConcatenate("cross", i+1);
CrossName[i] = StringSubstr(ReadIniString(config_path, sectionName, "name", "-"), 0, 0);
Print("init.3: CrossName[", (i+1), "]=", CrossName[i]);
}
Print("init.3: read complete");
for (i=0; i<numCross; i++)
{
Print("init.4: CrossName[", (i+1), "]=", CrossName[i]);
}
return(0);
}
这似乎很简单,在阅读了ini之后,我们应该得到一个配对名称的数组。
但结果是,在从ini中读取另一个参数并为数组的 另一个元素 赋值后。
所有其他先前分配的元素得到相同的值。
2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[2]=GBPUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[1]=EURUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.3: read complete
2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[2]=GBPUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[1]=EURUSD
2009.04.09 02:17:06 example GBPUSD,H4: -------------------------------
2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[2]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[1]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.1: read complete
2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[2]=GBPUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[1]=EURUSD
事实证明,当把一个字符串数组赋值给一个变量时,实际上是把
参考,而不是价值。我找遍了所有可用的文档和论坛,但没有找到任何答案,为什么会这样?
我通过使用StringSubstr 找到了出路,但有些东西告诉我这是不太正确的。
向知道的人提问:如何正确地将其他变量 的值分配给字符串阵列的元素?
重复一个来自https://forum.mql4.com/ru/10422 的帖子,也许我自己的问题在这里更合适。
我想起来了!字符串实施的特殊性。在数组被调整大小后,它应该被传递并被清零。
我可能是错的,但它应该有帮助。终端应该每20分钟自动生成一份报告,并将其发送到ftp服务器。该函数默认保存一份常规报告。终端的这一功能默认保存的是普通报告,而我希望得到一份带有附加信息和图表的分项报告。你可以手动保存详细的报告,没有任何问题,并选择你想要的历史时期。
首先你把我难住了--为了组织自动 功能,我应该手动 重命名什么和哪里?这一点都不清楚。
报告模板statement.htm 和详细报告StatementDetailed.htm 位于terminal/templates/ 文件夹中。默认情况下,终端会发送普通的Statement.htm 报告,你需要StatementDetailed.htm,我建议你在俄罗斯将windows 环境下的StatementDetailed.htm 文件重命名为statement.htm。或者也可以写出关于重命名的说明?
亲爱的专家们。
请帮助我解决LOKING交易问题
更多细节和代码在这里。帮助我处理 "职位空缺 "的问题。
总是恭敬地。
报告模板statement.htm 和详细报告StatementDetailed.htm 位于terminal/templates/ 文件夹中。默认情况下,终端发送的是常规报告statement.htm,但你需要详细的statementDetailed.htm,我在俄语中建议你将windows 中的StatementDetailed.htm 文件重命名为statement.htm。或者也写出重命名的说明?
没有重命名我自己就可以了,但要把一个模板替换成另一个,我没有想到......。
非常感谢您!现在一切都很清楚,一切都在运作!!!!
很简单--当信号Cls_S或Cls_B到来时,我们就会忘记最后打开的位置(将Last_Position变量的值重置为-1)。
if ((Cls_S==true || Cls_B==true) && Last_Position>=0) Last_Position=-1;
我在理论上看到了它,但现在专家顾问完全停止了交易(
我是这样想的。
是否有某种错误?