Butuh bantuan dengan 'array di luar jangkauan'
Halaman 1 dari 462 12 TerakhirTerakhir
Results 1 to 10 of 13

Thread: Butuh bantuan dengan 'array di luar jangkauan'

  1. #1
    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

  2. #2

    Quote Originally Posted by ;
    {quote} iHigh dll mengembalikan harga ganda aktual bukan indeks int. Bagian di bawah/Dapatkan Harga, menggunakan harga grafik: Tinggi[], Rendah[], dll adalah harga untuk grafik saat ini. Jadi setiap indeks yang Anda dapatkan di atas hanya digunakan dengan harga A/U. Seharusnya hanya 4 baris total bukan 8. current_high=iHigh(symbol,tf,index); dll.
    Terima kasih Beerun!! Jadi sekarang juga memindai pasangan lain juga kan? Pasangan string Kode yang disisipkan#91;#93;; int panjang = getAvailableCurrencyPairs(pasangan); if (Bar != ThisBarTrade ) { ThisBarTrade = Bar;/memastikan hanya satu peluang perdagangan per bar/Loop melalui simbol for(int i=0; i lt; length; i ) {/Dapatkan harga double current_high = iHigh(pairs#91;i#93;, PERIOD_M5, 0 ); double sebelumnya_tinggi = iTinggi(pasangan#91;i#93;, PERIOD_M5, 1); double current_low = iLow(pasangan#91;i#93;, PERIOD_M5, 0); double sebelumnya_rendah = iLow(pasangan#91;i#93;, PERIOD_M5, 1);/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

  3. #3

    Quote Originally Posted by ;
    {quote} Seperti ini kan? pasangan string[]; 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);/Dapatkan indeks int current_bar_index = iHigh(pasangan, PERIOD_M5, 0); int sebelumnya_bar_index = iTinggi(pasangan, PERIOD_M5, 1); int current_bar_index_low = iLow(pasangan, PERIOD_M5, 0); int sebelumnya_bar_index_low = iLow(pasangan, PERIOD_M5, 1);/Cetak(pasangan : pasang);...
    iHigh dll mengembalikan harga ganda yang sebenarnya bukan indeks int. Bagian di bawah/Dapatkan Harga, menggunakan harga grafik: Tinggi[], Rendah[], dll adalah harga untuk grafik saat ini. Jadi setiap indeks yang Anda dapatkan di atas hanya digunakan dengan harga A/U. Seharusnya hanya 4 baris total bukan 8. current_high=iHigh(symbol,tf,index); dll.

  4. #4
    Quote Originally Posted by ;
    {quote} Ya y o u r benar, terlalu banyak berpikir saya kira ketika saya memiliki masalah ini
    Biarkan saya mencoba mengubahnya
    Seperti ini kan? Pasangan string Kode yang disisipkan#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 = iTinggi(pasangan#91;i#93;, PERIOD_M5, 0); int sebelumnya_bar_index = iTinggi(pasangan#91;i#93;, PERIOD_M5, 1); int current_bar_index_low = iLow(pasangan#91;i#93;, PERIOD_M5, 0); int sebelumnya_bar_index_low = iLow(pasangan#91;i#93;, PERIOD_M5, 1);/Cetak(pasangan : pasang#91;i#93;/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

  5. #5
    Quote Originally Posted by ;
    Mengapa Anda menggunakan iHighest/iLowest untuk satu batang? (...,1,0) Cukup gunakan array cohl secara langsung. Saya tidak tahu apakah itu dimaksudkan atau tidak, tetapi Anda mengambil yang tertinggi/terendah dari pasangan yang berbeda dan kemudian menggunakan indeks batang itu hanya pada array aud/usd. Harus menggunakan iHigh, iLow, dll, jika Anda memeriksa simbol lain.
    Ya, Anda benar, terlalu banyak berpikir saya kira ketika saya memiliki masalah ini
    Biarkan saya mencoba mengubahnya

  6. #6
    Quote Originally Posted by ;
    {quote} Klasik terlewatkan oleh 1 - yang keluar dari array. Kemungkinan besar, loop Anda menghitung terlalu banyak dan melewati 1. Periksa apakah benar-benar ada pasangan[i] - kemungkinan besar, Anda menghitung terlalu banyak.
    Bagaimana bisa dihitung terlalu banyak jika dilakukan secara otomatis dengan fungsi getAvailableCurrencyPairs(pairs)? Ohh nak, bagaimana itu bisa terjadi
    , kesalahannya hilang dan saya tidak mengubah apa pun dalam kode. Broker yang sama, pasangan yang sama, grafik yang sama ketika saya memasang indi sepanjang waktu. 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); Cetak(pasangan : pasang#91;i#93;/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 - Selesai}/untuk panjang }/jika Bar/--- mengembalikan nilai prev_calculated untuk panggilan berikutnya return(rates_total); }/ ------------------------------------------------- -------------------- / -------------------------- ---------------------------------------- int getAvailableCurrencyPairs(string availableCurrencyPairs#91;# 93 {/--- bool dipilih = salah; 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

  7. #7
    Mengapa Anda menggunakan iHighest/iLowest untuk satu batang? (...,1,0) Cukup gunakan array cohl secara langsung. Saya tidak tahu apakah itu#8217;s dimaksudkan atau tidak tetapi Anda mengambil yang tertinggi/terendah dari pasangan yang berbeda dan kemudian menggunakan indeks batang itu hanya pada array aud/usd. Harus menggunakan iHigh, iLow, dll, jika Anda memeriksa simbol lain.

  8. #8
    Quote Originally Posted by ;
    Sepertinya hanya yang terakhir yang ada -1
    {gambar}
    Klasik terlewatkan oleh 1 - yang keluar dari susunan. Kemungkinan besar, loop Anda menghitung terlalu banyak dan melewati 1. Periksa apakah benar-benar ada pasangan[i] - kemungkinan besar, Anda menghitung terlalu banyak. Cetak apa itu Pair[i] dan pastikan benar-benar ada nilainya.

  9. #9
    1 Lampiran Tampaknya hanya yang terakhir ada -1


  10. #10
    Ya seperti yang Anda katakan itu -1 Bagaimana cara memperbaikinya? Bagaimana bisa -1 ketika ada lilin di grafik?

Similar Threads

  1. Butuh bantuan dengan pengkodean
    By chehyeho3 in forum Pembicaran Bitcoin dan Mata Uang Kripto
    Balasan: 12
    Postingan Terakhir: 12-01-2022 11:56, 11:56 AM
  2. Array di luar jangkauan? Membantu?
    By thy87 in forum Pilihan Biner
    Balasan: 10
    Postingan Terakhir: 11-23-2021 16:01, 04:01 PM
  3. Array di luar jangkauan? Membantu?
    By thy87 in forum Pembicaran Bitcoin dan Mata Uang Kripto
    Balasan: 10
    Postingan Terakhir: 02-19-2018 07:41, 07:41 AM
  4. Butuh bantuan dengan EA
    By gauhywh00 in forum Pilihan Biner
    Balasan: 0
    Postingan Terakhir: 03-28-2009 15:31, 03:31 PM
  5. Butuh bantuan dengan EA
    By gauhywh00 in forum Pembicaran Bitcoin dan Mata Uang Kripto
    Balasan: 0
    Postingan Terakhir: 03-28-2009 15:31, 03:31 PM

Izin Posting

  • Anda tidak boleh memposting thread baru
  • Anda tidak boleh memposting balasan
  • Anda tidak boleh memposting lampiran
  • Anda tidak boleh menyunting postingan Anda
  •  
  • Kode BB Aktif
  • Smilies Aktif
  • Kode [IMG] Aktif
  • Kode [VIDEO] Aktif
  • Kode HTML tidak aktif
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.