Hulp nodig met 'array buiten bereik'
Page 1 of 632 12 LastLast
Results 1 to 10 of 13

Thread: Hulp nodig met 'array buiten bereik'

  1. #1
    Hallo jongens,

    Mijn ogen bloeden


    Kan iemand zien wat er mis is met mijn code, ben nu al uren aan het proberen.

    Fout bij bevestiging aan de grafiek: array buiten bereik - in deze regel: double current_high = High[current_bar_index];

    Code ingevoegd in ThisBarTrade = 0;/ ----------------------------------------------- ------------------- /| Initialisatiefunctie voor aangepaste indicatoren |/ ----------------------------------------------- ------------------- int OnInit() {/--- indicator buffers mapping/Elke keer dat de indi opnieuw wordt geladen (dwz schakelen tussen TF's, nieuwe toepassing , etc ...),/de huidige balk wordt niet gecontroleerd op voorwaarden. ThisBarTrade = Tijd#91;0#93;;/--- return (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Klantindicator de�nitialisatiefunctie |/ ----------------------------------------------- ------------------- int deinit() { return(0); }/ ---------------------------------------------- -------------------- /| Aangepaste indicator iteratiefunctie |/ ----------------------------------------------- ------------------- 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;) {/--- tekenreeksparen#91;#93;; int lengte = getAvailableCurrencyPairs(paren); if (Bars! = ThisBarTrade) { ThisBarTrade = Bars;/zorg voor slechts ��n handelsmogelijkheid per staaf/Loop door symbolen for(int i=0; i lt; length; i ) {/Alert(Pair #, i 1, : , pairs#91;i#93; );/Get index int current_bar_index = iHighest(pairs#91;i#93;, PERIOD_M5, MODE_HIGH, 1, 0); int previous_bar_index = iHighest(pairs#91;i#93;, PERIOD_M5, MODE_HIGH, 1, 1); int current_bar_index_low = iLowest(pairs#91;i#93;, PERIOD_M5, MODE_LOW, 1, 0); int previous_bar_index_low = iLowest(pairs#91;i#93;, PERIOD_M5, MODE_LOW, 1, 1);/Krijg dubbele prijzen current_high = High#91;current_bar_index#93;; double previous_high = High#91;previous_bar_index#93;; dubbel current_low = Low#91;current_bar_index_low#93;; double previous_low = Laag#91;vorige_bar_index_low#93;;/Logica - Start if (( previous_low 1.0 * Point ) gt; current_low || ( previous_high - 1.0 * Point ) lt; current_high ) { Alert (Pair #, i 1, : , pairs#91;i#93; , heeft een hoger hoog of lager laag); }/Logic - End }/for length }/if Bars/--- retourwaarde van prev_calculated voor volgende call return (rates_total); }/ ---------------------------------------------- -------------------- // ----------------------------------------------- ------------------- int getAvailableCurrencyPairs(string availableCurrencyPairs#91;#93;) {/--- bool selected = false; const int symbolenCount = SymbolenTotaal (geselecteerd); int valutaparenCount; ArrayResize(beschikbareCurrencyPairs,symbolCount); int idxCurrencyPair = 0; for(int idxSymbol = 0; idxSymbol lt; symbolenCount; idxSymbol ) { string symbol = SymbolName(idxSymbol, geselecteerd); string firstChar = StringSubstr(symbool, 0, 1); if(firstChar!= # StringLen(symbol) == 6) { availableCurrencyPairs#91;idxCurrencyPair #93; = symbool; } } valutaparenCount = idxCurrencyPair; ArrayResize(beschikbareCurrencyPairs, currencypairsCount); retour valutaparenCount; }/ ---------------------------------------------- -------------------- klasse CFix { } ExtFix;/Forceer evaluatie van expressies tijdens het debuggen

  2. #2

    Quote Originally Posted by ;
    {quote} iHigh etc retourneert de werkelijke dubbele prijs, geen int-index. De sectie onder/Get Prices, gebruikt de prijzen van de grafiek: Hoog[], Laag[], enz. zijn de prijzen voor de huidige grafiek. Dus elke index die u hierboven krijgt, wordt alleen gebruikt met A/U-prijzen. Zou in totaal maar 4 regels moeten zijn, niet 8. current_high=iHigh(symbol,tf,index); enz
    Bedankt Beerun!! Dus nu scant het ook andere paren, toch? Ingevoegde codetekenreeksparen#91;#93;; int lengte = getAvailableCurrencyPairs(paren); if (Bars! = ThisBarTrade) { ThisBarTrade = Bars;/zorg voor slechts ��n handelsmogelijkheid per staaf/Loop door symbolen voor (int i=0; i lt; lengte; i ) {/Ontvang prijzen dubbel current_high = iHigh (pairs#91;i#93;, PERIOD_M5, 0 ); double previous_high = iHigh(pairs#91;i#93;, PERIOD_M5, 1); double current_low = iLow(pairs#91;i#93;, PERIOD_M5, 0); double previous_low = iLow(pairs#91;i#93;, PERIOD_M5, 1);/Logic - Start if (( previous_low 1.0 * Point ) gt; current_low || ( previous_high - 1.0 * Point ) lt; current_high ) {/Alert (Pair #, i 1, : , pairs#91;i# 93; , heeft een hoger hoog of lager laag); }/Logica - End }/voor lengte }/if Bars

  3. #3

    Quote Originally Posted by ;
    {quote} Zoals dit toch? tekenreeksparen[]; int lengte = getAvailableCurrencyPairs(paren); if (Bars! = ThisBarTrade) { ThisBarTrade = Bars;/zorg voor slechts ��n handelsmogelijkheid per balk/Loop door symbolen voor (int i=0; i lt; lengte; i ) {//Alert(Pair #, i 1, : , pairs);/Get index int current_bar_index = iHigh (paren, PERIOD_M5, 0); int previous_bar_index = iHigh (paren, PERIODE_M5, 1); int current_bar_index_low = iLow (paren, PERIODE_M5, 0); int previous_bar_index_low = iLow (paren, PERIODE_M5, 1);/Afdrukken (paren: paren);...
    iHigh enz. retourneert de werkelijke dubbele prijs, geen int-index. De sectie onder/Get Prices, gebruikt de prijzen van de grafiek: Hoog[], Laag[], enz. zijn de prijzen voor de huidige grafiek. Dus elke index die u hierboven krijgt, wordt alleen gebruikt met A/U-prijzen. Zou in totaal maar 4 regels moeten zijn, niet 8. current_high=iHigh(symbol,tf,index); enz

  4. #4
    Quote Originally Posted by ;
    {quote} Ja, je hebt gelijk, teveel nadenken denk ik toen ik deze problemen had
    Laat me proberen het te veranderen
    Zoals dit toch? Ingevoegde codetekenreeksparen#91;#93;; int lengte = getAvailableCurrencyPairs(paren); if (Bars! = ThisBarTrade) { ThisBarTrade = Bars;/zorg voor slechts ��n handelsmogelijkheid per staaf/Loop door symbolen for(int i=0; i lt; length; i ) {/Alert(Pair #, i 1, : , pairs#91;i#93; );/Get index int current_bar_index = iHigh (pairs#91;i#93;, PERIOD_M5, 0); int previous_bar_index = iHigh(pairs#91;i#93;, PERIOD_M5, 1); int current_bar_index_low = iLow(paren#91;i#93;, PERIODE_M5, 0); int previous_bar_index_low = iLow(pairs#91;i#93;, PERIOD_M5, 1);/Print(paren: paren#91;i#93;/Krijg dubbele prijzen current_high = High#91;current_bar_index#93;; double previous_high = High#91;previous_bar_index#93;; dubbel current_low = Low#91;current_bar_index_low#93;; double previous_low = Laag#91;vorige_bar_index_low#93;;/Logic - Start if (( previous_low 1.0 * Point ) gt; current_low || ( previous_high - 1.0 * Point ) lt; current_high ) {/Alert (Pair #, i 1, : , pairs#91;i# 93; , heeft een hoger hoog of lager laag); }/Logica - End }/voor lengte }/if Bars

  5. #5
    Quote Originally Posted by ;
    Waarom gebruikt u iHighest/iLowest voor een enkele balk? (...,1,0) Gebruik de cohl-arrays gewoon rechtstreeks. Ik weet niet of het de bedoeling is of niet, maar je neemt de hoogste/laagste van een ander paar en gebruikt dan die balkindex alleen op aud/usd-arrays. Zou iHigh, iLow, enz. moeten gebruiken als u andere symbolen aanvinkt.
    Je hebt gelijk, teveel nadenken denk ik toen ik deze problemen had
    Laat me proberen het te veranderen

  6. #6
    Quote Originally Posted by ;
    {quote} Klassiek gemist door 1 - die buiten de reeks valt. Het is waarschijnlijker dat je lus te veel telt en met 1 is overschreden. Controleer of er daadwerkelijk paren zijn [i] - waarschijnlijker is dat je te veel hebt geteld.
    Hoe kunnen er te veel worden geteld als het automatisch wordt gedaan met de functie getAvailableCurrencyPairs(pairs)? Ohh jongen, hoe kan dat gebeuren
    , de fout is verdwenen en ik heb niets in de code veranderd. Dezelfde makelaar, dezelfde paren, dezelfde grafiek als ik de indi de hele tijd bijvoeg. Code ingevoegd in ThisBarTrade = 0;/ ----------------------------------------------- ------------------- /| Initialisatiefunctie voor aangepaste indicatoren |/ ----------------------------------------------- ------------------- int OnInit() {/--- indicator buffers mapping/Elke keer dat de indi opnieuw wordt geladen (dwz schakelen tussen TF's, nieuwe toepassing , etc ...),/de huidige balk wordt niet gecontroleerd op voorwaarden. ThisBarTrade = Tijd#91;0#93;;/--- return (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Klantindicator de�nitialisatiefunctie |/ ----------------------------------------------- ------------------- int deinit() { return(0); }/ ---------------------------------------------- -------------------- /| Aangepaste indicator iteratiefunctie |/ ----------------------------------------------- ------------------- 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 {/--- tekenreeksparen#91;#93;; int lengte = getAvailableCurrencyPairs(paren); if (Bars! = ThisBarTrade) { ThisBarTrade = Bars;/zorg voor slechts ��n handelsmogelijkheid per staaf/Loop door symbolen for(int i=0; i lt; length; i ) {/Alert(Pair #, i 1, : , pairs#91;i#93; );/Get index int current_bar_index = iHighest(pairs#91;i#93;, PERIOD_M5, MODE_HIGH, 1, 0); int previous_bar_index = iHighest(pairs#91;i#93;, PERIOD_M5, MODE_HIGH, 1, 1); int current_bar_index_low = iLowest(pairs#91;i#93;, PERIOD_M5, MODE_LOW, 1, 0); int previous_bar_index_low = iLowest(pairs#91;i#93;, PERIOD_M5, MODE_LOW, 1, 1); Afdrukken (paren: paren#91;i#93;/Krijg dubbele prijzen current_high = High#91;current_bar_index#93;; double previous_high = High#91;previous_bar_index#93;; dubbel current_low = Low#91;current_bar_index_low#93;; double previous_low = Laag#91;vorige_bar_index_low#93;;/Logic - Start if (( previous_low 1.0 * Point ) gt; current_low || ( previous_high - 1.0 * Point ) lt; current_high ) {/Alert (Pair #, i 1, : , pairs#91;i# 93; , heeft een hoger hoog of lager laag); }/Logica - Einde}/for length }/if Bars/--- retourwaarde van prev_calculated voor volgende call return (rates_total); }/ ---------------------------------------------- -------------------- / -------------------------- ---------------------------------------- int getAvailableCurrencyPairs(string availableCurrencyPairs#91;# 93 {/--- bool geselecteerd = false; const int symbolenCount = SymbolenTotaal (geselecteerd); int valutaparenCount; ArrayResize(beschikbareCurrencyPairs,symbolCount); int idxCurrencyPair = 0; for(int idxSymbol = 0; idxSymbol lt; symbolenCount; idxSymbol ) { string symbol = SymbolName(idxSymbol, geselecteerd); string firstChar = StringSubstr(symbool, 0, 1); if(firstChar!= # StringLen(symbol) == 6) { availableCurrencyPairs#91;idxCurrencyPair #93; = symbool; } } valutaparenCount = idxCurrencyPair; ArrayResize(beschikbareCurrencyPairs, currencypairsCount); retour valutaparenCount; }/ ---------------------------------------------- -------------------- klasse CFix { } ExtFix;/Forceer evaluatie van expressies tijdens het debuggen

  7. #7
    Waarom gebruikt u iHighest/iLowest voor een enkele balk? (...,1,0) Gebruik de cohl-arrays gewoon rechtstreeks. Ik weet niet of het de bedoeling is of niet, maar je neemt de hoogste/laagste van een ander paar en gebruikt die balkindex dan alleen op aud/usd-arrays. Zou iHigh, iLow, enz. moeten gebruiken als u andere symbolen aanvinkt.

  8. #8
    Quote Originally Posted by ;
    Het lijkt erop dat het alleen de laatste is die er is -1
    {afbeelding}
    Klassieker gemist door 1 - die niet in de rij staat. Het is waarschijnlijker dat je lus te veel telt en met 1 is overschreden. Controleer of er daadwerkelijk paren zijn [i] - waarschijnlijker is dat je te veel hebt geteld. Print uit wat Pair[i] is en zorg ervoor dat er echt waarde is.

  9. #9
    1 Bijlage(n) Het lijkt erop dat het alleen de laatste is die er is -1


  10. #10
    Ja, zoals u zegt, het is -1. Hoe corrigeer ik dit? Hoe kan het -1 zijn als er kaarsen op de kaart staan?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
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.