来自一个 "傻瓜 "的问题 - 页 187 1...180181182183184185186187188189190191192193194...277 新评论 Dmitriy Parfenovich 2012.09.17 18:01 #1861 G001:我已经完全累了。它不能正常打开。请帮助我。错在哪里? 试试这个。MqlTradeRequest request={0}; MqlTradeResult result={0}; MqlTradeCheckResult check={0}; [删除] 2012.09.17 18:04 #1862 fyords: 像这样试试吧。谢谢你。它能打开,只是不能正确读取指标的信号。这有帮助吗? Dmitriy Parfenovich 2012.09.17 18:07 #1863 G001:谢谢你。它能打开,只是不能正确读取指标的信号。这是否有帮助?ArraySetAsSeries(Bull,true);它在OnInit中完成一次。CopyBuffer(Indicator,1,0,3,Bull); 你没有搞乱缓冲区的数字? [删除] 2012.09.17 18:08 #1864 fyords:这在OnInit时进行一次。 缓冲区的数字是否正确? 我不这么认为。该指标在前一页。 Dmitriy Parfenovich 2012.09.17 18:18 #1865 G001:它打开了,只是没有正确读取指标的信号。你说的错误是什么意思?你可以打印指标的值来 检查--"我们得到什么?" [删除] 2012.09.17 18:28 #1866 fyords:你说的错误是什么意思?你可以打印指标的值来检查--"我们得到什么?"我用其他指标检查了该EA,它是有效的。也许指标有问题?用这个指标,它在第一个刻度上打开。对不起,我不知道在哪里可以添加打印。以BUY_STOP为例,从红色变为灰色。//+------------------------------------------------------------------+ //| MACDATR.mq5 | //| Copyright © 2011, Svinozavr | //+------------------------------------------------------------------+ //---- Indicator settings #property indicator_separate_window #property indicator_buffers 4 #property indicator_plots 4 #property indicator_level1 +0.0005 #property indicator_level2 -0.0005 #property indicator_levelcolor DimGray #define RESET 0 //----- #property indicator_type1 DRAW_HISTOGRAM #property indicator_color1 Gray #property indicator_style1 STYLE_SOLID #property indicator_width1 1 #property indicator_label1 "MACD" //----- #property indicator_type2 DRAW_HISTOGRAM #property indicator_color2 Green #property indicator_style2 STYLE_SOLID #property indicator_width2 1 #property indicator_label2 "Bull" //----- #property indicator_type3 DRAW_HISTOGRAM #property indicator_color3 Red #property indicator_style3 STYLE_SOLID #property indicator_width3 1 #property indicator_label3 "Bear" //----- #property indicator_type4 DRAW_LINE #property indicator_color4 Olive #property indicator_style4 STYLE_SOLID #property indicator_width4 1 #property indicator_label4 "ATR" //----- //----- Indicator parameters //+------------------------------------------------------------------+ input uint FastEMA = 12; input uint SlowEMA = 26; input uint SignalEMA = 9; input int ATRG = 0; input ENUM_APPLIED_PRICE AppliedPrice=PRICE_CLOSE; //+------------------------------------------------------------------+ //----- double ATRmin=0; double kATR=1; int min_rates_total; int ATRHandle,MACDHandle; double MACDBuffer[],ATRBuffer[],Bull[],Bear[]; //+------------------------------------------------------------------+ //| MACD indicator initialization function | //+------------------------------------------------------------------+ void OnInit() { //----- if(ATRG) min_rates_total=int(MathMax(FastEMA,SlowEMA)+ATRG); else min_rates_total=2*int(MathMax(FastEMA,SlowEMA)); //----- int ATR; if(!ATRG) ATR=int(SlowEMA); else ATR=ATRG; ATRmin*=_Point; //----- ATRHandle=iATR(NULL,0,ATR); if(ATRHandle==INVALID_HANDLE)Print(" Íå óäàëîñü ïîëó÷èòü õåíäë èíäèêàòîðà ATR"); //----- MACDHandle=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,AppliedPrice); if(MACDHandle==INVALID_HANDLE)Print(" Íå óäàëîñü ïîëó÷èòü õåíäë èíäèêàòîðà MACD"); //----- SetIndexBuffer(0,MACDBuffer,INDICATOR_DATA); PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); ArraySetAsSeries(MACDBuffer,true); //----- SetIndexBuffer(1,Bull,INDICATOR_DATA); PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); ArraySetAsSeries(Bull,true); //----- SetIndexBuffer(2,Bear,INDICATOR_DATA); PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,min_rates_total); ArraySetAsSeries(Bear,true); //----- SetIndexBuffer(3,ATRBuffer,INDICATOR_DATA); PlotIndexSetInteger(3,PLOT_DRAW_BEGIN,min_rates_total); ArraySetAsSeries(ATRBuffer,true); //----- string shortname; StringConcatenate(shortname,"MACDATR (",FastEMA,", ",SlowEMA,", ",SignalEMA,", ",EnumToString(AppliedPrice),")"); //----- IndicatorSetString(INDICATOR_SHORTNAME,shortname); //----- IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1); //----- } //+------------------------------------------------------------------+ //| MACD 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[] ) { //----- Check for data if(rates_total<min_rates_total) return(0); //----- int to_copy,limit,i; double atr,Atr[]; datetime Time[1]; //----- if(prev_calculated>rates_total || prev_calculated<=0) { limit=rates_total-min_rates_total; } else limit=rates_total-prev_calculated; //----- ArraySetAsSeries(Atr,true); //----- to_copy=limit+1; //----- if(CopyBuffer(ATRHandle,0,0,to_copy,Atr)<=0) return(RESET); if(CopyBuffer(MACDHandle,MAIN_LINE,0,to_copy,MACDBuffer)<=0) return(RESET); //----- for(i=limit; i>=0 && !IsStopped(); i--) { atr=kATR*Atr[i]; // ATR atr=MathMax(atr,ATRmin); //----- if(MACDBuffer[i]>0) {ATRBuffer[i]=MACDBuffer[i]-atr;} if(MACDBuffer[i]<0) {ATRBuffer[i]=MACDBuffer[i]+atr;} } //----- for(i=limit; i>=0 && !IsStopped(); i--) { //----- Bear[i]=0; Bull[i]=0; //----- if(MACDBuffer[i]>0 && MACDBuffer[i+1]<MACDBuffer[i] && ATRBuffer[i]>=0) {Bull[i]=MACDBuffer[i];} if(MACDBuffer[i]<0 && MACDBuffer[i+1]>MACDBuffer[i] && ATRBuffer[i]<=0) {Bear[i]=MACDBuffer[i];} } //+------------------------------------------------------------------+ //----- Done return(rates_total); } //+------------------------------------------------------------------+ Dmitriy Parfenovich 2012.09.17 19:00 #1867 G001:用其他指标测试了该EA,它是有效的。也许指标是问题所在?有了这个指标,它就会在第一个刻度上打开。对不起,我不知道在哪里可以添加打印。以BUY_STOP为例,从红色变为灰色。我没有发现问题,一切正常。我从第189页取的代码。 Olegs Kucerenko 2012.09.25 04:51 #1868 关于程序属性的问题#属性 tester_file"" .我需要将大量的文件连接到我的EA进行测试,确切地说,是3800个。只有今年的几个工具的每日期权水平。解决办法是什么? Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property) www.mql5.com Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5 Yedelkin 2012.09.25 05:20 #1869 Karlson: 关于程序属性的问题#属性 tester_file"" . 需要连接许多文件到EA进行测试,确切地说,是3800个。只有今年的几个工具的每日期权水平。解决方案是什么? 如果为了测试,事实证明,这些文件中的所有信息必须是不可更改的(存档)。我会尝试编写两个函数:一个是将数百个文件的所有数据重置到一个文件中,另一个是按照明确的规则读取该文件。你有没有试过这种方式? Olegs Kucerenko 2012.09.25 05:23 #1870 Yedelkin: 如果为了测试,事实证明,这些文件中的所有信息必须是不可更改的(存档)。我会尝试写两个函数:一个是将数百个文件的所有数据重置到一个文件中,另一个是根据明确的规则读取这个文件。你有没有试过这种方式? 我还没有试过,但收集到一个文件的想法是可以理解的。 也许开发者会指出一个选项--从一个文件夹连接不可更改的数据的方法。 1...180181182183184185186187188189190191192193194...277 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
请帮助我。错在哪里?
像这样试试吧。
它在OnInit中完成一次。
你没有搞乱缓冲区的数字?这在OnInit时进行一次。
缓冲区的数字是否正确?你说的错误是什么意思?
你可以打印指标的值来 检查--"我们得到什么?"
你说的错误是什么意思?
你可以打印指标的值来检查--"我们得到什么?"
对不起,我不知道在哪里可以添加打印。
以BUY_STOP为例,从红色变为灰色。
对不起,我不知道在哪里可以添加打印。
以BUY_STOP为例,从红色变为灰色。
我没有发现问题,一切正常。我从第189页取的代码。
关于程序属性的问题#属性 tester_file"" .
我需要将大量的文件连接到我的EA进行测试,确切地说,是3800个。
只有今年的几个工具的每日期权水平。
解决办法是什么?
需要连接许多文件到EA进行测试,确切地说,是3800个。只有今年的几个工具的每日期权水平。解决方案是什么?
如果为了测试,事实证明,这些文件中的所有信息必须是不可更改的(存档)。我会尝试写两个函数:一个是将数百个文件的所有数据重置到一个文件中,另一个是根据明确的规则读取这个文件。你有没有试过这种方式?