|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
struct Problem
Bin grade völlig verwirrt wie ich das unter einen Hut bringe und brauche einen Denk-Anstubser.
Situation: Je nachdem, ob eine ATR, ADR oder der Mittelwert aus beiden benutzt werden soll, wird dieser Wert ausgerechnet: Code:
... if(UseADR) ApairADTR[i]=ApairADR[i]; if(UseATR) ApairADTR[i]=ApairATR[i]; if(UseADTR) ApairADTR[i]=(int)MathRound( ( iATR(Apairnames[i],PERIOD_D1,ATRperi,0)/APip[i] +ApairADR[i] )/2 ); Code:
struct Werte { int SpairAtr; //PairsATRvalue int SpairAdr; //PairsADRvalue int SpairAdtr; //PairsAverageOfATRandADR } Code:
... in OnInit // === put a placeholder for the ATR CreatePairValue("pATRd1"+IntegerToString(i),xOffset+1*BoxWidth,pOffset+i*LineHeight,"---"); Wie gehe ich mit den Structs um? Danke. AVT |
|
|||
Ich habe beschlossen, die ersten beiden aus dem struct rauszuschmeißen und nur den "allgemeinsten" Adtr zu behalten.
Code:
//int SpairAtr; //int SpairAdr; int SpairAdtr; |
|
|||
Sortierung versus Kalkulation
Ich krieg die Sortierung im laufenden Betriebe einfach nicht hin (bei festen Werten funktioniert es ja).
Meine Tabelle sieht so aus: Code:
Name ATR Moved Spread EURUSD 69 71 5 GBPUSD 100 62 12 "Moved" und "Spread" ändern sich ständig, werden also in OnCalculate neu berechnet. Ich habe schon versucht, eine bool CalcIsStopped in OnCalculate einzusetzen, aber sobald die Tabelle sortiert ist, bringt mir die Kalkulation alles wieder durcheinander. Hat jemand einen Hinweis, worauf ich achten muß? Danke. AVT |
|
|||
Nimm doch für jede Spalte ein Array, das ist einfacher als struct
|
|
|||
Danke Dir , ich habe 3 Arrays (1. FixTabelle, wird nie geändert, 2. dasselbe als variable ArbeitsTabelle, und 3. ein einfaches SortierArray mit 2 Spalten). Es wird nur die ArbeitsTabelle verwendet, da kommen die neusten berechneten oder sortierten Werte rein, und raus gehen ihre Werte zum Pinseln im Chart. Auf diese Weise kann ich alles quer durch die ArbeitsTabelle miteinander vergleichen.
Nun habe ich rausgefunden, wo der Fehler lag => ein Loop zu viel im Loop . Nu ist alles gut. AVT |
Lesezeichen |
|
|