Forex programozás › Fórum › Kérdések az MQL4 programozási nyelvvel kapcsolatban › Érthetetlen hiba
Címkézve: chartra csatolás, indikátor
-
SzerzőBejegyzés
-
Szia Radu!
Egy indikátorban három közül az egyik értékek nem jelenik meg. Hosszas nyomozás után megtaláltam a hiba helyét. Az indikátor tömb értékadás után nulla marad, de azt már nem tudom, hogy miért. A teszt kód részlet most így néz ki:
BufferFuggo[i] = limit; if ( BufferFuggo[i] != limit ) { Comment( "völgy ", i, " ", BufferFuggo[i], " ", limit ); }
Normális esetben nem szabadna a commentet kiírnia, mégis kiírja. Pl.: ezt: „völgy 5 0 1.2486”
Elküldöm a teljes forráskódot a címedre. Segítesz megtalálni a hiba okát?
Szia Radu!
Megszűnt a hiba, már ne keresd. A kód további tesztelése során ellenőriztem a tömb méretét, és az ArraySize(BufferFuggo) nulla volt. Arra továbbra sem derült fény, hogy mi okozta. De amikor levettem a chartról az indikátort, és visszaraktam, megszűnt a hiba. Úgy látszik az MT4 kavart össze valamit. Mindenesetre sok időm ráment.
Nem szeretem az ilyen megmagyarázhatatlan jelenségeket, ezért megpróbáltam rekonstruálni a hibát. Leírom tanulságképpen, hogy fordulhat ilyesmi elő.
Ezt az indikátort már korábban elkészítettem, két buffert használtam benne. Ma reggel betettem egy harmadik buffert is, na ilyenkor az MT4 nem hajlandó figyelembe venni, hogy változott a bufferek száma, és az új buffernek nem foglal helyet a memóriában. Csak ha újra csatolom a charthoz.
A #property indicator_buffers -zel meg kell adnod a pufferek számát. Amennyiben tömböt használsz adatfeldolgozásra, akkor annyiszor kell végigmenned a tömbökön, ahányszor az adott tömbből dolgozni akarsz.
counted_bars = IndicatorCounted(); limit = Bars - counted_bars; for(int i = 0; i < limit; i++) { Buffer.MAFast[i] = iMA(Symbol(), MA.TF, MA.Period, MA.Shift, MA.Method, MA.Price, e); }
Ha ezek után a a Buffer.MAFast[i] adatai alapján egy másik puffer tömböt akarsz kiszámítani/feltölteni, akkor azt egy újabb for ciklussal kell megtenned. Én ezt a furcsaságot tapasztaltam.
Ameddig az újra chartra csatolás probléma fennáll, addig valami nem jó!
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.