新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 378 1...371372373374375376377378379380381382383384385...1953 新评论 YarTrade 2017.11.14 11:38 #3771 谁能告诉我怎么写下面的东西。我做了一个训练指标,对每个tick的iVolume进行计数:上升的iVolume为正,下降的iVolume为负。为了制作一条曲线,所有的iVolume(正数和负数)我都会在条形图之间增加总数。得到了一条曲线。然而,我遇到了两个问题。1) 线路变的很断。2)不可能测试专家顾问,因为获得的iVolume图表只有一个真实的生活。问题。1)如何描述允许根据我写在缓冲区的平均数据建立图表的代码?2)是否有可能将该指标的数据(在真实模式下收到的)写入某个文件,以便以后参照这个文件,我们可以在历史数据上建立指标,将已经收集的tick量应用到这些数据上?如果可能的话,如何用程序化的方式来描述它?或者有其他解决方案,不需要将 当前的iVolume信息写入文件?#property version "1.00" #property strict #property indicator_separate_window #property indicator_buffers 2 #property indicator_label1 "Вверх" #property indicator_type1 DRAW_LINE #property indicator_color1 Salmon #property indicator_style1 STYLE_SOLID #property indicator_width1 2 #property indicator_label2 "Вниз" #property indicator_type2 DRAW_LINE #property indicator_color2 clrDarkTurquoise #property indicator_style2 STYLE_SOLID #property indicator_width2 2 datetime Время=0; // Время прошлого бара double Bid1; double Buf_1[]; long V1; // объем для текущего тика вверх long V2; // накопленный объем для всех тиков вверх текущего бара long V3; // объем текущего тика вниз long V4; // накопленный объем для всех тиков вниз для текущего бара long V5; // отрицательные и положительные iVolume нарастающим итогом void OnInit() { IndicatorDigits(0); SetIndexBuffer(0,Buf_1); //SetIndexBuffer(1,Buf_2); Bid1=Bid; V5 = 0; } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { datetime Вр=Time[0]; // Время текущего бара if(Вр>Время) // Если новый бар { Время=Вр; // Запомнить // Buf_1[0]=0; // и обнулить последний элемент буфера } if(Bid >= Bid1) { if(Bid > Bid1) { V1 = iVolume(NULL, 0, 0); // если повышающий цену тик V2 = V1 + V2; } else { V1 = 0; // если Bid1 = Bid2, т.е. изменение цены = 0, то iVolume этого тика присваиваем 0; V2 = V1 + V2; } } else { V3 = iVolume(NULL, 0, 0); // если понижающий цену тик V4 = V3 + V4; } V5 = V2-V4; Bid1=Bid; Buf_1[0]= V5; // в буфер сгружаем return(rates_total); } YarTrade 2017.11.14 11:45 #3772 也许在代码的末尾添加。 double macurrent=iMAOnArray(Buf_1[0],0,5,0,MODE_LWMA,0)。 诶,不!编译器产生了错误,说没有数组。 kirill1405 2017.11.14 19:35 #3773 你好,你能告诉我策略面包机中的惊叹号是什么意思吗? 附加的文件: 4cznte_mywjud_2017-11-14_s_23.32.01.png 12 kb YarTrade 2017.11.15 08:14 #3774 Anyone.....,你能帮忙吗?我的死穴在这里列出:https://www.mql5.com/ru/forum/160683/page378#comment_6053255 [删除] 2017.11.16 05:29 #3775 YarTrade: 是否有可能将这个指标的数据(在真实模式下获得的)写入一个文件,以便以后参照这个文件,有可能在历史数据上建立一个指标,将已经收集到的tick volume应用到其中?如果可能的话,如何用程序化的方式来描述它?或者有其他的解决方案,不需要将 当前的iVolume信息写入文件中? 基于文件数据的指标--在搜索中输入这一行,发现 LuckySith 2017.11.16 13:07 #3776 某种恶梦,我不明白为什么它会发出这样的声音: Code section : line[0]=MathFloor(Low[1]*MathPow(10,D-1)); Print("Var",DoubleToStr(line[0],D)); Print("Code",DoubleToStr(MathFloor(Low[1]*MathPow(10,D-1)),D)); Output : EURUSD,M15: Var 0。00000 EURUSD,M15: Code 11754.00000 赋值后会发生什么? Konstantin Erin 2017.11.16 14:35 #3777 LuckySith: Code section :line[0]=MathFloor(Low[1]*MathPow(10,D-1)); Print("Var",DoubleToStr(line[0],D)); Print("Code",DoubleToStr(MathFloor(Low[1]*MathPow(10,D-1)),D)); Print : EURUSD,M15: Var 0。00000 EURUSD,M15: Code 11754.00000 赋值后会发生什么?打印 赋值后的变量的值 和变量D的值。用你的计算器来计算吧。 HUNTERGOOD 2017.11.16 16:38 #3778 大家好。朋友们,请你们给我们一点帮助好吗?谁能在指标中设置一行可以指定声音文件的名称,以便在指标设置 中显示这一行。 附加的文件: Awesome-33.ex4 16 kb LuckySith 2017.11.16 16:50 #3779 STARIJ:打印出赋值后的变量值和变量D的值。让我们用计算器计算一下...所以我在赋值后打印出变量的值。因此,代码基本上是以下内容。a=b。打印(a)。打印(b)。但a等于0,b被正确打印出来了 Taras Slobodyanik 2017.11.16 16:56 #3780 LuckySith: 我就是这样输出被分配的值的。因此,代码基本如下。a=b。打印(a)。打印(b)。但a等于零,而b却打印正确我没有看到零,你在某处犯了一个错误。 int D=5; double a=MathFloor(Low[1]*MathPow(10,D-1)); Print("Var ",DoubleToStr(a,D)); Print("Code ",DoubleToStr(MathFloor(Low[1]*MathPow(10,D-1)),D)); 1...371372373374375376377378379380381382383384385...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谁能告诉我怎么写下面的东西。
我做了一个训练指标,对每个tick的iVolume进行计数:上升的iVolume为正,下降的iVolume为负。为了制作一条曲线,所有的iVolume(正数和负数)我都会在条形图之间增加总数。得到了一条曲线。然而,我遇到了两个问题。
1) 线路变的很断。
2)不可能测试专家顾问,因为获得的iVolume图表只有一个真实的生活。
问题。
1)如何描述允许根据我写在缓冲区的平均数据建立图表的代码?
2)是否有可能将该指标的数据(在真实模式下收到的)写入某个文件,以便以后参照这个文件,我们可以在历史数据上建立指标,将已经收集的tick量应用到这些数据上?如果可能的话,如何用程序化的方式来描述它?或者有其他解决方案,不需要将 当前的iVolume信息写入文件?
也许在代码的末尾添加。
double macurrent=iMAOnArray(Buf_1[0],0,5,0,MODE_LWMA,0)。
诶,不!编译器产生了错误,说没有数组。
Anyone.....,你能帮忙吗?我的死穴在这里列出:https://www.mql5.com/ru/forum/160683/page378#comment_6053255
基于文件数据的指标--在搜索中输入这一行,发现
某种恶梦,我不明白为什么它会发出这样的声音:
Code section :
line[0]=MathFloor(Low[1]*MathPow(10,D-1));
Print("Var",DoubleToStr(line[0],D));
Print("Code",DoubleToStr(MathFloor(Low[1]*MathPow(10,D-1)),D));
Output :
EURUSD,M15: Var 0。00000
EURUSD,M15: Code 11754.00000
赋值后会发生什么?
line[0]=MathFloor(Low[1]*MathPow(10,D-1));
Print("Var",DoubleToStr(line[0],D));
Print("Code",DoubleToStr(MathFloor(Low[1]*MathPow(10,D-1)),D));
Print :
EURUSD,M15: Var 0。00000
EURUSD,M15: Code 11754.00000
赋值后会发生什么?
打印 赋值后的变量的值 和变量D的值。用你的计算器来计算吧。
大家好。朋友们,请你们给我们一点帮助好吗?谁能在指标中设置一行可以指定声音文件的名称,以便在指标设置 中显示这一行。
打印出赋值后的变量值和变量D的值。让我们用计算器计算一下...
所以我在赋值后打印出变量的值。因此,代码基本上是以下内容。
a=b。
打印(a)。
打印(b)。
但a等于0,b被正确打印出来了
我就是这样输出被分配的值的。因此,代码基本如下。
a=b。
打印(a)。
打印(b)。
但a等于零,而b却打印正确
我没有看到零,你在某处犯了一个错误。