任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 488 1...481482483484485486487488489490491492493494495...1178 新评论 Leo59 2014.02.18 17:55 #4871 有两个指标Ind_1和Ind_GV。Ind_GV指标与Ind_1不同的是,它从客户终端的全局变量 中接收其中一个设置值。 当Ind_1和Ind_GV设置匹配时,Ind_GV的结果值与Ind_1略有不同。 如果我在Ind_1和Ind_GV匹配时暂停测试器,并编译Ind_GV,则两个指标的结果值完全匹配。 谁知道这可以如何解释? culler 2014.02.18 20:32 #4872 你能告诉我,在优化 模式下,我是否需要专家顾问中的任何代码来运行策略测试器? 我正在努力优化我的专家顾问,但我不知道是什么原因。 2014.02.18 21:54:30.386 Tester: 找到缓存文件 "C:\...\tester\cachestest.NZDUSD5.0",可以用于进一步优化。 2014.02.18 21:54:30.388 TestGenerator: 发现实际的tick文件 "C:\...\testerhistory\NZDUSD5_0.fxt"。 我们有历史。NZDUSD5_0.fxt文件重约150米。 你也可以在测试人员的日志中看到这一点 2014.02.18 22:50:21.251 TestGenerator: 未匹配的数据错误(在2014.02.12 13:35超过了体积限制305)。 这是什么情况? [删除] 2014.02.18 23:58 #4873 请提供帮助! 每个变量都可以取1到5的值......告诉我如何不写3125个选项))))。 if (Kx==5&& K>T && K>SA && K>SB && K>Bid && Tx==4&& T<K && T>SA && T>SB && T>Bid && SAx==3&& SA<K && SA<T && SA>SB && SA>Bid && SBx==2&& SB<K && SB<T && SB<SA && SB>Bid && BID==1&& Bid<K && Bid<T && Bid<SA && Bid<SB ) Алексей Тарабанов 2014.02.19 00:07 #4874 niktron: 请提供帮助! 每个变量都可以取1到5的值......告诉我如何不写3125个选项))))。 抽出25个选择,然后处理谁更大。 [删除] 2014.02.19 00:26 #4875 tara: 抽出25个选项,然后在之后处理谁更大的问题。 谢谢......这就是我现在要做的......我想用数组做,但我没有牵引力......) [删除] 2014.02.19 00:30 #4876 最后有3125个选项,而不是25个......但把它分成25个选项也是一件事))。 Алексей Тарабанов 2014.02.19 00:30 #4877 直接写下你的意见,它们会在事后有所帮助。 Алексей Тарабанов 2014.02.19 00:36 #4878 去了一个女人。 NEP 2014.02.19 03:27 #4879 请帮助解决带有".mqh "附件的指标。 指标缓冲区ExtBuffer1[]、ExtBuffer2[]和Buffer_M[]的大小为0。 同时,缓冲区ExtBuffer0[]工作正常,其大小等于Bars,应该是这样。最有趣的是,在更新到新版本的MT4之前,它在旧版本的MT4中运行良好。还有一件事。如果我把一个指标的所有元素移到同一个基本的mq4文件中,一切又都能正常工作。 问题:为什么附件中指标缓冲区的数组大小 会被重置为0? 以下是该指标的源代码。 //+------------------------------------------------------------------+ //| AO_EMA_(with_includes).mq4 | //+------------------------------------------------------------------+ #include <AO_EMA_(with_includes)_GLOB.mqh> //-------------------------------------------- int init() { #include <AO_EMA_(with_includes)_INIT.mqh> return(0); } //-------------------------------------------- int start() { #include <AO_EMA_(with_includes)_START.mqh> return(0); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| AO_EMA_(with_includes)_GLOB.mq4 | //+------------------------------------------------------------------+ #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Black #property indicator_color2 Green #property indicator_color3 Red //---- Input Data extern int Slow = 100; extern double Slow_Fast = 4.318; extern int Average = 25; // Усреднение АО extern bool Show_AO_G = true, Show_AO_R = true; //---- Глобальные переменные int Fast; bool Alert_done = false; // Флаг говорит о том, что Alert уже был раз сгенерирован. //---- indicator buffers double ExtBuffer0[]; double ExtBuffer1[]; double ExtBuffer2[]; //---- Буфера индикатора, для промежуточных расчетов double Buffer_M[]; //+------------------------------------------------------------------+ //| AO_EMA_(with_includes)_INIT.mq4 | //+------------------------------------------------------------------+ //---- Установка значение для переменной "Fast" Fast = NormalizeDouble(Slow / Slow_Fast, 0); //---- indicator buffers mapping SetIndexBuffer(0, ExtBuffer0); SetIndexBuffer(1, ExtBuffer1); SetIndexBuffer(2, ExtBuffer2); SetIndexBuffer(3, Buffer_M); //---- drawing settings SetIndexStyle(0, DRAW_NONE); // Линия не рисуется SetIndexStyle(1, DRAW_HISTOGRAM); // Гистограмма SetIndexStyle(2, DRAW_HISTOGRAM); // Гистограмма SetIndexStyle(3, DRAW_NONE); // Линия не рисуется //---- drawing begin settings SetIndexDrawBegin(0, Fast); // Индикатор начинает рисоваться с этого бара, от начала графика слева. SetIndexDrawBegin(1, Fast); SetIndexDrawBegin(2, Slow); SetIndexDrawBegin(3, Slow); IndicatorDigits(Digits+1); //---- name for DataWindow and indicator subwindow label IndicatorShortName("AO_EMA ("+Fast+"-"+Slow+")"); SetIndexLabel(1,"Green"); SetIndexLabel(2,"Red"); //---- Обнуляем буфер индикатора SetIndexEmptyValue(0, 0.0); SetIndexEmptyValue(1, 0.0); SetIndexEmptyValue(2, 0.0); SetIndexEmptyValue(3, 0.0); //---- initialization done //+------------------------------------------------------------------+ //| AO_EMA_(with_includes)_START.mq4 | //+------------------------------------------------------------------+ int limit, pos; int counted_bars=IndicatorCounted(); double prev,current, pr; bool up; //---- Последний посчитанный бар будет пересчитан if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; Print("counted_bars=",counted_bars," Bars=",Bars," limit=",limit); Print("0=",ArraySize(ExtBuffer0)," 1=",ArraySize(ExtBuffer1)," 2=",ArraySize(ExtBuffer2)," M=",ArraySize(Buffer_M)); //---- Расчет MACD для Гистограммы "= EMA(fast) - EMA(slow)" if(Show_AO_G == true || Show_AO_R == true) { for(int i=0; i<limit; i++) Buffer_M[i]=iMA(NULL,0,Fast,0,MODE_EMA,PRICE_MEDIAN,i)-iMA(NULL,0,Slow,0,MODE_EMA,PRICE_MEDIAN,i); //---- Усредняем MACD по "Average".Это и будет рисоваться на графике.. //---- ... можно заменить на " EMA(Fast)". pr=2.0/(Average+1); pos=Bars-2; if(counted_bars>2) pos=Bars-counted_bars-1; //---- Основной расчет while(pos>=0) { if(pos==Bars-2) ExtBuffer0[pos+1]=Buffer_M[pos+1]; ExtBuffer0[pos]=Buffer_M[pos]*pr+ExtBuffer0[pos+1]*(1-pr); pos--; } //---- Расперделение данных между 2-я буферами, для разделения по цветам for(i=limit-1; i>=0; i--) { // При перерасчете самого левого бара, порядковый номер в массиве [i+1] выходит за пределы размера массива, поэтому расчет первого цикла прорускаем. if(i == Bars-1) continue; //------------------------------------ current = ExtBuffer0[i]; prev = ExtBuffer0[i+1]; if(current == prev) continue; else { if(current>prev) up=true; if(current<prev) up=false; if(!up) { ExtBuffer2[i]=current; ExtBuffer1[i]=0.0; } else { ExtBuffer1[i]=current; ExtBuffer2[i]=0.0; } }}} //--- Устанавливаем видимость индикаторов if(Show_AO_G == false) SetIndexStyle(1, DRAW_NONE); if(Show_AO_R == false) SetIndexStyle(2, DRAW_NONE); Any rookie question, so Awesome oscillator - where 习俗 Victor Nikolaev 2014.02.19 04:49 #4880 NEP: 请帮助解决带有".mqh "附件的指标。 指标缓冲区ExtBuffer1[]、ExtBuffer2[]和Buffer_M[]的大小为0。 同时,缓冲区ExtBuffer0[]工作正常,其大小等于Bars,应该是这样。最有趣的是,在更新到新版本的MT4之前,它在旧版本的MT4中运行良好。还有一件事。如果我把一个指标的所有元素移到同一个基本的mq4文件中,一切又都能正常工作。 问题:为什么附件中指标缓冲区的数组大小会被重置为0? 以下是该指标的源代码。 你喜欢在你的屁股上做事吗? 1...481482483484485486487488489490491492493494495...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
当Ind_1和Ind_GV设置匹配时,Ind_GV的结果值与Ind_1略有不同。
如果我在Ind_1和Ind_GV匹配时暂停测试器,并编译Ind_GV,则两个指标的结果值完全匹配。
谁知道这可以如何解释?
你能告诉我,在优化 模式下,我是否需要专家顾问中的任何代码来运行策略测试器?
我正在努力优化我的专家顾问,但我不知道是什么原因。
2014.02.18 21:54:30.386 Tester: 找到缓存文件 "C:\...\tester\cachestest.NZDUSD5.0",可以用于进一步优化。
我们有历史。NZDUSD5_0.fxt文件重约150米。
你也可以在测试人员的日志中看到这一点
2014.02.18 22:50:21.251 TestGenerator: 未匹配的数据错误(在2014.02.12 13:35超过了体积限制305)。
这是什么情况?
请提供帮助!
每个变量都可以取1到5的值......告诉我如何不写3125个选项))))。
请提供帮助!
每个变量都可以取1到5的值......告诉我如何不写3125个选项))))。
抽出25个选项,然后在之后处理谁更大的问题。
谢谢......这就是我现在要做的......我想用数组做,但我没有牵引力......)
请帮助解决带有".mqh "附件的指标。
指标缓冲区ExtBuffer1[]、ExtBuffer2[]和Buffer_M[]的大小为0。 同时,缓冲区ExtBuffer0[]工作正常,其大小等于Bars,应该是这样。最有趣的是,在更新到新版本的MT4之前,它在旧版本的MT4中运行良好。还有一件事。如果我把一个指标的所有元素移到同一个基本的mq4文件中,一切又都能正常工作。
问题:为什么附件中指标缓冲区的数组大小 会被重置为0?
以下是该指标的源代码。
//+------------------------------------------------------------------+
//| AO_EMA_(with_includes).mq4 |
//+------------------------------------------------------------------+
#include <AO_EMA_(with_includes)_GLOB.mqh>
//--------------------------------------------
int init()
{
#include <AO_EMA_(with_includes)_INIT.mqh>
return(0);
}
//--------------------------------------------
int start()
{
#include <AO_EMA_(with_includes)_START.mqh>
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| AO_EMA_(with_includes)_GLOB.mq4 |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Black
#property indicator_color2 Green
#property indicator_color3 Red
//---- Input Data
extern int Slow = 100;
extern double Slow_Fast = 4.318;
extern int Average = 25; // Усреднение АО
extern bool Show_AO_G = true,
Show_AO_R = true;
//---- Глобальные переменные
int Fast;
bool Alert_done = false; // Флаг говорит о том, что Alert уже был раз сгенерирован.
//---- indicator buffers
double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];
//---- Буфера индикатора, для промежуточных расчетов
double Buffer_M[];
//+------------------------------------------------------------------+
//| AO_EMA_(with_includes)_INIT.mq4 |
//+------------------------------------------------------------------+
//---- Установка значение для переменной "Fast"
Fast = NormalizeDouble(Slow / Slow_Fast, 0);
//---- indicator buffers mapping
SetIndexBuffer(0, ExtBuffer0);
SetIndexBuffer(1, ExtBuffer1);
SetIndexBuffer(2, ExtBuffer2);
SetIndexBuffer(3, Buffer_M);
//---- drawing settings
SetIndexStyle(0, DRAW_NONE); // Линия не рисуется
SetIndexStyle(1, DRAW_HISTOGRAM); // Гистограмма
SetIndexStyle(2, DRAW_HISTOGRAM); // Гистограмма
SetIndexStyle(3, DRAW_NONE); // Линия не рисуется
//---- drawing begin settings
SetIndexDrawBegin(0, Fast); // Индикатор начинает рисоваться с этого бара, от начала графика слева.
SetIndexDrawBegin(1, Fast);
SetIndexDrawBegin(2, Slow);
SetIndexDrawBegin(3, Slow);
IndicatorDigits(Digits+1);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("AO_EMA ("+Fast+"-"+Slow+")");
SetIndexLabel(1,"Green");
SetIndexLabel(2,"Red");
//---- Обнуляем буфер индикатора
SetIndexEmptyValue(0, 0.0); SetIndexEmptyValue(1, 0.0);
SetIndexEmptyValue(2, 0.0); SetIndexEmptyValue(3, 0.0);
//---- initialization done
//+------------------------------------------------------------------+
//| AO_EMA_(with_includes)_START.mq4 |
//+------------------------------------------------------------------+
int limit, pos;
int counted_bars=IndicatorCounted();
double prev,current, pr;
bool up;
//---- Последний посчитанный бар будет пересчитан
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
Print("counted_bars=",counted_bars," Bars=",Bars," limit=",limit);
Print("0=",ArraySize(ExtBuffer0)," 1=",ArraySize(ExtBuffer1)," 2=",ArraySize(ExtBuffer2)," M=",ArraySize(Buffer_M));
//---- Расчет MACD для Гистограммы "= EMA(fast) - EMA(slow)"
if(Show_AO_G == true || Show_AO_R == true)
{ for(int i=0; i<limit; i++)
Buffer_M[i]=iMA(NULL,0,Fast,0,MODE_EMA,PRICE_MEDIAN,i)-iMA(NULL,0,Slow,0,MODE_EMA,PRICE_MEDIAN,i);
//---- Усредняем MACD по "Average".Это и будет рисоваться на графике..
//---- ... можно заменить на " EMA(Fast)".
pr=2.0/(Average+1);
pos=Bars-2;
if(counted_bars>2) pos=Bars-counted_bars-1;
//---- Основной расчет
while(pos>=0)
{ if(pos==Bars-2) ExtBuffer0[pos+1]=Buffer_M[pos+1];
ExtBuffer0[pos]=Buffer_M[pos]*pr+ExtBuffer0[pos+1]*(1-pr);
pos--; }
//---- Расперделение данных между 2-я буферами, для разделения по цветам
for(i=limit-1; i>=0; i--)
{ // При перерасчете самого левого бара, порядковый номер в массиве [i+1] выходит за пределы размера массива, поэтому расчет первого цикла прорускаем.
if(i == Bars-1) continue;
//------------------------------------
current = ExtBuffer0[i];
prev = ExtBuffer0[i+1];
if(current == prev) continue;
else
{ if(current>prev) up=true;
if(current<prev) up=false;
if(!up)
{ ExtBuffer2[i]=current;
ExtBuffer1[i]=0.0; }
else
{ ExtBuffer1[i]=current;
ExtBuffer2[i]=0.0; }
}}}
//--- Устанавливаем видимость индикаторов
if(Show_AO_G == false) SetIndexStyle(1, DRAW_NONE);
if(Show_AO_R == false) SetIndexStyle(2, DRAW_NONE);
请帮助解决带有".mqh "附件的指标。
指标缓冲区ExtBuffer1[]、ExtBuffer2[]和Buffer_M[]的大小为0。 同时,缓冲区ExtBuffer0[]工作正常,其大小等于Bars,应该是这样。最有趣的是,在更新到新版本的MT4之前,它在旧版本的MT4中运行良好。还有一件事。如果我把一个指标的所有元素移到同一个基本的mq4文件中,一切又都能正常工作。
问题:为什么附件中指标缓冲区的数组大小会被重置为0?
以下是该指标的源代码。
你喜欢在你的屁股上做事吗?