Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools  
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4443
Beiträge: 40480
Benutzer: 6.832
Aktive Benutzer: 266
Links: 80
Wir begrüßen unseren neuesten Benutzer: burkijan
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- burkijan
vor 2 Tagen
- Chidiroglo...
vor 3 Tagen
- JapanTrade...
vor 5 Tagen
- chroma
vor 6 Tagen
- statisticm...

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 106
Gesamt: 108
Team: 0
Team:  
Benutzer:  stoffel, TogoTiger
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 4 Wochen
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 340
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
Mit Zitat antworten
  #2 (permalink)  
Alt vor 4 Wochen
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 340
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
Mit Zitat antworten
  #3 (permalink)  
Alt vor 4 Wochen
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 340
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
Mit Zitat antworten
  #4 (permalink)  
Alt vor 3 Wochen
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
Mit Zitat antworten
  #5 (permalink)  
Alt vor 3 Wochen
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 340
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
Mit Zitat antworten
Antwort

Lesezeichen


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:31 Uhr.





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