Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   EquityAtRisk=AccountEquity() (http://www.expert-advisor.com/forum/showthread.php?t=6032)

Angel 08.03.18 14:10

EquityAtRisk=AccountEquity()
 
Hi,

ich will der Variablen EquityAtRisk den Wert des AccountEquity() zuweisen lassen. Das Ergebnis soll über Comment(EquityAtRisk ) ausgegeben werden, aber es erscheint immer als Ergebnis "0" statt dem Wert von AccountEquity() . Also so:

EquityAtRisk = AccountEquity();
Comment(EquityAtRisk);


Was mache ich falsch bzw wo ist mein Denkfehler?

next user 08.03.18 14:21

Zitat:

Zitat von Angel (Beitrag 40491)
Was mache ich falsch bzw wo ist mein Denkfehler?

Würde mich auch interessieren.
Ein schlichtes
Code:

double EquityAtRisk = AccountEquity();
Comment(EquityAtRisk);

führt bei mir zu korrektem Ergebniss...

Angel 08.03.18 14:32

So sollte es ja auch sein... Es ist zu Haare raufen...!!!

Leopold 09.03.18 11:31

Du wirst es wahrscheinlich schon überprüft haben, aber wie siehts mit der Serververbindung aus?

---Leopold---

Angel 09.03.18 11:42

Mit jeglicher Verbindung ist alles ok.
Hab den Fehler gefunden. Ich hatte irgendwo im Programmzweig früher oder später ... Ach was weiß ich, warum mir der Fehler nicht beim kompilieren angezeigt wurde... aber in einem neuen EA, den ich mit der selben Anweisung schrieb, klappte es. Es ist oft zum Verzweifeln.
Aber ok.
So, jetzt brauche ich nur noch ne profitable Strategie :-)

traderdoc 09.03.18 17:26

Nun wollen wir aber auch wissen, woran der Fehler lag.

traderdoc

Angel 09.03.18 17:48

Tja, also das wüsste ich auch gerne.. :-(
ALso nun sieht alles so aus: (Sorry, ich weiß nicht, wie man Code korrekt einfügt)

void MM()
{
{
EquityAtRisk = AccountEquity()*DealEinsatzInPrzntEquity/100;
if (LongEntry==true)
{
S_L=Bid-(UseSL*_Point); //UseSL = SL in Pips
UseLots=EquityAtRisk/(Ask-S_L)/10000;
Lots=NormalizeDouble(UseLots,2);
}
if (ShortEntry==true)
{
S_L=Ask+(UseSL*_Point);
UseLots=EquityAtRisk/(S_L-Bid)/10000;
Lots=NormalizeDouble(UseLots,2);
}

}
}


Also ich vermute mal, dass ich in der Vorversion irgendeine Zeile vor eine andere gerutscht ist und ich irgendwie die EquityAtRisk durch eine Null teilte, indem der SL nicht zugewiesen war oder sonstwas.. Also ich weiß es nicht..! Als ich einen neuen EA schrieb, nur mit dieser nackten Routine und es mir über Comment ausgeben ließ, klappte es... und dann stieg der Blutdruck und ich wusste, dass im Programm irgendwas nicht stimmen konnte... ich kommentierte mit "//" alles unnötige" und grenzte den Fehler ganz oben noch vor der Initialisierung ein... da war irgendwas mit einer Variablen.. Aber legt mich nicht fest, es war heute Nacht um 01:00 Uhr,als es endlich klappte... :eek:

next user 10.03.18 05:21

Zitat:

Zitat von Angel (Beitrag 40501)
(Sorry, ich weiß nicht, wie man Code korrekt einfügt)

http://fs1.directupload.net/images/180310/tzt3hs9f.jpg

=== === === === === === === === === === === ===

Nur mal so nebenbei:
  • Das zweite Klammerpaar ist sinnlos.
  • Um es noch besser lesen zu können: Hat's für ein "o" & "e" nicht mehr gereicht? (DealEinsatzInPrzntEquity) :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum