Hai teman-teman,
Mataku berdarah
Adakah yang bisa melihat apa yang salah dengan kode saya, telah mencoba berjam-jam sekarang.
Kesalahan saat dilampirkan ke bagan: larik di luar jangkauan - di baris ini: double current_high = High[current_bar_index];
Kode yang Dimasukkan int ThisBarTrade = 0;/ ------------------------------------------------ ------------------- /| Fungsi inisialisasi indikator kustom |/ ------------------------------------------------ ------------------- int OnInit() {/--- indicator buffers mapping/Setiap kali indi dimuat ulang (mis. beralih antar TF, berlaku baru , dll ...),/bar saat ini tidak diperiksa untuk kondisi. ThisBarTrade = Waktu#91;0#93;;/--- kembali(INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Fungsi deinisialisasi indikator custor |/ ------------------------------------------------ ------------------- int deinit() { kembali(0); }/ ---------------------------------------------- -------------------- /| Fungsi iterasi indikator kustom |/ ------------------------------------------------ ------------------- 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;) {/--- pasangan string#91;#93;; int panjang = getAvailableCurrencyPairs(pasangan); if (Bar != ThisBarTrade ) { ThisBarTrade = Bar;/memastikan hanya satu peluang perdagangan per batang/Loop melalui simbol for(int i=0; i lt; length; i ) {/Alert(Pair #, i 1, : , pairs#91;i#93; );/Dapatkan indeks int current_bar_index = iHighest(pasangan#91;i#93;, PERIOD_M5, MODE_HIGH, 1, 0); int sebelumnya_bar_index = iTinggi(pasangan#91;i#93;, PERIOD_M5, MODE_HIGH, 1, 1); int current_bar_index_low = iLowest(pasangan#91;i#93;, PERIOD_M5, MODE_LOW, 1, 0); int sebelumnya_bar_index_low = iLowest(pasangan#91;i#93;, PERIOD_M5, MODE_LOW, 1, 1);/Dapatkan harga double current_high = High#91;current_bar_index#93;; double sebelumnya_tinggi = Tinggi#91;indeks_bar_sebelumnya#93;; double current_low = Rendah#91;current_bar_index_low#93;; double sebelumnya_rendah = Rendah#91;bar_index_rendah#93;;/Logika - Mulai jika (( sebelumnya_rendah 1,0 * Poin ) gt; saat_rendah || ( sebelumnya_tinggi - 1,0 * Poin ) lt; saat_tinggi ) { Alert(Pasangan #, i 1, : , pasang#91;i#93; , memiliki tinggi yang lebih tinggi atau rendah yang lebih rendah); }/Logika - Akhir }/untuk panjang }/jika Batang/--- mengembalikan nilai prev_calculated untuk panggilan berikutnya return(rates_total); }/ ---------------------------------------------- -------------------- // ------------------------------------------------ ------------------- int getAvailableCurrencyPairs(string availableCurrencyPairs#91;#93;) {/--- bool dipilih = false; const int symbolCount = SymbolsTotal(dipilih); int currencypairsCount; ArrayResize(availableCurrencyPairs, SymbolCount); int idxCurrencyPair = 0; for(int idxSymbol = 0; idxSymbol lt;symbolCount; idxSymbol ) { simbol string = SymbolName(idxSymbol, dipilih); string firstChar = StringSubstr(simbol, 0, 1); if(firstChar != # StringLen(simbol) == 6) { availableCurrencyPairs#91;idxCurrencyPair #93; = simbol; } } currencypairsCount = idxCurrencyPair; ArrayResize(availableCurrencyPairs, currencypairsCount); kembali currencypairsCount; }/ ---------------------------------------------- -------------------- class CFix { } ExtFix;/Memaksa evaluasi ekspresi saat debugging