Logik lernen - Seite 5

 
Vinin:


Das ist nicht mein Text. Es ist die Aufgabe des Autors

Optimaler start()-Code

Diese 2 Zeilen sehen, gelinde gesagt, seltsam aus:

   limit = Bars - counted_bars-1;
   if(Bars - counted_bars > 2) limit = Bars - nPeriod-1;

besser so:

   if(Bars - counted_bars > 2) limit = Bars - nPeriod-1;
   else limit = Bars - counted_bars-1;
 
PapaYozh:

Ich verstehe nicht, warum wir um boolesche Variablen herumtanzen müssen, wenn wir es auch so schreiben können:

Es hat mir gefallen, danke für die Erinnerung, PapaYozh. Ich habe selbst solche Konstruktionen geschaffen - und vergessen...
 
Vinin:


Und auch die Logik, die Logik des Denkens.

Die dritte Möglichkeit besteht darin, die logischen Bedingungen im Indikator vollständig aufzugeben. Es stellt sich die Frage, ob das möglich ist.

Versuchen wir es.

Zu diesem Zweck werden wir einige logische Variablen hinzufügen

Der gesamte Code der Startfunktion sieht nun wie folgt aus


Meines Erachtens lässt sich dies vereinfachen

for(int i = 0; i < limit; i++)
{
// Option drei_v1

high=iMA(NULL,0,period,0,MODE_EMA,PRICE_HIGH,i);
low=iMA(NULL,0,period,0,MODE_EMA,PRICE_LOW,i);
atr=high-low;
MaTDn[i] = low - atr;
MaTUp[i] = high + atr;
}

Dateien:
 
Mathemat:
Es hat mir gefallen, danke für die Erinnerung, PapaYozh. Ich selbst habe solche Konstruktionen geschaffen - und vergessen...

Meiner Meinung nach wird der Aufruf der Funktion Symbol() übermäßig häufig verwendet.

Ich würde es so schreiben:

   string smbl=Symbol();
   showEUR  = ( StringFind(smbl, "EUR", 0) != -1);
   showUSD  = ( StringFind(smbl, "USD", 0) != -1);
   showGBP  = ( StringFind(smbl, "GBP", 0) != -1);
   showCHF  = ( StringFind(smbl, "CHF", 0) != -1);
   showJPY  = ( StringFind(smbl, "JPY", 0) != -1);
Aber das hat nichts mit Logik zu tun :)
 
Vinin:

Es ist wirklich ganz einfach. Es besteht der Wunsch, anderen dabei zu helfen, den besten Code zu schreiben, und von anderen zu lernen.

Es ist kein Geheimnis, dass man mit der Zeit ganz bestimmte Stereotypen entwickelt, die manchmal (meistens) hilfreich und manchmal hinderlich sind.

Ich werde eine Variante des Indikators vorbereiten und versuchen zu erklären, was gemacht wurde und warum. Wenn Sie daran interessiert sind, natürlich.


Es gibt keine Möglichkeit, anhand von Beispielen zu erklären, wie man einen optimalen Code erstellt - es wird zu viele Lücken geben.

Der Punkt ist, dass es eine Menge Regeln für die Erstellung eines optimalen Codes gibt. Zum Beispiel wissen nicht viele, die mit der Sprache MQL4 vertraut sind, dass es für einen Prozessor viel einfacher ist, Additions- und Subtraktionsoperationen durchzuführen als Multiplikation und Division. Nur wenige Menschen wissen, dass es aus der Sicht der Code-Optimierung besser ist, a=b+b zu schreiben als a=b*2. Um die Logik des Programmierens und der Optimierung zu verstehen, ist es meines Erachtens viel nützlicher, Interessierte auf Werke über die Konstruktion eines optimalen Codes und das Studium von Algorithmussprachen zu verweisen und die Benutzer daran zu gewöhnen, Flussdiagramme zukünftiger Programme zu erstellen, um Auslassungen zu vermeiden und Nacharbeit zu minimieren.

Ich füge einen Link zu einem sehr guten Buch über den Aufbau von Codes bei, das zu diesem Beitrag heruntergeladen werden kann.

С. S. McConnel "Der perfekte Code".


Sie können das Buch hier herunterladen: http://depositfiles.com/files/ebk6t6t5h (Dateigröße 21 Mbytes. Format - djvu)

