Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Christoff
Auf diese Weise sollte die Variable Decimals OK sein.
Prüfen Sie auf jeden Fall, welchen Fehlercode Sie im Falle eines erfolglosen (teilweisen) Orderschlusses erhaltenMladen,
vielen Dank für den Hinweis.
Das Problem ist, dass es keine Fehlermeldung gibt. Wenn es nicht funktioniert, scheint es, als ob die Funktion PartialTP gar nicht aufgerufen wurde. In anderen Fällen - normalerweise bei den ersten Aufträgen nach dem Neustart des EA - funktioniert es gut.
Ich dachte, dass vielleicht eine der Variablen nicht auf den Wert Null zurückgesetzt wird, oder etwas in der Art, aber ich kann den Fehler immer noch nicht finden.
Mladen,
Vielen Dank für den Hinweis.
Das Problem ist, dass es keine Fehlermeldung gibt. Wenn es nicht funktioniert, scheint es, als ob die Funktion PartialTP gar nicht aufgerufen wurde. Zu anderen Zeiten - normalerweise bei den ersten Aufträgen nach dem Neustart des EA - funktioniert es gut.
Ich dachte, dass vielleicht eine der Variablen nicht auf den Wert Null zurückgeht, oder so etwas in der Art, aber ich kann den Fehler immer noch nicht finden.chrisstoff
Sorry, aber mit einem partiellen Code kann ich nicht weiterhelfen
Was du beschreibst, bedeutet, dass der Code debuggt werden muss - und das geht nur, indem man ihn unter Verwendung von Kontrollpunkten ausführt.
chrisstoff
Sorry, aber mit einem unvollständigen Code kann ich nicht mehr helfen
Was du beschreibst, bedeutet, dass es notwendig ist, den Code zu debuggen - und das kann nur geschehen, indem man ihn unter Verwendung von Kontrollpunkten ausführtVielen Dank, Mladen.
Es ist beruhigend, dass Sie keine Probleme in dem Code gesehen haben.
Ich denke, dass alle relevanten Teile des Codes gepostet wurden, also muss ich den Fehler woanders finden.
hock87
Bitte lesen Sie den Beitrag über Ihrem Beitrag, um eine Lösung für dieses Problem zu finden
Der vollständige Code dafür ist der folgende:
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0);
stop=(Ask-stopsize*Point);
prof=(Ask+profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
Malden,
Wie k odiere ich, wenn ich Lots in Höhe eines Prozentsatzes meines Kontostands eröffnen möchte ?
Beispiel:
Mein Kontostand beträgt $500,
ich möchte eine Losgröße von 5% eröffnen, dann werden automatisch die $0,25 Lose gezählt und eröffnet, TP=10 SL=20.
Wie kann ich das codieren?
Danke!
Malden,
Wie kodiere ich eine Losgröße, die einem bestimmten Prozentsatz meines Kontostands entspricht?
Beispiel:
Mein Kontostand beträgt $500,
ich möchte eine Losgröße von 5% eröffnen, dann werden automatisch die $0,25 Lose gezählt und eröffnet, TP=10 SL=20.
Wie kann ich das codieren?
Danke.Sie können eine Funktion wie diese für das verwenden:
{
RefreshRates();
double pPoint = MarketInfo(Symbol(),MODE_POINT);
double step = MarketInfo(Symbol(),MODE_LOTSTEP);
double minLot = MarketInfo(Symbol()l,MODE_MINLOT);
double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double lots = minLot;
if (risk>0 && stopLoss>0)
{
lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(s_symbol,MODE_TICKVALUE)/pPoint);
}
}
return(MathMax(MathMin(lots,maxLot),minLot));
}
PS: stopLoss muss bereits in Pips/Points an die Funktion übergeben werden (nicht in Integer-Werten)
Sie können eine Funktion wie diese dafür verwenden:
{
RefreshRates();
double pPoint = MarketInfo(Symbol(),MODE_POINT);
double step = MarketInfo(Symbol(),MODE_LOTSTEP);
double minLot = MarketInfo(Symbol()l,MODE_MINLOT);
double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double lots = minLot;
if (risk>0 && stopLoss>0)
{
lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(s_symbol,MODE_TICKVALUE)/pPoint);
}
}
return(MathMax(MathMin(lots,maxLot),minLot));
}
Danke, Mladen.
Aber ich schaffe es nicht, den Code mit dem Code für die Kaufbestellung zu verbinden.
Es erscheinen viele Fehler und Warnungen.
Wie kann ich ihn zusammensetzen?
Danke!
extern double profsize = 10;
int err;
int ticket;
double stop;
double prof;
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask-stopsize*Point);
prof=(Ask+profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
}Danke, Mladen.
Aber ich schaffe es nicht, den Code für den Kaufauftrag zusammenzusetzen.
Es erscheinen viele Fehler und Warnungen.
Wie kann ich ihn zusammensetzen?
Danke!
extern double profsize = 10;
int err;
int ticket;
double stop;
double prof;
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask-stopsize*Point);
prof=(Ask+profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
}Versuchen Sie es so (ich habe es jetzt getestet und es funktioniert):
extern double profsize = 10;
int err;
int ticket;
double stop;
double prof;
int init() { return(0); }
int deinit() { return(0); }
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask-stopsize*Point*MathPow(10,Digits%2));
prof=(Ask+profsize*Point*MathPow(10,Digits%2));
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
}liebe mladen und mr. tools pls,
ist es möglich, ein ea zu erstellen, das Signale basierend auf bestimmten Bedingungen gibt, wie die Signale von 3 oder 4 Indikatoren, die vordefinierte Bedingungen erfüllen.
z.B.
ich möchte, dass das ea ein Kaufsignal hwen:
ema 8 über ema 21
qqe über 0
nicht lag ma ist grün
und Kerze ist über der ichimoku Wolke
der EA soll keine Trades eröffnen, sondern nur das Signal geben, wenn die angegebenen Bedingungen erfüllt sind
Vielen Dank, Mladen.
Ich habe es versucht.
aber es öffnet immer noch die Lose mit $0.1
Ich möchteLosgrößen zu einem Prozentsatz meines Kontostandes öffnen.
EX:Kontostand haben $500.
Öffnen Sie eine Losgröße mit 5%, dann zählt es automatisch und öffnet die $0.25 Lose, TP=10 SL=20.
LotGrößeSlot1 = Kontostand() * (RisikoSlot1 / 100)
LosGrößeSlot1 = $500*(5%/100)
LosGrößeSlot1 = $ 0,25
Dann werden automatisch 0,25 $ Lots eröffnet und TP=10 SL=20.
Wie kann man das erstellen?
Danke!
Vielen Dank, Mladen.
Ich habe es versucht.
aber es öffnet immer noch die Lots mit $0.1
Ich möchteLosgrößenzueinem Prozentsatz meines Kontostandesöffnen.
EX:Kontostand haben $500.
Öffnen Sie eine Losgröße mit 5%, dann zählt es automatisch und öffnet die $0.25 Lots, TP=10 SL=20.
LotSizeSlot1 = Kontostand() * (RiskSlot1 / 100)
LosGrößeSlot1 = $500*(5%/100)
LosGrößeSlot1 = $ 0,25
Dann werden automatisch $ 0,25 Lots geöffnet und TP=10 SL=20.
Wie kann man das erstellen?
Danke.Wie in dem beigefügten Beispiel