Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43263
Benutzer: 7.223
Aktive Benutzer: 73
Links: 84
Wir begrüßen unseren neuesten Benutzer: TS_6
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Tagen
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 322
Gesamt: 323
Team: 0
Team:  
Benutzer:  TS_6
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 23.04.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard 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 );
Ich hatte zu Anfang 3 Structs definiert:
Code:
struct Werte 
{
   int    SpairAtr;     //PairsATRvalue
   int    SpairAdr;     //PairsADRvalue
   int    SpairAdtr;    //PairsAverageOfATRandADR
}
Es gibt aber nur eine Spalte, die nachher den Wert in den Chart pinselt:
Code:
... in OnInit
// === put a placeholder for the ATR
CreatePairValue("pATRd1"+IntegerToString(i),xOffset+1*BoxWidth,pOffset+i*LineHeight,"---");
Frage:
Wie gehe ich mit den Structs um?
Danke. AVT
  #2 (permalink)  
Alt 24.04.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

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;
Das ist schließlich, was im Endeffekt in der Tabelle auftaucht; und wenn ich einen der anderen Werte brauche, sind die ja in den Berechnungsbuffern vorhanden. AVT
  #3 (permalink)  
Alt 24.04.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Angry 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
Der "Name" steht fest, "ATR" ist ein d1 Wert, den lasse ich nur bei IsNewDay berechnen (also auch quasi-fest).
"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
  #4 (permalink)  
Alt 30.04.20
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 42
Bayreuther befindet sich auf einem aufstrebenden Ast
Standard

Nimm doch für jede Spalte ein Array, das ist einfacher als struct
  #5 (permalink)  
Alt 01.05.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Bayreuther Beitrag anzeigen
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
Thema geschlossen

Lesezeichen


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 11:49 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------