[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 674 1...667668669670671672673674675676677678679680681...1145 新评论 [删除] 2010.07.06 17:06 #6731 DDFedor: https://www.mql5.com/ru/forum/491 谢谢你。 [删除] 2010.07.06 19:03 #6732 这样的问题。 我开始修改教程中的专家顾问 - strings.mq4(链接到专家http://c.mql4.com/book/mq4/experts/strings.mq4)。 我已经添加了几行,但并不奏效。很明显,我犯了一个错误,但我找不到这个错误。 所以。所有的变化都集中在第10块。 这里是原文。 //-------------------------------------------------------------- 10 -- int Create(int Ind_Bar, int Line) // Custom function... { // ...创建对象 Color; // 对象颜色 datetime T_Bar=Time [Ind_Bar]; // Bar的打开时间。 double O_Bar=Open [Ind_Bar]; // Bar开盘价 double C_Bar=Close[Ind_Bar]; // 柱状图的收盘价 double H_Bar=High [Ind_Bar]; // Bar最高价格 double L_Bar=Low [Ind_Bar]; // 最低杆价 string Nom_Lin =Line + "_"; // String - line number // string Nom_Lin = DoubleToStr(Line,0)+"_"; // This is also possible string Str_Time=TimeToStr(T_Bar); // String - open time. string His_Name=Prefix+Nom_Lin+Str_Time;//创建对象的名称。 if (O_Bar < C_Bar) Color=Blue; // 颜色选择取决于... 如果(O_Bar > C_Bar) 颜色=红色; // ......取决于条形图的特征 如果(O_Bar ==C_Bar)颜色=绿色。 switch(Line) // 细线或粗线 { 例1://细线 ObjectCreate(His_Name,OBJ_TREND,0,T_Bar,H_Bar,T_Bar,L_Bar) 。 break; // 退出开关 情况2://粗线 ObjectCreate(His_Name,OBJ_TREND,0,T_Bar,O_Bar,T_Bar,C_Bar)。 ObjectSet( His_Name, OBJPROP_WIDTH, 3); // Style } ObjectSet( His_Name,OBJPROP_COLOR,Color); // Color ObjectSet( His_Name, OBJPROP_RAY, false); // Beam ObjectSetText(His_Name, "对象是由专家顾问创建的",10); // 说明 return; // 从函数中退出 } 这是我所做的(编译时没有错误):(也见附件)。 //-------------------------------------------------------------- 10 -- int Create(int Ind_Bar, int Line) // Custom function... { // ...创建对象 Color; // 对象颜色 datetime T_Bar=Time [Ind_Bar]; // Bar的打开时间。 double O_Bar=Open [Ind_Bar]; // Bar开盘价 double C_Bar=Close[Ind_Bar]; // 柱状图的收盘价 double H_Bar=High [Ind_Bar]; // Bar最高价格 double L_Bar=Low [Ind_Bar]; // 最低杆价 //-------------------изменения--------------------------------------- double Macd_M_D1=iMACD(NULL,1440,12,26,9,PRICE_CLOSE,MODE_MAIN,0) 。 //顶部--进入主线天的MAACD计算中 double Macd_S_D1=iMACD(NULL,1440,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0) 。 // 这是对MACD的参考,并计算出这几天的信号线。 double Macd_M_H4=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0) 。 // 这是对MACD的参考,并计算当前时间框架上的主线 double Macd_S_H4=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0) 。 // 这是对MACD的参考,并计算出当前时间框架的信号线 string Nom_Lin =Line + "_"; // String - number of the line. // string Nom_Lin = DoubleToStr(Line,0)+"_"; // You can do it this way string Str_Time=TimeToStr(T_Bar); // String - open time. string His_Name=Prefix+Nom_Lin+Str_Time;//创建对象的名称。 如果((Macd_M_D1 < Macd_S_D1)&&(Macd_M_H4 < Macd_S_H4))颜色=蓝色。 如果((Macd_M_D1 > Macd_S_D1)&&(Macd_M_H4 > Macd_S_H4))颜色=红色。 // //if (O_Bar < C_Bar) Color=Blue; //Colour selection depending on... //if (O_Bar > C_Bar) Color=Red; // ......取决于酒吧的特性 //如果(O_Bar ==C_Bar)颜色=绿色。 //-------------------изменения--------------------------------------- 目的是--如果日线和当前时间框架上的MACD读数相似--根据方向,将蜡烛染成红色或蓝色。 附加的文件: expert_vopros.mq4 8 kb [WARNING CLOSED!] Any newbie Please help with a Please help with this Владимир Тезис 2010.07.06 19:57 #6733 你不能像这样声明数组 datetime T_Bar=Time [Ind_Bar]; // Время открытия бара double O_Bar=Open [Ind_Bar]; // Цена открытия бара double C_Bar=Close[Ind_Bar]; // Цена закрытия бара double H_Bar=High [Ind_Bar]; // Максимальная цена бара double L_Bar=Low [Ind_Bar]; // Минимальная цена бара 编译器会看到有一个变量而不是数组的大小。它根本不知道应该为未来的阵列分配多少内存。这就是为什么你的代码不能工作 [删除] 2010.07.06 21:21 #6734 drknn: 你不能像这样声明数组 编译器会看到有一个变量而不是数组的大小。它根本不知道应该为未来的阵列分配多少内存。这就是为什么你的代码不工作的原因 问题是,我没有碰过专家顾问的那一部分--它工作得很好--代码的指定部分取自MQL4教程--这里https://c.mql4.com/book/mq4/experts/strings.mq4。 Владимир Тезис 2010.07.07 00:08 #6735 victor417:问题是,我没有碰过专家顾问的这一部分--而且都能正常工作--提到的那部分代码来自MQL4教程--这里https://c.mql4.com/book/mq4/experts/strings.mq4。 如果这就是教程中数组的声明方式,那就相当奇怪了。你会不会用注释来强调你贡献的那部分代码。 我也没有读过那本教科书。那么,作者对阵列宣言 的合法性的推理是什么呢? Artyom Trishkin 2010.07.07 05:55 #6736 我注意到一个奇怪的特征--报价量越大,测试器越难减慢......如果我从1999年开始测试,它跑得很快,但越接近现在的时间,刹车就越难。2008年,更接近于 "今天"--根本不可能在可视化模式下进行测试。 你是如何从根本上打击测试者的刹车的? VonDo Mix 2010.07.07 06:02 #6737 drknn: 你不能像这样声明数组 datetime T_Bar=Time [Ind_Bar]; // Время открытия бара double O_Bar=Open [Ind_Bar]; // Цена открытия бара double C_Bar=Close[Ind_Bar]; // Цена закрытия бара double H_Bar=High [Ind_Bar]; // Максимальная цена бара double L_Bar=Low [Ind_Bar]; // Минимальная цена бара 编译器会看到有一个变量,而不是数组的大小。它根本不知道应该为未来的阵列分配多少内存。这就是为什么你的代码不起作用。 如果这就是教程中对数组的定义,那真是太奇怪了。你会不会在你写的那部分代码上加一个注释? 我也没有读过那本教科书。那么,作者对阵列宣言的合法性的推理是什么呢? 我看到变量初始化。阵列在哪里? 时间系列?;) Puwkin 2010.07.07 06:34 #6738 你好,谁能做一个之字形的指标,它弯曲的电流从高低点的最小偏差,但以点为单位......例如,如果你设置一个50点的偏差,任何小于这个,它被认为是噪音......我真的不知道如何在论坛上搜索这么大的kollichestvo东西......提前谢谢。 758 2010.07.07 06:39 #6739 请你告诉我,我的测试器有问题。 报告显示,总损失=863,最大缩水=1427。这怎么可能? 如果你看一下平衡曲线--你可以看到,最大的缩减--863。 这是什么故障,请告诉我,也许这就是它应该有的样子? 预先感谢) [删除] 2010.07.07 08:03 #6740 嗨!谁能在这里添加一个跟踪止损;而且每次的止损设置都不一样......请修复它。 附加的文件: a_sidus_1.mq4 5 kb 1...667668669670671672673674675676677678679680681...1145 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
https://www.mql5.com/ru/forum/491
谢谢你。
这样的问题。
我开始修改教程中的专家顾问 - strings.mq4(链接到专家http://c.mql4.com/book/mq4/experts/strings.mq4)。
我已经添加了几行,但并不奏效。很明显,我犯了一个错误,但我找不到这个错误。
所以。所有的变化都集中在第10块。
这里是原文。
//-------------------------------------------------------------- 10 --
int Create(int Ind_Bar, int Line) // Custom function...
{ // ...创建对象
Color; // 对象颜色
datetime T_Bar=Time [Ind_Bar]; // Bar的打开时间。
double O_Bar=Open [Ind_Bar]; // Bar开盘价
double C_Bar=Close[Ind_Bar]; // 柱状图的收盘价
double H_Bar=High [Ind_Bar]; // Bar最高价格
double L_Bar=Low [Ind_Bar]; // 最低杆价
string Nom_Lin =Line + "_"; // String - line number
// string Nom_Lin = DoubleToStr(Line,0)+"_"; // This is also possible
string Str_Time=TimeToStr(T_Bar); // String - open time.
string His_Name=Prefix+Nom_Lin+Str_Time;//创建对象的名称。
if (O_Bar < C_Bar) Color=Blue; // 颜色选择取决于...
如果(O_Bar > C_Bar) 颜色=红色; // ......取决于条形图的特征
如果(O_Bar ==C_Bar)颜色=绿色。
switch(Line) // 细线或粗线
{
例1://细线
ObjectCreate(His_Name,OBJ_TREND,0,T_Bar,H_Bar,T_Bar,L_Bar) 。
break; // 退出开关
情况2://粗线
ObjectCreate(His_Name,OBJ_TREND,0,T_Bar,O_Bar,T_Bar,C_Bar)。
ObjectSet( His_Name, OBJPROP_WIDTH, 3); // Style
}
ObjectSet( His_Name,OBJPROP_COLOR,Color); // Color
ObjectSet( His_Name, OBJPROP_RAY, false); // Beam
ObjectSetText(His_Name, "对象是由专家顾问创建的",10); // 说明
return; // 从函数中退出
}
这是我所做的(编译时没有错误):(也见附件)。
//-------------------------------------------------------------- 10 --int Create(int Ind_Bar, int Line) // Custom function...
{ // ...创建对象
Color; // 对象颜色
datetime T_Bar=Time [Ind_Bar]; // Bar的打开时间。
double O_Bar=Open [Ind_Bar]; // Bar开盘价
double C_Bar=Close[Ind_Bar]; // 柱状图的收盘价
double H_Bar=High [Ind_Bar]; // Bar最高价格
double L_Bar=Low [Ind_Bar]; // 最低杆价
//-------------------изменения---------------------------------------
double Macd_M_D1=iMACD(NULL,1440,12,26,9,PRICE_CLOSE,MODE_MAIN,0) 。
//顶部--进入主线天的MAACD计算中
double Macd_S_D1=iMACD(NULL,1440,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0) 。
// 这是对MACD的参考,并计算出这几天的信号线。
double Macd_M_H4=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0) 。
// 这是对MACD的参考,并计算当前时间框架上的主线
double Macd_S_H4=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0) 。
// 这是对MACD的参考,并计算出当前时间框架的信号线
string Nom_Lin =Line + "_"; // String - number of the line.
// string Nom_Lin = DoubleToStr(Line,0)+"_"; // You can do it this way
string Str_Time=TimeToStr(T_Bar); // String - open time.
string His_Name=Prefix+Nom_Lin+Str_Time;//创建对象的名称。
如果((Macd_M_D1 < Macd_S_D1)&&(Macd_M_H4 < Macd_S_H4))颜色=蓝色。
如果((Macd_M_D1 > Macd_S_D1)&&(Macd_M_H4 > Macd_S_H4))颜色=红色。
//
//if (O_Bar < C_Bar) Color=Blue; //Colour selection depending on...
//if (O_Bar > C_Bar) Color=Red; // ......取决于酒吧的特性
//如果(O_Bar ==C_Bar)颜色=绿色。
//-------------------изменения---------------------------------------
目的是--如果日线和当前时间框架上的MACD读数相似--根据方向,将蜡烛染成红色或蓝色。
你不能像这样声明数组
编译器会看到有一个变量而不是数组的大小。它根本不知道应该为未来的阵列分配多少内存。这就是为什么你的代码不能工作
你不能像这样声明数组
编译器会看到有一个变量而不是数组的大小。它根本不知道应该为未来的阵列分配多少内存。这就是为什么你的代码不工作的原因
问题是,我没有碰过专家顾问的那一部分--它工作得很好--代码的指定部分取自MQL4教程--这里https://c.mql4.com/book/mq4/experts/strings.mq4。
问题是,我没有碰过专家顾问的这一部分--而且都能正常工作--提到的那部分代码来自MQL4教程--这里https://c.mql4.com/book/mq4/experts/strings.mq4。
如果这就是教程中数组的声明方式,那就相当奇怪了。你会不会用注释来强调你贡献的那部分代码。
我也没有读过那本教科书。那么,作者对阵列宣言 的合法性的推理是什么呢?
我注意到一个奇怪的特征--报价量越大,测试器越难减慢......如果我从1999年开始测试,它跑得很快,但越接近现在的时间,刹车就越难。2008年,更接近于 "今天"--根本不可能在可视化模式下进行测试。
你是如何从根本上打击测试者的刹车的?
drknn:
你不能像这样声明数组
编译器会看到有一个变量,而不是数组的大小。它根本不知道应该为未来的阵列分配多少内存。这就是为什么你的代码不起作用。
如果这就是教程中对数组的定义,那真是太奇怪了。你会不会在你写的那部分代码上加一个注释?
我也没有读过那本教科书。那么,作者对阵列宣言的合法性的推理是什么呢?
我看到变量初始化。阵列在哪里?
时间系列?;)
请你告诉我,我的测试器有问题。
报告显示,总损失=863,最大缩水=1427。这怎么可能?
如果你看一下平衡曲线--你可以看到,最大的缩减--863。
这是什么故障,请告诉我,也许这就是它应该有的样子?
预先感谢)