Einzelnen Beitrag anzeigen
  #26 (permalink)  
Alt 17.03.18
piptrade piptrade ist offline
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 157
piptrade befindet sich auf einem aufstrebenden Ast
Standard

Lieber next user, nochmals Hallo!
Was in den letzten Tagen relativ schnell abgearbeitet wurde, kann ich heute "Revue passieren" lassen:

Zitat 1:
Zitat:
void CheckTakeProfit(); {
Müsste bei dir eigentlich einen Fehler beim Kompilieren generieren. Das Semikolon gehört da nicht hin.
Wie sich das Semikolon "eingeschlichen" hat, weiß ich nicht. Im Original-Code ist es zumindest NICHT enthalten.

Zitat 2:
Zitat:
double TSL = Trail_SL *100 *Point;
Diese Variable brauchst du ja unabhängig der Funktion. Da bietet es sich doch an, diese global oben zu erstellen.
Richtig ! Habe jetzt verschiedene Variablen dem laufenden Code entnommen und global deklariert.

Zitat 3:
Zitat:
... Code ...
Das ist ja der Code, den ich in die "updateSL()" gepakt habe.
Ich finde, in "updateSL()" passt er namentlich besser rein, als "CheckTakeProfit()", oder?
"CheckTakeProfit()" paßt natürlich überhaupt nicht ! Dennoch habe ich mich für "void CheckStopLoss()" entschieden, um den Terminus der anderen Funktionen beizubehalten.

Zitat 4:
Zitat:
... Code ...
So, nachdem der Punkt zuvor vom Programm bearbeitet wurde, rufst du hier mit "updateSL()" erneut den gleichen Code auf.
Der Code gehört eigentlich in die "OnTick()", wie bereits erwähnt.
Lapsus meinerseits;- sorry ! Er wird jetzt nur noch 1 x verwendet und sollte an der korrekten Stelle stehen.

Zitat 5:
Zitat:
Sowohl hier, als auch im selben Code in der "CheckTakeProfit()" hast du den Code mit
(openOrders == 1 || openOrders == 2)
erweitert. Was genau steckt dahinter? Was machen sie?
Sinn und Zweck ist, dass die Trailing-Order für Pos. 1 UND für Pos. 2 erfolgen soll (auch, wenn das im Moment nicht sehr einleuchtend ist). Rein strategisch ist es aber dennoch sinnvoll.

Zitat 6:
Zitat:
OnTick():
Ist "orderTicket1 != 0" dann in der Funktion "updateSL()" Bedingungen überprüfen und ggf. StopLoss anpassen.
Ist "orderTicket2 != 0" dann in der Funktion "updateSL()" Bedingungen überprüfen und ggf. StopLoss anpassen.
Ist "orderTicket1 && orderTicket2 != 0" dann in den folgenden Codezeilen schauen, ob Order2 geschlossen ist.
Ist das der Fall, so Order1 schließen.
Wie bereits erwähnt: Diese Herangehensweise ist einfach genial. Und jetzt, wo ich den Inhalt verstanden habe, - eine tolle, neue Erkenntnis.

Zitat 7:
Zitat:
Der Code der Funktion "updateSL()" hat nichts in der "CheckTakeProfit()" zu suchen.
O.k. ! - siehe oben: - ein Lapsus.

Zitat 8:
Zitat:
Auch der andere Code in "CheckTakeProfit()" gehört nicht darein. Die Funktion ist somit unnötig!
Ja und Nein ! Klar gehört der Code NICHT da hinein.
Die Funktion "CheckTakeProfit()" ist aber dennoch notwendig für eine 3., 4., 5. und 6. Order (DAX). Diese TPs werden "step by step" verkleinert, um eine 7. oder 8. Position möglichst auszuschließen. Hierzu wäre allerdings eine Strategie-Erläuterung sinnvoll, um das Gesamtanliegen des EA zu verstehen. 2 Anhänge sollen hierzu wenigstens eine kleinen Einblick vermitteln. (Bei näherem Interesse bitte einfach nachfragen.)

And the last:
Zitat:
Code:
} // diese Klammer schließt nun den gesamten TP-Bereich
Ironie des Schicksals: Eben diese Klammer ist eine Klammer zuviel!
No comment ! Du sagst es !

So weit, so gut. Und wenn der gesamte Code dann etwas "aufgeräumt" und strukturiert ist, kann er sogar ästhetisch gut aussehen und "das Auge erfreuen"!

Dieses kleine "Zwischenspiel" war ich noch schuldig. Auch ein kleiner Einblick zur Wirkungsweise des EA und in die Performance gehören sicher dazu (siehe Anhänge).
Ansonsten werde ich mich am Mo. melden, um Erfolg oder Misserfolg meiner Tests zu verkünden.

Bis dahin, LG. pt.
Angehängte Grafiken
Dateityp: jpg Hedging_Grundidee.jpg (80,8 KB, 8x aufgerufen)
Dateityp: jpg Statement_Forex_10_01_18.jpg (253,2 KB, 8x aufgerufen)