微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

//+------------------------------------------------------------------+
//|                                        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 举报,一经查实,本站将立刻删除。