错误、漏洞、问题 - 页 297 1...290291292293294295296297298299300301302303304...3184 新评论 [删除] 2011.02.08 18:36 #2961 alexluek: 所有配对的Alpari如果我没弄错的话,Alpari的最小手数是0.10。但为了有效性和验证,如上所述,最好使用double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); Alexey Rassvetnyy 2011.02.09 07:51 #2962 从文本文件中读取长行时 出现错误void testStr() { string fn= "test_str.txt",sRead,sWrite=""; int cnStr=100,cnSymb=6000,i,fh; fh=FileOpen(fn,FILE_WRITE|FILE_TXT|FILE_ANSI); if(fh==INVALID_HANDLE) return; for(i=0; i<cnSymb; i++) { sWrite+=(string)(i%10); } int wrLen; for(i=0; i<cnStr; i++) { wrLen=FileWriteString(fh,sWrite+"\r\n")-2; } FileClose(fh); fh=FileOpen(fn,FILE_READ|FILE_TXT|FILE_ANSI); if(fh==INVALID_HANDLE) return; int readLen,minCn,j,error1Cn=0,error2Cn=0; for(i=0; i<cnStr; i++) { sRead=FileReadString(fh); readLen=StringLen(sRead); if(readLen!=wrLen) { if(error1Cn<3) Print("ERROR1 str: ",i," readLen: ",readLen,", wrLen: ",wrLen); error1Cn++; } int minCn=MathMin(readLen,wrLen); ushort chR,chW; for(j=0; j<minCn; j++) { chR = StringGetCharacter(sRead, j); chW = StringGetCharacter(sWrite, j); if(chR!=chW) break; } if(j!=minCn) { if(error2Cn<3) Print("ERROR2 str: ",i," symbol: ",j," chR: ",chR," chW: ",chW," readLen: ",readLen,", wrLen: ",wrLen); error2Cn++; } } FileClose(fh); Print("Str count: ",cnStr," str size: ",cnSymb," error1Cn: ",error1Cn," error2Cn: ",error2Cn); }//--- void OnStart(){testStr();}我正在得到Str count: 100 str size: 6000 error1Cn: 3 error2Cn: 1 ERROR1 str: 99 readLen: 0, wrLen: 6000 ERROR1 str: 98 readLen: 0, wrLen: 6000 ERROR2 str: 0 symbol: 5373 chR: 53 chW: 51 readLen: 5998, wrLen: 6000 ERROR1 str: 0 readLen: 5998, wrLen: 6000请尽快修复它。 Errors, bugs, questions 编码帮助 将Windows本地时间与MT5服务器同步 Boris 2011.02.09 11:42 #2963 你能告诉我如何使数据窗口 显示其缓冲区名称吗?//+------------------------------------------------------------------+ //| ind_proba.mq5 | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "" #property link "https://www.mql5.com" #property version "1.00" #property indicator_separate_window #property indicator_plots 5 //must set, can be bigger than necessary, can not be bigger than indicator_buffers #property indicator_buffers 15 //must set, can be bigger than necessary //BufferPattern #property indicator_type1 DRAW_COLOR_BARS //DDDDC #property indicator_width1 2 #property indicator_color1 Blue,Red,Green //--- input parameters double OpenBarBuff[]; // data buffer double HighBarBuff[]; double LowBarBuff[]; double CloseBarBuff[]; double ColorBarBuff[]; // color buffer //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping IndicatorSetInteger(INDICATOR_DIGITS,_Digits); SetIndexBuffer(0,OpenBarBuff,INDICATOR_DATA); SetIndexBuffer(1,HighBarBuff,INDICATOR_DATA); SetIndexBuffer(2,LowBarBuff,INDICATOR_DATA); SetIndexBuffer(3,CloseBarBuff,INDICATOR_DATA); SetIndexBuffer(4,ColorBarBuff,INDICATOR_COLOR_INDEX); PlotIndexSetString(0,PLOT_LABEL,"Open"); PlotIndexSetString(1,PLOT_LABEL,"High"); PlotIndexSetString(2,PLOT_LABEL,"Low"); PlotIndexSetString(3,PLOT_LABEL,"Close"); //--- return(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[]) { //--- CalcBars(rates_total,prev_calculated,open,high,low,close); //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ int CalcBars(const int rates_total, const int prev_calculated, const double &open[], const double &high[], const double &low[], const double &close[]) { //--- auxiliary variables int i=0; //--- set position for beginning if(i<prev_calculated) i=prev_calculated-1; //--- start calculations while(i<rates_total) { OpenBarBuff[i]=open[i]; HighBarBuff[i]=high[i]; LowBarBuff[i]=low[i]; CloseBarBuff[i]=close[i]; ColorBarBuff[i]=(double)((close[i]>open[i])?0:(close[i]<open[i])?1:2); i++; } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ Rashid Umarov 2011.02.09 11:47 #2964 见 "方案属性"下的例子 Boris 2011.02.09 12:07 #2965 Rosh: 见 "方案属性"下的例子 谢谢你。 Ilyas 2011.02.09 12:12 #2966 BoraBo:你能告诉我如何使数据窗口显示其缓冲区名称吗?...#property indicator_plots 1 #property indicator_buffers 5... PlotIndexSetString(0,PLOT_LABEL,"Open;High;Low;Close");... Ilyas 2011.02.09 17:17 #2967 BZSP:从文本文件中读取长行时 出现错误请尽快修复。 谢谢你的留言,已修复。 Alexey Rassvetnyy 2011.02.09 20:36 #2968 mql5: 谢谢你的留言,已纠正。 谢谢你!新建筑何时到来? Mykola Demko 2011.02.11 00:45 #2969 标准的CChart类是有缺陷的。#include <Charts\Chart.mqh> // подключаем класс void OnStart() { CChart eur; // создаём объект eur.Attach(); // приатачиваем к чарту }运行脚本,瞧,图表被风吹走了 :o) 该图表被删除,没有任何错误信息。 Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции www.mql5.com Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции - Документация по MQL5 Rashid Umarov 2011.02.11 08:30 #2970 Urain:标准的CChart类是有缺陷的。运行脚本,瞧,图表被风吹走了 :o) 该图表被删除,没有任何错误信息。当脚本完成时,所有的对象都被自动销毁,包括CChart类的一个实例。但是创建的对象的析构器在销毁过程中被调用。在我们的例子中,CChart类的析构函数是这样的void CChart::Close() { if(m_chart_id!=-1) { ChartClose(m_chart_id); m_chart_id=-1; } }即脚本所运行的图表被关闭。PS阅读文章《MQL5中对象创建和销毁的顺序》。 1...290291292293294295296297298299300301302303304...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
所有配对的Alpari
如果我没弄错的话,Alpari的最小手数是0.10。
但为了有效性和验证,如上所述,最好使用
从文本文件中读取长行时 出现错误
{
string fn= "test_str.txt",sRead,sWrite="";
int cnStr=100,cnSymb=6000,i,fh;
fh=FileOpen(fn,FILE_WRITE|FILE_TXT|FILE_ANSI);
if(fh==INVALID_HANDLE) return;
for(i=0; i<cnSymb; i++)
{
sWrite+=(string)(i%10);
}
int wrLen;
for(i=0; i<cnStr; i++)
{
wrLen=FileWriteString(fh,sWrite+"\r\n")-2;
}
FileClose(fh);
fh=FileOpen(fn,FILE_READ|FILE_TXT|FILE_ANSI);
if(fh==INVALID_HANDLE) return;
int readLen,minCn,j,error1Cn=0,error2Cn=0;
for(i=0; i<cnStr; i++)
{
sRead=FileReadString(fh);
readLen=StringLen(sRead);
if(readLen!=wrLen)
{
if(error1Cn<3) Print("ERROR1 str: ",i," readLen: ",readLen,", wrLen: ",wrLen);
error1Cn++;
}
int minCn=MathMin(readLen,wrLen);
ushort chR,chW;
for(j=0; j<minCn; j++)
{
chR = StringGetCharacter(sRead, j);
chW = StringGetCharacter(sWrite, j);
if(chR!=chW) break;
}
if(j!=minCn)
{
if(error2Cn<3) Print("ERROR2 str: ",i," symbol: ",j," chR: ",chR," chW: ",chW," readLen: ",readLen,", wrLen: ",wrLen);
error2Cn++;
}
}
FileClose(fh);
Print("Str count: ",cnStr," str size: ",cnSymb," error1Cn: ",error1Cn," error2Cn: ",error2Cn);
}
//---
void OnStart(){testStr();}
我正在得到
ERROR1 str: 99 readLen: 0, wrLen: 6000
ERROR1 str: 98 readLen: 0, wrLen: 6000
ERROR2 str: 0 symbol: 5373 chR: 53 chW: 51 readLen: 5998, wrLen: 6000
ERROR1 str: 0 readLen: 5998, wrLen: 6000
请尽快修复它。
你能告诉我如何使数据窗口 显示其缓冲区名称吗?
见 "方案属性"下的例子
你能告诉我如何使数据窗口显示其缓冲区名称吗?
#property indicator_plots 1
#property indicator_buffers 5
...
PlotIndexSetString(0,PLOT_LABEL,"Open;High;Low;Close");
...
从文本文件中读取长行时 出现错误
请尽快修复。
谢谢你的留言,已纠正。
标准的CChart类是有缺陷的。
运行脚本,瞧,图表被风吹走了 :o)
该图表被删除,没有任何错误信息。
标准的CChart类是有缺陷的。
运行脚本,瞧,图表被风吹走了 :o)
该图表被删除,没有任何错误信息。
当脚本完成时,所有的对象都被自动销毁,包括CChart类的一个实例。但是创建的对象的析构器在销毁过程中被调用。在我们的例子中,CChart类的析构函数是这样的
即脚本所运行的图表被关闭。
PS阅读文章《MQL5中对象创建和销毁的顺序》。