在csv文件中导出Multipel指标值以获取MT4的符号列表

问题描述

您能帮我修改以下代码以导出bollinger带状态和随机状态吗?该指标使用指定的指标数据为指定的符号打印csv文件-您还能帮助我更快地吗?是每分钟触发一次吗?

@H_502_2@//+------------------------------------------------------------------+ //| FXPT_ExportHistoryCSV.mq4 | //| modified by fxproTrader | //| http://www.fxpro-Trader.com" | //+------------------------------------------------------------------+ #property copyright "copyright © 2012,fxproTrader" #property link "http://www.fxpro-Trader.com" // #property show_inputs //-------- HISTORY---------------- // v1.0 Initial release(12162012) //-------------------------------- //---- int handle; //number of bars to export per Symbol // int maxBars = 6418; extern int maxBars = 3; //test first on several pairs // string Currencies[] = {"EURUSD","AUDUSD","GBPUSD","EURJPY","GBPJPY","USDCAD"}; string Currencies[] = {"EURUSD","USDCAD"}; // then add more in the same format // string Currencies[] = {"EURUSD","EURGBP","USDCHF","USDJPY","AUDJPY","CHFJPY","CADJPY","GBPCAD","EURAUD","EURCAD","NZDUSD","NZDJPY"}; string dSymbol; double Poin; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init(){ if (Point==0.00001) Poin=0.0001; else { if (Point==0.001) Poin=0.01; else Poin=Point; } return(0); } //+------------------------------------------------------------------+ //| start function | //+------------------------------------------------------------------+ int start(){ int count = ArraySize(Currencies); for (int ii=0; ii<count; ii++){ dSymbol = Currencies[ii]; handle = FileOpen("Hist_"+dSymbol+"_"+Period()+".csv",FILE_BIN|FILE_WRITE); if(handle < 1){ Print("Err ",GetLastError()); return(0); } WriteHeader(); for(int i = 0; i < maxBars - 1; i++){ WriteDaTarow(i); } FileClose(handle); } Alert("Done. "+maxBars+" bars generated "+TimeMonth(TimeLocal())+TimeDay(TimeLocal())+TimeYear(TimeLocal()) +"_"+TimeHour(TimeLocal())+TimeMinute(TimeLocal())); return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void WriteData(string txt){ FileWriteString(handle,txt,StringLen(txt)); return; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void WriteHeader(){ WriteData("Symbol,"); WriteData("Date,"); WriteData("DayOfWeek,"); WriteData("DayOfYear,"); WriteData("Open,"); WriteData("High,"); WriteData("Low,"); WriteData("Close,"); WriteData("RSI5,RSI11,MOM3_c,CCI11_c,"); WriteData("\n"); return; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void WriteDaTarow(int i){ double dSymTime,dSymOpen,dSymHigh,dSymLow,dSymClose,dSymVolume; int dDayofWk,dDayofYr,iDigits; dSymTime = (iTime(dSymbol,Period(),i)); dDayofWk = (TimeDayOfWeek(dSymTime)); dDayofYr = TimeDayOfYear(dSymTime); dSymOpen = (iOpen(dSymbol,i)); // if(TimetoStr(dSymTime,TIME_DATE)!= "1970."){ if(dSymOpen>0){ WriteData(dSymbol+","); WriteData(TimetoStr(dSymTime,TIME_DATE|TIME_MINUTES)+","); iDigits=MarketInfo(Symbol(),MODE_DIGITS); dSymOpen = (iOpen(dSymbol,i)); dSymHigh = (iHigh(dSymbol,i)); dSymLow = (iLow(dSymbol,i)); dSymClose = (iClose(dSymbol,i)); dSymVolume = (iVolume(dSymbol,i)); // int BarsInBox=8; // double PeriodHighest = High[iHighest(dSymbol,MODE_HIGH,BarsInBox+1,i)]; // double PeriodLowest = Low[iLowest(dSymbol,MODE_LOW,i)]; // double PeriodRNG = (PeriodHighest-PeriodLowest)/Poin; double RSI5_c = irsI(NULL,5,PRICE_CLOSE,i); double RSI5_p3 = irsI(NULL,i+3); double MOM3_c = iMomentum(NULL,21,i); double MOM3_p3 = iMomentum(NULL,i+3); double CCI11_c = iCCI(NULL,i); double CCI11_p3 = iCCI(NULL,i+3); WriteData(dDayofWk+","+dDayofYr+","); WriteData(DoubletoStr(dSymOpen,iDigits)+","); WriteData(DoubletoStr(dSymHigh,"); WriteData(DoubletoStr(dSymLow,"); // WriteData(DoubletoStr(dSymClose,"+PeriodHighest+","+PeriodLowest+","+PeriodRNG); WriteData(DoubletoStr(dSymClose,"+DoubletoStr(RSI5_c,2)+","+DoubletoStr(RSI5_p3,2)+ ","+DoubletoStr(MOM3_c,"+DoubletoStr(MOM3_p3,"+DoubletoStr(CCI11_c,"+DoubletoStr(CCI11_p3,"); WriteData("\n"); } return; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ string GetPeriodName(){ switch(Period()){ case PERIOD_D1: return("Day"); case PERIOD_H4: return("4_Hour"); case PERIOD_H1: return("Hour"); case PERIOD_M1: return("Minute"); case PERIOD_M15: return("15_Minute"); case PERIOD_M30: return("30_Minute"); case PERIOD_M5: return("5_Minute"); case PERIOD_MN1: return("Month"); case PERIOD_W1: return("Week"); } }

在mt4中附加此脚本时,我也看不到设置窗口-为什么会出现这种情况?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)