加载EA后读取之前的数据问题

 
请问大侠们 EA加载后 EA读取的数据是从什么时候开始读取的呢?数据是从加载EA后开始计算起吗 ?还是会主动从之前的某个时间点开始读起? 该怎么让EA加载后主动读取之前跟多的历史数据 ? 主要是想解决加载EA后不够历史数据来计算大周期的均线问题。感谢你的回复 。只有有想法的都欢迎回复
 
harryhuang888:
请问大侠们 EA加载后 EA读取的数据是从什么时候开始读取的呢?数据是从加载EA后开始计算起吗 ?还是会主动从之前的某个时间点开始读起? 该怎么让EA加载后主动读取之前跟多的历史数据 ? 主要是想解决加载EA后不够历史数据来计算大周期的均线问题。感谢你的回复 。只有有想法的都欢迎回复

呃…我不是大俠、只是大概有一些概念…

如果你所問的開始讀取是問從現在往歷史、還是從歷史推到現在的話…

mt4是現在推到歷史、mt5是歷史推到現在(但有辦法設定成跟mt4一樣,不過mt5我還沒花時間研究)。

如果你是mt4平台、你圖表的歷史數據已經拉到最前面了、並且你所擁有想要拿來回測的歷史數據沒有導入進去的情況下…是沒辦法再從你的交易商再抓取更之前的數據的!

如果你選擇下載歷史數據、那麼你下載的歷史數據是mt4這個開發商提供的歷史數據、基本上會跟你目前交易的交易商的即時數據不一樣

如果你交易的週期很大就差異不大、但若是你所交易的週期很小(例如一分k)那可能就會有影響。


感覺你的問題是歷史數據還沒下載好或還沒導入好才遇到的問題……

 
harryhuang888:
请问大侠们 EA加载后 EA读取的数据是从什么时候开始读取的呢?数据是从加载EA后开始计算起吗 ?还是会主动从之前的某个时间点开始读起? 该怎么让EA加载后主动读取之前跟多的历史数据 ? 主要是想解决加载EA后不够历史数据来计算大周期的均线问题。感谢你的回复 。只有有想法的都欢迎回复

如果你用的是系统自带的指标,他会根据现在图标有多少根K线就自动计算好,所以你不需要再去读取历史数据来计算大周期均线等技术指标。

如果你是自己编写的技术指标,就需要在OnInit() 中读取你认为能计算好技术指标的K线数据,比如5000根。一般来说都可以把指标训练好。

MqlRates Rates[]; 

ArraySetAsSeries(Rates,true); // MT5 转换成MT4序列

CopyRates(Symbol(), PERIOD_CURRENT,0,5000,Rates);

。。。

Rates 就是你要读取的数据,拿这里面的数据进行初始化就好了。

原因: