如何解决在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 举报,一经查实,本站将立刻删除。