Hai semua,
Saya telah cuba memikirkan perkara ini. Mungkin seseorang di sini boleh membantu saya. Saya mempunyai fungsi ini yang membaca daripada .csv dan mengeluarkan nilai ke dalam penimbal indior, tetapi sejak MT4 dikemas kini, ia telah rosak. Mesej ralat adalah tatasusunan di luar julat. Pengkompil menunjukkan di mana pembolehubah tatasusunan [c] berada.
Dimasukkan Kod #tetingkap_terpisah_harta #penimbal_indior_harta 2 #warna_indior_harta1 Perak #warna_indior_harta2 Hitam int init() { IndiorDigits(0); IndiorShortName(); SetIndexStyle(0,DRAW_LINE,STYLE_DOT,1,clrSilver); SetIndexBuffer(0,BALBuffer); SetIndexLabel(0,BAL); SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1,clrBlack); SetIndexBuffer(1,EQTBuffer); SetIndexLabel(1,EQT); return(0); } int OnCalculate(const int rates_total, const int prev_calculated, const datetime time#91;#93;, const double open#91;#93;, const double high#91;#93;, const double low#91;#93 ;, const double close#91;#93;, const long tick_volume#91;#93;, const long volume#91;#93;, const int spread#91;#93;) { GetChart(); return(0); } void GetChart() { string ECFile = 55033.csv; rentetan arr#91;5#93;; rentetan tmp; datetime dt#91;2000#93;; double val1#91;2000#93;; double val2#91;2000#93;; int c,i=0; int h = FailOpen(ECFile, FILE_CSV|FILE_READ,'~'); untuk (int c=0; !FileIsEnding(h) clt;2000; c ) { tmp = FileReadString(h); jika (FileIsEnding(h)) putus; StrToStringArray(tmp,arr,,); dt#91;c#93; = StrToTime(StringSubstr(arr#91;0#93;,6,4) . StringSubstr(arr#91;0#93;,3,2) . StringSubstr(arr#91;0#93;, 0,2)); val1#91;c#93; = StrToNumber(arr#91;1#93;); val2#91;c#93; = StrToNumber(arr#91;2#93;); } FileClose(h); c--; untuk (int i=0; ilt;=Bar; i ) { while(Masa#91;i#93; lt; dt#91;c#93;) c--; jika (c gt;= 0) { BALBuffer#91;i#93; = val1#91;c#93;; EQTBuffer#91;i#93; = val2#91;c#93;; } } }
Beginilah rupa fail .csv input.
Kod dimasukkan 03/02/2014,350306.85,350306.85 04/02/2014,350306.85,350306.85 05/02/02/2014,350306.85,350306.85 06//2014,350306.85,350306.85 11/02/2014,350306.85,350306.85 12/02/2014,350306.85,350306.85 13/349867.08 18/02/2014,349867.08,349867.08 19/02/2014,349867.08,349867.08.00.0498.00.00.00.00. 2014,347892.08,347892.08 26/02/2014,347892.08,347892.08 27/02/2014,347892.08,347892.08 28/02/2014,347892.08,347892.08 03/03/2014,347892.08,347892.08 04/03/2014,347892.08,347892.08 05/03/2014,347892.08,347892.08 06/03/2014,347892.08,347892.08 07/03/2014,347892.08,347892.08 10/03/2014,347892.08,347892.08 11/03/2014,347892.08,347892.08 12/03/2014 ,347892.08,347892.08 13/03/2014,347453.05,347453.05 14/03/2014,347453.05,327345.29 17/03/2014,347453.05,347453.05 96.66 19/03/2014,342426.72,339219.78 20/03/2014,342426.72,330867.13 21/03/203/2014,342426.72,331911. 2014,342427.72,334545.23 27/03/2014,342427.72,338089.43 28/03/2014,337334.64,343461.25
Saya sebenarnya bukan seorang pengekod, jadi ia agak kemas.
Sebarang penyelesaian/cadangan amatlah dihargai.
terima kasih.