问题代码 - 页 3 1234 新评论 William Roeder 2013.10.18 11:04 #21 burnssss: 我想用这个脚本下载历史上的OHLC、分形和Zigzag指标,但当我打开csv时,我没有任何信息。谁能告诉我那里的错误?int f=FileOpen(file,FILE_CSV|FILE_WRITE,","); if(f<1) { Alert("File opening error"); return(0); } for(int i=Bars-1;i<=0;i--){ FileWrite(f, TimeToStr(Time,TIME_DATE|TIME_MINUTES), Open,High,Low,Close , iFractals(Symbol(),0,1,i), iFractals(Symbol(),0,2,i), iCustom(Symbol(), 0,"ZigZag",0,i),iCustom(Symbol(),0, "ZigZag",1,i)); } FileOpen 的最后一个参数是一个int,而不是一个字符串。 你不能用FileWrite来写数组 。 之前提到的循环 [删除] 2013.10.22 07:29 #22 我已经开发了下载OHLC数据、分形 和人字形的代码,但由于数据量大,在M1中会选择从哪一天开始下载。 [删除] 2013.10.22 07:37 #23 //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- start(); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } void export() { string file="export_"+Symbol()+"_"+Period()+".csv"; int f=FileOpen(file,FILE_CSV|FILE_WRITE,","); if(f<1) { Alert("File opening error"); return(0); } for(int i=Bars-1;i<=0;i--) { FileWrite(f,TimeToStr(Time,TIME_DATE|TIME_MINUTES),Open,High,Low,Close ,iFractals(Symbol(),0,1,i),iFractals(Symbol(),0,2,i),iCustom(Symbol(), 0,"ZigZag",0,i),iCustom(Symbol(),0, "ZigZag",1,i)); } Alert("Export "+Symbol()+" finished. Exported: "+Bars+" records"); FileFlush(f); FileClose(f); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { export(); //---- //Alert(ArraySize(norepeats) + ArraySize(morerepeats)); return(0); } //+------------------------------------------------------------------+ Tjipke de Vries 2013.10.22 07:55 #24 burnssss: 我已经开发了下载OHLC数据、分形和Zigzag的代码,但由于数据量很大,在M1中会选择从哪个日期开始下载。for(int i=Bars-1;i<=0;i--) { FileWrite(f,TimeToStr(Time,TIME_DATE|TIME_MINUTES),Open,High,Low,Close ,iFractals(Symbol(),0,1,i),iFractals(Symbol(),0,2,i),iCustom(Symbol(), 0,"ZigZag",0,i),iCustom(Symbol(),0, "ZigZag",1,i)); } 所以你需要做的是,不要从Bars-1开始写。 制定一个条件,如果时间栏i>你的日期,就去写文件....。 [删除] 2013.10.22 12:57 #25 deVries: 现在,需要做的不是从Bares-1开始写,而是从Bares-1开始写。 hacer una condición si barra de tiempo i> tu cita FILEWRITE .... 我不明白,因为我是mql4的业余爱好者。你能给我一个例子吗? 我需要的是,而不是从1971年开始下载数据,例如,从2009年开始下载 Tjipke de Vries 2013.10.22 14:04 #26 burnssss: 我不明白,因为我是mql4的业余爱好者。你能给我一个例子吗? 我需要的是,不要从1971年开始下载数据,例如,从2009年开始下载。 你是如何得到蜡烛的时间的? if(Time[i]>= D'2004.01.01 00:00') FileWrite(f,TimeToStr(Time,TIM....... // New Year'2004 [删除] 2013.11.19 11:22 #27 在下面的代码部分,应该改变以获得13的之字形?我注意到我下载的之字形参数 是12,我想下载之字形参数13。 for(int i=Bars-1;i<=0;i--) { FileWrite(f,TimeToStr(Time,TIME_DATE|TIME_MINUTES),Open,High,Low,Close ,iFractals(Symbol(),0,1,i),iFractals(Symbol(),0,2,i),iCustom(Symbol(), 0,"ZigZag",0,i),iCustom(Symbol(),0, "ZigZag",1,i)); } 非常感谢 [删除] 2013.11.19 20:30 #28 很好。 我的问题的一些解决方案? 非常感谢你 William Roeder 2013.11.19 21:26 #29 burnssss: 我注意到,我下载的zigzag参数是12,想下载zigzag参数13。 你没有向zigzag传递任何参数。如果你不想要默认值,那就把三个都传过去。iCustom的详细解释 - MQL4论坛 [Eliminato] 2013.11.19 22:44 #30 试试这个,似乎效果不错。 在回测 这个专家后,你会在你的metatrader/tester/files文件夹中找到书面文件。 警告!我不是一个程序员,所以这个错误可能包含工作代码部分。) //+------------------------------------------------------------------+ //| burns.mq4 | //| Copyright 2012, MetaQuotes Software Corp. | //| https://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, MetaQuotes Software Corp." #property link "https://www.metaquotes.net" /* if this mode parameter is zero, the indicator values of the previous bar will be written to file, instead of their last known positon */ extern int mode=1; int bartime; //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit(){ Alert("Export "+Symbol()+" finished. Exported: "+Bars+" records"); return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { if(bartime==Time[0]) return(0); bartime=Time[0]; double value[7]; string file="export_"+Symbol()+"_"+Period()+".csv"; int f=FileOpen(file,FILE_CSV|FILE_READ|FILE_WRITE,","); if(f<0) {Alert("File opening error");return(0);} value[0]=Open[1]; value[1]=High[1]; value[2]=Low[1]; value[3]=Close[1]; if(mode!=0) { value[4]=lastfrup(); value[5]=lastfrdn(); value[6]=lastzz(); } else { value[4]=iFractals(NULL,0,MODE_UPPER,1); value[5]=iFractals(NULL,0,MODE_LOWER,1); value[6]=iCustom(NULL,0,"ZigZag",12,5,3,0,1); } string sum=TimeToStr(Time[1],TIME_DATE|TIME_MINUTES); for(int j=0; j<7; j++) { sum=sum+","+DoubleToStr(value[j],Digits); } FileSeek(f,0,SEEK_END); FileWrite(f,sum); FileClose(f); return(0); } //+------------------------------------------------------------------+ double lastfrup() { for(int i=1; i<Bars-1; i++) { if(iFractals(NULL,0,MODE_UPPER,i)!=0) break; } return(iFractals(NULL,0,MODE_UPPER,i)); } //+------------------------------------------------------------------+ double lastfrdn() { for(int i=1; i<Bars-1; i++) { if(iFractals(NULL,0,MODE_LOWER,i)!=0) break; } return(iFractals(NULL,0,MODE_LOWER,i)); } //+------------------------------------------------------------------+ double lastzz() { for(int i=1; i<Bars-1; i++) { if(iCustom(NULL,0,"ZigZag",12,5,3,0,i)!=0) break; } return(iCustom(NULL,0,"ZigZag",12,5,3,0,i)); } 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我已经开发了下载OHLC数据、分形和Zigzag的代码,但由于数据量很大,在M1中会选择从哪个日期开始下载。
所以你需要做的是,不要从Bars-1开始写。
制定一个条件,如果时间栏i>你的日期,就去写文件....。
现在,需要做的不是从Bares-1开始写,而是从Bares-1开始写。
hacer una condición si barra de tiempo i> tu cita FILEWRITE ....
我不明白,因为我是mql4的业余爱好者。你能给我一个例子吗?
我需要的是,而不是从1971年开始下载数据,例如,从2009年开始下载
我不明白,因为我是mql4的业余爱好者。你能给我一个例子吗?
我需要的是,不要从1971年开始下载数据,例如,从2009年开始下载。
你是如何得到蜡烛的时间的?
我注意到我下载的之字形参数 是12,我想下载之字形参数13。
非常感谢
很好。
我的问题的一些解决方案?
非常感谢你
试试这个,似乎效果不错。
在回测 这个专家后,你会在你的metatrader/tester/files文件夹中找到书面文件。
警告!我不是一个程序员,所以这个错误可能包含工作代码部分。)