Im Allgemeinen kann dieser Thread also nur spezielle Fälle von Quellcode und optimierten Codeabschnitten behandeln, mit Erklärungen, warum der optimierte Codeabschnitt besser ist als der Quellcode und warum er auf diese Weise optimiert wurde. Ich denke, das ist genau das, was Sie ursprünglich wollten.

 
drknn:


Im Anhang zu diesem Beitrag finden Sie einen Download-Link zu einem großartigen Buch über die Erstellung von Codes.

С. S. McConnel "Der perfekte Code".

+1, sehr nützliches Buch.
 
drknn:

Im Allgemeinen können wir in diesem Thread also nur spezielle Fälle von Quellcode und optimierten Codeabschnitten diskutieren und erklären, warum der optimierte Codeabschnitt besser ist als der Quellcode und warum er auf diese Weise optimiert wurde. Ich denke, das ist genau das, was Sie von Anfang an wollten.

Auch nicht schlecht, aber trotzdem wäre es gut, entweder den Namen eines Zweiges zu klären oder mit dem Studium der Logik zu beginnen.

Ich weiß wirklich nicht, wie ich das zweite machen soll...))

 
denis_orlov:

Es ist auch nicht schlecht, aber es wäre gut, entweder den Namen des Zweigs zu klären oder mit dem Studium der Logik zu beginnen.

Ich weiß wirklich nicht, wie ich das zweite machen soll...))


Logik(griechisch λογική - "Wissenschaft des Denkens", "Kunst des Denkens" von λόγος - "Rede", "Denken", "Gedanke")- die Wissenschaft von den Formen, Methoden und Gesetzen der intellektuellen kognitiven Tätigkeit, formalisiert mit der logischen Sprache. Da sich dieses Wissen aus der Vernunft ableitet, wird die Logik auch als die Wissenschaft von den Formen und Gesetzen des richtigen Denkens definiert. Da es sich bei der Logik um eine sprachliche Argumentation handelt, bei der Beweise und Widerlegungen Sonderfälle sind, wird sie manchmal auch als die Wissenschaft der Argumentationsweisen oder als die Wissenschaft der Beweis- und Widerlegungsmöglichkeiten definiert. Die Logik als Wissenschaft untersucht, wie man im Erkenntnisprozess auf indirektem Wege zur Wahrheit gelangt, und zwar nicht aus der Sinneserfahrung, sondern aus dem zuvor erworbenen Wissen. Sie kann also auch als Wissenschaft über die Art und Weise der Ableitung von Schlussfolgerungswissen definiert werden.

Das deduktive Wissen, das durch die Anwendung der Gesetze der Logik und der Methoden des logischen Denkens gewonnen wird, - das Ziel jeder logischen Handlung, die auf die Erlangung der Wahrheit und die Anwendung des daraus resultierenden Wissens zu einer tieferen Kenntnis der Phänomene und Ereignisse der Welt abzielt.

Eine der Hauptaufgaben der Logik besteht darin, festzustellen, wie man von einer Prämisse zu einer Schlussfolgerung gelangt(richtiges Denken) und wie man wahres Wissen über den Gegenstand des Denkens erlangt, um ein tieferes Verständnis der Nuancen des untersuchten Denkobjekts und seiner Beziehungen zu anderen Aspekten des fraglichen Phänomens zu gewinnen.

Die Logik dient als eines der Werkzeuge fast jeder Wissenschaft.

 
denis_orlov:

Es ist auch nicht schlecht, aber es wäre gut, entweder den Namen des Zweigs zu klären oder mit dem Studium der Logik zu beginnen.

Ich weiß selbst nicht so recht, wie ich das zweite anstellen soll...)


Ich kann erzählen, wie es bei mir war.

