Trailing-Fonds-Funktion (Aktien) - hat jemand eine fertige Funktion gefunden? - Seite 9

 
globale Variablen als Option verwenden
 

So habe ich Gewinnmitnahmen in einem meiner EAs gemacht:

extern double ProfitAutoClose = 100.0; // Inkrement für Gewinnmitnahmen

Doppel-Depo;

int init()
{
//----
Depo=AccountEquity();
GlobalVariableSet("Depo",Depo);
//----
return(0);
}

int start()
{

Depo=GlobalVariableGet("Depo");

if(AccountEquity()-Depo>ProfitAutoClose)
{

ClosePositions("0",-1, Mn);//alle Positionen schließen

Depo=AccountEquity();

GlobalVariableSet("Depo",Depo);

}

...

 
Rita >> :

Genau das ist die Schwierigkeit. Wie bestimmen Sie das Eigenkapital in den vorangegangenen Schritten?

Sie müssen sich auf einen früheren Eigenkapitalwert verlassen. Woher bekommen wir ihn - den früheren Wert?

EINE VARIABLE ERHALTEN.

 

Ich danke Ihnen allen. Ja, in der Tat.

Ich habe auf Gewinnmitnahme geschlossen (von khorosh) und diese Option funktioniert sehr gut. Und nach der Optimierung des Parameters ProfitAutoClose hat sich der Drawdown deutlich verringert!


Allerdings handelt es sich dabei nicht gerade um eine Eigenkapitalbeschneidung.

Wie fügt man hier nachlaufendes Eigenkapital hinzu? Würde ich eine weitere Variable einführen?

 
Werfen Sie einen Blick auf das nachlaufende Eigenkapital in Igor Kims neuem Ratgeber.
 

Vielen Dank, granit77!

Aber das ist nur die Version, mit der ich ursprünglich experimentiert habe. Es wird nicht passen, weil dort das Schleppnetz von der Waage gestoßen wird und mit der Waage interagiert. Es ist der Profit, der verfolgt wird.

In meinem EA liegt das Eigenkapital immer unter dem Saldo und dieser Aufbau ist nicht geeignet.

Ich habe es bereits erwähnt (letzter Beitrag auf Seite 7):

"Wie kann ich die Aktien nachziehen, wenn mein EA immer einen negativen Gewinn anzeigt?
D.h.,es gibt keinen Gewinn, sondern einen laufenden Verlust (das ist die spezifische EA-Operation, jede einzelne Position schließt (meist) im Plus, aber alle offenen Positionen sind in diesem Fall immer im Verlust).

 
Rita >> :

Und bei meinem EA ist das Eigenkapital immer dauerhaft unter dem Saldo und diese Konstruktion passt nicht.

Schließen Sie zuerst die unrentablen Geschäfte, dann die rentablen. Der Saldo wird unter das Eigenkapital fallen (was dem Eigenkapital über dem Saldo entspricht).

// Die Rentabilität wird dadurch in keiner Weise beeinträchtigt.

Andernfalls neigen Sie wohl dazu, sich über die Tatsache "Gleichgewicht<" aufzuregen. Sie sind sogar so frustriert, dass Sie Ihr Tempo stark verlangsamen. ;)

Im Grunde können Sie mir den Quellcode schicken (wenn Sie ihn nicht veröffentlichen wollen) und ich werde ihn für Sie korrigieren.

 

Rita, hier ist ein Blick auf den Code (als Beispiel), einmal tat mich, NICHT mit, aber es funktionierte, wie ich jetzt erinnern :)

keine Verknüpfung mit Bilanzen, Bilanzgewinnen und anderen unnötigen Dingen

(vor der Verwendung gründlich prüfen, für die eigenen Bedürfnisse abändern)

if (!GlobalVariableCheck("StopTrading")) {if (!GlobalVariableCheck("TrStopEquity")) { int sl=SL_Equity; int tp=TP_Equity; if (( sl!=0 && KontoEigenkapital()<=sl) || (tp!=0 && AccountEquity()>=tp)){ GlobalVariableSet("StopTrading",1); Sleep(500); ClosePositions(); if ( ShowComment){ comm="Handel abgeschlossen. Alle Handelsgeschäfte sind abgeschlossen.\n"; comm=comm+"Expert Advisors angehalten bei: "+TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS); Kommentar( pref, comm);}} } }if (!GlobalVariableCheck("StopTrading")) {bool tr_stop=TrStop_Equity; int tr_step=TrStep_Equity; int tr_dist=TrDist_Equity; int tr_lvl =TrStartLvl_Equity;if (( tr_stop)||( tr_lvl!=0 && AccountEquity()>=tr_lvl)||(GlobalVariableCheck("trStopEquity")) { if (!GlobalVariableCheck("TrStopEquity")){ GlobalVariableSet("TrStopEquity",1);} Sleep(500); if (!GlobalVariableCheck("SL_Equity")){ GlobalVariableSet("SL_Equity",(AccountEquity()-tr_dist));} Sleep(500); sl=GlobalVariableGet("SL_Equity"); if (AccountEquity()<=sl){ GlobalVariableSet("StopTrading",1); Sleep(500); GlobalVariableDel("TrStopEquity"); Sleep(500); GlobalVariableDel("SL_Equity"); Sleep(500); ClosePositions(); wenn ( ShowComment){ comm="Handel abgeschlossen. Alle Handelsgeschäfte sind abgeschlossen.\n"; comm=comm+"Expert Advisors angehalten bei: "+TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS); Comment( pref, comm);}} sonst{wenn (KontoEigenkapital()>( sl+tr_dist+tr_step)GlobalVariableSet("SL_Equity",(AccountEquity()-tr_dist);Schlaf(500);if ( ShowComment) { comm="Trailing Stop wird ausgeführt:\n"; comm=comm+"Level Stop Loss: "+DoubleToStr(NormalizeDouble( sl,2),2)+"\n"; comm=comm+TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);Kommentar( pref, comm); } }} 
Die verwendeten Funktionen stammen von Kim. Sie finden sie im Forum, wenn Sie sie nicht bereits haben.
 

Wenn Sie einen Trawl für Eigenkapital haben, senden Sie uns bitte ein einfaches - schließen Sie alle Positionen und löschen Sie alle Aufträge, wenn Eigenkapital = ХХХХХ, d.h. wenn mein Kontostand vor dem Eröffnen von Positionen 10000 war, stelle ich im Trawl ein Eigenkapital von 10500 ein und sobald Eigenkapital = 10500 ist, schließe ich alle Aufträge und offenen Positionen).

Ich habe mir Kims ... Ich finde, es sieht alles ein bisschen kompliziert aus ...) oben in diesem Thread angesehen ...) Vielen Dank im Voraus:)

 

Ah, das ist es, ich glaube, ich habe es gerade oben gefunden... stCloseOrders scheint das richtige zu sein:)

Aber wenn jemand etwas Ähnliches hat, dann wirf es rein... es ist nie zu nützlich:)