初学者的问题 MQL5 MT5 MetaTrader 5 - 页 395 1...388389390391392393394395396397398399400401402...1503 新评论 Vitalie Postolache 2015.07.17 09:44 #3941 Максим Вдовицкий: 我没有看到图表上的AVERAGE RANGE脚本窗口 日志通常按顺序写明一切,什么时候打电话,我做了什么,我因为什么被解雇......。 Максим Вдовицкий 2015.07.17 10:03 #3942 谢谢你,都解决了!!。 Максим Вдовицкий 2015.07.18 16:42 #3943 我已经有了新的价格,新的价格,所以你可以戳3min......然后你就不用了。...,然后你就不必这样做了!!! Vitalie Postolache 2015.07.18 20:23 #3944 Максим Вдовицкий: 我已经有了新的价格,新的价格,所以你可以戳3min......然后你就不用了。...,然后你就不必这样做了!!! 有了脚本,同样的事情就会发生,如果他们重新分配 手动交易,他们会重新分配自动交易,甚至更好。 Evgeny Belyaev 2015.07.19 11:27 #3945 Максим Вдовицкий: 我已经有了新的价格,新的价格,所以你可以戳3min......然后你就不用了。......然后你就不必了!!!。 什么经纪人? Максим Вдовицкий 2015.07.19 13:49 #3946 Evgeny Belyaev: 哪个经纪人? 盛大的...我找不到二进制的面板,只有付费的。我找不到二进制的面板,只有付费的,我将感谢那些帮助新手的人。 Roman Shiredchenko 2015.07.20 04:40 #3947 大家好,关于通过投标阵列计算MA的问题。你能告诉我为什么它不计算吗?macurrent0 = 0 постоянноmacurrent1, macurrent2, macurrent3 имеют одинаковое не правильное не меняющееся значение也就是说,它们在评论中总是为零。职能不返回 使用存储在数组中的数据计算的移动平均技术指标 的值 。 doubleiMAOnArray(...extern int Ma_period=15; double xBuffer_Bid []; // Массив значений динамический, в котором индекс - номер тика, значение - это бид int SIZE=0; // Вспомогательная переменная для массива int tickCounter, tickCounter_Current; double MaxSpeed; // максимальная средняя скорость тиков с запуска системы //+------------------------------------------------------------------+ int init() { //--- устанавливаем размер динамического массива if(ArrayResize(xBuffer_Bid, 2000000)<0) {Print(" Ошибка в изменении размера массива "); return(false);} //--- установим индексацию для буфера как в таймсерии для динамического массива // ArraySetAsSeries(xBuffer_Time,true); //--- Возвращает количество элементов указанного массива. int S_Bid=ArraySize(xBuffer_Bid); if (S_Bid>=0) Print("Размер массива S_Бид: ",S_Bid); else Print("Ошибка. Массив S_Time не создан ",S_Bid); ArrayInitialize(xBuffer_Bid, 0); return(0); } //+------------------------------------------------------------------+ int start() { double avgBid = 0; // средняя цена Бид int k=0; // вспомогательная переменная для цикла double Summ_Time = 0; // время поступления крайней котировки для расчёта double avgTime; // среднее время поступление тиков double avgSpeed; // средняя скорость их поступления ArrayResize(xBuffer_Bid,SIZE); // увеличение размера массивов на 1 if (SIZE>0) { xBuffer_Bid[SIZE-1] = NormalizeDouble(MarketInfo(_Symbol, MODE_BID ), Digits); // заполнение массива Bid if (ArraySize(xBuffer_Bid) < 2147483647) // Print (" Текущее значение xBuffer_Bid [SIZE-1] = ", DoubleToStr(xBuffer_Bid[SIZE-1],Digits) ); } Print (" Текущее значение SIZE = ", DoubleToStr(SIZE,2) ); SIZE ++; // счётчик индекса массивов ... // -------------- Расчёт МА по массиву бидов -------------------------- if ( SIZE >= Ma_period) if (ArraySize(xBuffer_Bid) < 2147483647) { double macurrent0=iMAOnArray(xBuffer_Bid,0,Ma_period,0,MODE_EMA,SIZE-1); double macurrent1=iMAOnArray(xBuffer_Bid,0,Ma_period,0,MODE_EMA,SIZE-2); double macurrent2=iMAOnArray(xBuffer_Bid,0,Ma_period,0,MODE_EMA,SIZE-3); double macurrent3=iMAOnArray(xBuffer_Bid,0,Ma_period,0,MODE_EMA,SIZE-4); //Print(" } if (time_s!=0) Comment( "macurrent0 = ", NormalizeDouble(macurrent0,Digits), "\n", "macurrent1 = ", NormalizeDouble(macurrent1,Digits), "\n", "macurrent2 = ", NormalizeDouble(macurrent2,Digits), "\n", "macurrent3 = ", NormalizeDouble(macurrent3,Digits), "\n", "") ; return(0); } Lena Selesneva 2015.07.20 04:53 #3948 我的专家顾问在 "TRADING HISTORY-based FILTER"(www.mql5.com/ru/articles/1441) 一文中工作得很好,但现在它在编译时产生了错误'[' - 当输入参数 无效的索引值: double virtClosedOrders[0][5]; 帮助我理解。 Фильтр на основании истории торговли 2006.11.29Andrey Khatimlianskiiwww.mql5.com В статье рассматривается использование виртуальной торговли, как составной части фильтра открытия сделок. Artyom Trishkin 2015.07.20 06:25 #3949 Roman Shiredchenko:大家好,关于通过投标阵列计算MA的问题。你能告诉我为什么它不计算吗?也就是说,它们在评论中总是为零。职能不返回 使用存储在数组中的数据计算的移动平均技术指标 的值 。 doubleiMAOnArray(...它是否正确地填充了阵列?试着这样填充。//+------------------------------------------------------------------+ //| FillArrays.mq4 | //| Copyright 2015, Artem A. Trishkin, Skype artmedia70 | //| https://login.mql5.com/ru/users/artmedia70 | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, Artem A. Trishkin, Skype artmedia70" #property link "https://login.mql5.com/ru/users/artmedia70" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Input variables | //+------------------------------------------------------------------+ input int NumberOfStorableTicks=20; // Количество сохраняемых тиков int numberOfStorableTicks; // Количество сохраняемых тиков input int PeriodOfMA=5; // Период сглаживания int periodOfMA; // Период сглаживания //+------------------------------------------------------------------+ //| Global variables | //+------------------------------------------------------------------+ string symbol; // Symbol() int digits; // Digits //+------------------------------------------------------------------+ //| Arrays | //+------------------------------------------------------------------+ double Mass_ticks[]; double Mass_smoothed_values[]; //+------------------------------------------------------------------+ //| Structures | //+------------------------------------------------------------------+ MqlTick struct_tick; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- symbol=Symbol(); digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS); //--- numberOfStorableTicks=(NumberOfStorableTicks<2)?2:NumberOfStorableTicks; periodOfMA=(PeriodOfMA<1)?1:PeriodOfMA; //--- ArrayResize(Mass_ticks,numberOfStorableTicks); ArrayInitialize(Mass_ticks,0.0); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Comment(""); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- if(SymbolInfoTick(symbol,struct_tick)) { double tick_bid=struct_tick.bid; FillArrays(numberOfStorableTicks,tick_bid,Mass_ticks); } string txt=""; for(int i=numberOfStorableTicks-1; i>=0; i--) { txt+="\nmass["+IntegerToString(i)+"]: "+DoubleToString(Mass_ticks[i],digits); } Comment(txt); } //+------------------------------------------------------------------+ void FillArrays(int array_size, double price, double &mass_price[]) { //--- сместим данные в массиве влево for(int i=array_size-1; i>0; i--) { mass_price[i]=mass_price[i-1]; } //--- запишем новый тик в массив mass_price[0]=price; } //+------------------------------------------------------------------+首先,要确保数组 中的刻度线是正确的,然后尝试用掩码将其抹平。 Roman Shiredchenko 2015.07.20 07:03 #3950 那么情况是这样的? 如何正确使用iMAonArray?这里有一张图片。 下面是代码。 我搞不清楚为什么同样的数值在这里会出错。 Alert(" macurrent0 = ", DoubleToStr(macurrent0,Digits)); Alert(" macurrent1 = ", DoubleToStr(macurrent1,Digits)); Alert(" macurrent2 = ", DoubleToStr(macurrent2,Digits));在这里,它的计数和输出是正确的--我说的是一个一维数组的最外层的三个单元格的内容。 Alert (" Текущее значение xBuffer_Bid [SIZE-1] = ", DoubleToStr(xBuffer_Bid[SIZE-1],Digits) ); if (SIZE>1) Alert (" Предыдущее значение xBuffer_Bid [SIZE-2] = ", DoubleToStr(xBuffer_Bid[SIZE-2],Digits) ); if (SIZE>2) Alert (" Предпредыдущее значение xBuffer_Bid [SIZE-3] = ", DoubleToStr(xBuffer_Bid[SIZE-3],Digits) ); } ArrayResize(xBuffer_Time,SIZE); ArrayResize(xBuffer_Bid,SIZE); // увеличение размера массивов на 1 if (SIZE>0) { xBuffer_Bid[SIZE-1] = NormalizeDouble(MarketInfo(_Symbol, MODE_BID ), Digits); // заполнение массива Bid if (ArraySize(xBuffer_Bid) < 2147483647) { Alert (" Текущее значение xBuffer_Bid [SIZE-1] = ", DoubleToStr(xBuffer_Bid[SIZE-1],Digits) ); if (SIZE>1) Alert (" Предыдущее значение xBuffer_Bid [SIZE-2] = ", DoubleToStr(xBuffer_Bid[SIZE-2],Digits) ); if (SIZE>2) Alert (" Предпредыдущее значение xBuffer_Bid [SIZE-3] = ", DoubleToStr(xBuffer_Bid[SIZE-3],Digits) ); } } Alert (" Текущее значение SIZE = ", DoubleToStr(SIZE,2) ); if ( SIZE >= Ma_period) if (ArraySize(xBuffer_Bid) < 2147483647) { double macurrent0=iMAOnArray(xBuffer_Bid,0,Ma_period,0,MODE_EMA,SIZE-1); double macurrent1=iMAOnArray(xBuffer_Bid,0,Ma_period,0,MODE_EMA,SIZE-2); double macurrent2=iMAOnArray(xBuffer_Bid,0,Ma_period,0,MODE_EMA,SIZE-3); Alert(" macurrent0 = ", DoubleToStr(macurrent0,Digits)); Alert(" macurrent1 = ", DoubleToStr(macurrent1,Digits)); Alert(" macurrent2 = ", DoubleToStr(macurrent2,Digits)); } SIZE ++; // счётчик индекса массивов для их заполнения необходимо его увеличение 1...388389390391392393394395396397398399400401402...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我没有看到图表上的AVERAGE RANGE脚本窗口
我已经有了新的价格,新的价格,所以你可以戳3min......然后你就不用了。...,然后你就不必这样做了!!!
我已经有了新的价格,新的价格,所以你可以戳3min......然后你就不用了。......然后你就不必了!!!。
哪个经纪人?
大家好,关于通过投标阵列计算MA的问题。
你能告诉我为什么它不计算吗?
macurrent0 = 0 постоянно
也就是说,它们在评论中总是为零。
职能
不返回 使用存储在数组中的数据计算的移动平均技术指标 的值 。
doubleiMAOnArray(
我的专家顾问在 "TRADING HISTORY-based FILTER"(www.mql5.com/ru/articles/1441) 一文中工作得很好,但现在它在编译时产生了错误'[' - 当输入参数 无效的索引值: double virtClosedOrders[0][5]; 帮助我理解。
大家好,关于通过投标阵列计算MA的问题。
你能告诉我为什么它不计算吗?
也就是说,它们在评论中总是为零。
职能
不返回 使用存储在数组中的数据计算的移动平均技术指标 的值 。
doubleiMAOnArray(
它是否正确地填充了阵列?试着这样填充。
首先,要确保数组 中的刻度线是正确的,然后尝试用掩码将其抹平。
那么情况是这样的?
如何正确使用iMAonArray?
这里有一张图片。
下面是代码。
我搞不清楚为什么同样的数值在这里会出错。
在这里,它的计数和输出是正确的--我说的是一个一维数组的最外层的三个单元格的内容。