Ich habe drei Jahre gebraucht, um zu versuchen, die Logik als Wissenschaft zu verstehen - ich konnte das Wesentliche immer noch nicht begreifen, z. B. warum ich überhaupt Logik brauche. Es war nur eine Reihe von fast nutzlosen Mustern, aber ich spürte, dass etwas nicht stimmte, also las ich es weiter durch, versuchte, mit den Schemata zu argumentieren und alle möglichen logischen Probleme mit Hilfe von Formeln zu lösen. Und dann, wie aus heiterem Himmel, dämmerte es mir plötzlich... Als ich dann endlich den Wert dieser Disziplin erkannte, begann ich, meine Freunde aktiv in das Studium der Logik einzubeziehen. Ich war buchstäblich "Feuer und Flamme" für die Logik. Meine Freunde wurden aktiv in all den logischen Humor, die Schönheit harter Schlussfolgerungen und die Unlösbarkeit von Paradoxien hineingezogen, und solange ich dabei war, haben sie zumindest etwas gelernt. Doch mit sich selbst allein gelassen, verblassten sie wie die Glut eines Feuers. Keiner von ihnen hatte jemals das Feuer seines eigenen Geistes entzündet. Hier verstand ich, dass sie sich für mich interessierten, aber nicht mehr - keiner von ihnen hatte die Durchschlagskraft in sich, die sie zwingen würde, sich auf diese Wissenschaft einzulassen. Und dann habe ich alle, die tatsächlich Logik studiert haben, in zwei Kategorien eingeteilt. Sie waren alle gezwungen, es zu studieren. Es gab kein Entrinnen. Einige Professoren, die an Universitäten Logik unterrichten, sagen, dass dies für Studenten sehr schwierig ist. Im Gegenteil, sie sind überrascht, wie schwierig es für sie war und wie einfach die Bewerbung war. Deshalb habe ich für mich alle, die dazu gezwungen wurden, in zwei Klassen eingeteilt - diejenigen, die sich während des Studiums in die Logik verliebt haben, und diejenigen, die ihre Credits bestanden und sie vergessen haben. Ich empfinde es immer als angenehm, mit Menschen zu sprechen, die sich in das Thema verliebt haben - sie verstehen einen sofort. Aber manchmal ist es schwer, mit Vergesslichen umzugehen - solche Menschen spielen russisches Roulette mit ihrem eigenen Tod. Die Tatsache, dass man bewusst nur nach einem vorgefertigten Plan handeln kann. Nur so kann ihr Leben wieder in Ordnung gebracht werden. Die Erstellung eines Aktionsplans ist ein Denkprozess. Wenn es nicht richtig gemacht wird, wird das Ergebnis nicht gut sein. Wer Chaos im Kopf hat, der hat auch ein Chaos in seinen Angelegenheiten. Es zeigt sich also, dass das Denken unser Leben bestimmt. Und die Logik hier aufzugeben, ist ein schneller Weg ins Grab.

:) Genug ist genug, sonst kann ich noch stundenlang über solche Dinge reden, und es wird uns schließlich vom Thema dieses Zweigs ablenken.

P.S.

Ich kann nur hinzufügen, dass ich mich in einer so schwierigen Lebenssituation befand, dass ich nicht wusste, was ich tun sollte - alle meine Pläne und Hoffnungen hatten sich zerschlagen. Es tat höllisch weh. Ich erstickte vor Hoffnungslosigkeit. Ich beschloss, dass ich nicht entscheiden konnte, was ich mit meinem Leben anfangen und wie ich mit meinen Mitmenschen umgehen sollte, solange ich die Situation nicht verstanden hatte. Ich wusste aus Büchern, dass es so etwas wie eine Wissenschaft der Logik gibt. An diesem Punkt beschloss ich, dass ich es lernen musste, damit meine Schlussfolgerungen richtig waren. Die Komplexität und der Schmerz meiner Lebenssituation waren die Kraft, die mich anspornte und mich dazu brachte, Antworten auf meine Fragen nicht nur in der Logik, sondern auch in vielen anderen Wissenschaften zu suchen. Das ist jetzt alles Vergangenheit. Warum erzähle ich Ihnen das? Ich wollte nur, dass Sie verstehen, was mich dazu gebracht hat, Logik zu studieren. Ich habe Ihnen sozusagen mit einem Beispiel gezeigt, dass ich keine Ausnahme bin und auch ich diese Disziplin von der Pike auf lernen musste. Aber ich habe es nicht an der Uni studiert, sondern auf eigene Faust.

 
nikost:


Es scheint mir, dass wir das Ganze noch weiter vereinfachen können

for(int i = 0; i < limit; i++)
{
// Variante drei_v1

hoch=iMA(NULL,0,Zeitraum,0,MODE_EMA,PRICE_HIGH,i);
niedrig=iMA(NULL,0,Zeitraum,0,MODE_EMA,PRICE_LOW,i);
atr=high-low;
MaTDn[i] = niedrig - atr;
MaTUp[i] = hoch + atr;
}


Ich habe versucht, das Rendering wie im Originalcode beizubehalten. Die ATR wird anders berechnet. Wenn Sie die beiden Indikatoren vergleichen, werden Sie den Unterschied erkennen.