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: 4973
Beiträge: 43248
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 822
Gesamt: 822
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree1Likes
  • 1 Post By traderdoc
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 27.11.15
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
Raul0 befindet sich auf einem aufstrebenden Ast
Standard Variablen einsparen?

Hallo,

ich bin beim Energieoptimieren.

Meines Erachtens ist es sinnvoller, wenn z.B. OrdersTotal() nur einmal in der Funktion verwendet wird, nicht noch eine zusätzliche Variable anzulegen.

Das heisst von (Code 1):

PHP-Code:
int total OrdersTotal();
for( 
int cnt cnt <= total cnt++ ) 
zu dem (Code 2):

PHP-Code:
for( int cnt cnt <= OrdersTotal() ; cnt++ ) 
Der erste Code würde nur sinnvoll sein, sollte OrdersTotal() mehrfach abgefragt werden, somit würde dieser Wert sofort in der Variable total bereit stehen und kann in dieser weiter verarbeitet werden.

Sehe ich das richtig, oder gibt es einen Grund, warum das nur wie im ersten Code sein sollte?

Gruss, Raul
__________________

Easy Trading Assistant
  #2 (permalink)  
Alt 27.11.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Kann man so machen. Bzgl. der Geschwindigkeit oder Energieoprtimierungen wirst Du nur leider nix von spüren.

traderdoc
Raul0 likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 27.11.15
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Ja, ich versuche es etwas sauber zu halten.
__________________

Easy Trading Assistant
  #4 (permalink)  
Alt 27.11.15
GoS GoS ist offline
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 73
GoS befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Raul0 Beitrag anzeigen
Ja, ich versuche es etwas sauber zu halten.
Bin grosser Fan von "Code sauber halten" bzw. immer die gleichen Codelayout-Regeln zu benutzen. Dann ist lange nichtmehr bearbeiteter Code viel einfacher wiederzuverstehen...
In diesem Fall handhabe ich das grundsätzlich so, wie du im ersten Beispiel geschrieben hast, weil ich mehrere gleiche Funktionsausführungen von vorne herein vermeiden will.
Was ich z.B. definitiv anders mache, ich initialisiere die Variablen nicht mitten im Code, sondern alle am Anfang...

Ich denke aber, genau wie traderdoc schon meinte, für die Geschwindigkeit ist es egal...
ich würde immer die Lesbarkeit vorziehen
  #5 (permalink)  
Alt 27.11.15
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Was ich z.B. definitiv anders mache, ich initialisiere die Variablen nicht mitten im Code, sondern alle am Anfang...
Du meinst bestimmt nicht in den globalen Variablen-Bereich, sondern im tickbasierten Durchlauf, so werden die Vars, gleich wieder genullt.

Jedoch was für einen Unterschied soll es machen, wenn die Initialisierung zu Beginn steht, oder in dem Bereich den es betrifft?
__________________

Easy Trading Assistant
  #6 (permalink)  
Alt 27.11.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Jo, Lesbarkeit ist das Ah und Oh der Proggerei. Wie oft stellt einer meiner Kunden später fest, da wäre hier oder da noch etwas einzubauen. In der Zwischenzeit hatte ich bereits 3 anderer Aufträge abgearbeitet. Wenn dann nicht alles nach strikten Regeln und in übersichtlicher Form geschrieben wurde, ist das manchmal so, dass man den EA lieber noch mal schreiben müßte.
Da schreibe ich lieber bestimmte Funktionen separat als ineinander verschachtelt. Das verkürzt zwar den Code, aber das kann später keiner mehr lesen.

Die Stelle der Variablendeklaration hat auch was mit dem Gültigkeitsbereich zu tun. Aber in der Regel stehen die immer am Anfang der Funktion.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 27.11.15
GoS GoS ist offline
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 73
GoS befindet sich auf einem aufstrebenden Ast
Standard

@Raul0:
Nein, in den GlobalScope kommen nur Variablen, bei denen es definitiv Sinn macht, sie dort zu initialisieren; eben wegen der Gültigkeit.

Ich arbeite sehr sehr viel mit Funktionen, die ich so kurz wie möglich halte. Sie sollen präzise das machen, wofür sie geschrieben sind. Und hier initialisiere ich sämtliche Variablen gleich am Anfang, um einen Überblick zu haben.

@traderdoc
Zitat:
Da schreibe ich lieber bestimmte Funktionen separat als ineinander verschachtelt. Das verkürzt zwar den Code, aber das kann später keiner mehr lesen.
Genau das ist auch mein Vorgehen.. Meine FuncLibs haben mittlerweile wohl schon fast 500kb; der EA ist bei 251 lines
Thema geschlossen

Lesezeichen

Stichworte
energie, energieoprtimierungen, geschwindigkeit, geschwindigkeitsoptimierung, mql4, optimierung, programmierung, programmierung metatrader

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 +1. Es ist jetzt 20:44 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.
-----------------------------------------------------------------------------------------------------------------------------