![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Seit wann ist ein Punkt ein Doppeltyp?
Das ist es, was ich sage, string+int ist ein Fehler
Aber wenn Sie es so machen, wie ich es oben geschrieben habe, wird es keinen Fehler geben.
Das ist es, was ich meine: string+int ist ein Fehler.
Aber wenn Sie es so machen, wie ich es oben geschrieben habe, wird es keinen Fehler geben.
IntegerToString? Nö, habe ich nicht gehört ;)
IntegerToString? Nö, habe ich nicht gehört ;)
Hallo zusammen
Ich bin neu im Programmieren, aber ich versuche zu lernen)
Ich habe ein kleines Problem mit der Schließung der Bestellung nach dem Indikator Lesungen
Ich sollte gleich über die Eröffnungs- und Schließungsbedingungen informieren: Ich eröffne eine Position entsprechend den Indikatorwerten und schließe sie entsprechend den Indikatorwerten, aber in der entgegengesetzten Richtung, ohne Stopps und Gewinn.
if(r > 50 && p > m) //Bedingungen für die Eröffnung eines Kaufauftrags
{
ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,",111,0,Green); //Kaufauftrag eröffnen
}
Schreibe ich die Bedingung für den Auftragsabschluss richtig?
if(r < 50 && p < m) --- dies ist eine Verkaufsbedingung und eine Schlussbedingung
{
OrderClose(ticketB,0.1,Bid,5,Red);
}
und druckt die mögliche Verwendung der nicht initialisierten Variablen 'ticketB' und den Rückgabewert von 'OrderClose' sollte geprüft werden
Könnt ihr mir sagen, wo ich es falsch geschrieben habe?
Hallo zusammen
Ich bin neu im Programmieren, aber ich versuche zu lernen)
Ich habe ein kleines Problem mit der Schließung der Bestellung nach dem Indikator Lesungen
Ich kann die Bedingungen für das Öffnen und Schließen einer Position anhand der Indikatorwerte sofort erkennen und den Auftrag in der entgegengesetzten Richtung ohne Stopps und Gewinn schließen.
if(r > 50 && p > m) //Bedingungen für die Eröffnung eines Kaufauftrags
{
ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,",111,0,Green); //Kaufauftrag eröffnen
}
Schreibe ich die Bedingung für den Auftragsabschluss richtig?
if(r < 50 && p < m) --- dies ist eine Verkaufsbedingung und eine Schlussbedingung
{
OrderClose(ticketB,0.1,Bid,5,Red);
}
und druckt die mögliche Verwendung der nicht initialisierten Variablen 'ticketB' und den Rückgabewert von 'OrderClose' sollte geprüft werden
Könntet ihr mir sagen, wo ich es falsch geschrieben habe?
Die Variable ticketB ist nicht initialisiert, d. h., ihr Typ ist nicht bekannt. In diesem Fall ist es Int
Der zweite Fehler besteht darin, dass wir das Ergebnis des Abschlusses der Bestellung auf Fehler überprüfen müssen. Suche nach "Fehlerbehandlungsfunktion" im Forum
die Variable ticketB ist nicht initialisiert, d. h. der Typ ist nicht bekannt. In diesem Fall ist es Int.
Der zweite Fehler bezieht sich auf die Überprüfung des Ergebnisses des Auftragsabschlusses auf Fehler. Suche nach "Fehlerbehandlungsfunktion" im Forum
Ich kann die Logik nicht ganz verstehen oder bin sprachlos), aber wie mache ich das? Zuerst habe ich versucht, es mit OrderSelect zu machen, aber es war falsch)
Ich brauche einige Informationen dazu.
ist es GetLastError? ich kann die Logik nicht verstehen oder ich bin ein bisschen dumm), aber wie kann man es einstellen? zuerst habe ich versucht, alles mit OrderSelect zu machen, aber es ist nicht das gleiche)
Ich brauche einige Informationen dazu.
Ja.
Schauen Sie sich die Codebasis an - es gibt viele Beispiele für die Umsetzung.
Wo ist die Logik? Sie legen die maximal zulässige Menge für den ersten Auftrag fest und erhöhen sie dann für jeden weiteren Auftrag. Halten Sie das nicht für, gelinde gesagt, nicht sehr vernünftig?
Außerdem verringern Sie die Menge des ersten Auftrags in der Schleife mit einer völlig unverständlichen Methode, während die Mengen der anderen Aufträge, die zuvor "berechnet" wurden, unverändert bleiben, und diese Werte überschreiten in keiner Weise die Grenzen dieser Funktion. Was tun sie dann?
Ganz zu schweigen davon, dass die Inkrementschleife keine reelle Zahl sein kann, sondern ein Zähler, eine ganze Zahl, sein muss. Aber Sie setzen den Wert des Loses als Zähler und subtrahieren bei jeder Iteration einen Wert davon. Dies ist ein großer Fehler, ein sehr schwerer Fehler.
Klären Sie die Logik zunächst in Ihrem Kopf und versuchen Sie dann, sie in Ihrem Code umzusetzen.
Was halten Sie davon?
Ich werde dasselbe sagen. Du bist nicht gut in Logik. Was ist das Problem bei der sofortigen Berechnung der anfänglichen Menge, basierend auf den verfügbaren Mitteln und dem Wert des Risikos (ich glaube, es wurde über 3% geschrieben)? Warum müssen Sie alles an einem Ort erledigen?
Man nehme den Wert der freien Marge, multipliziere mit dem Risiko, teile durch 100 und den Wert der Marge für 1 Lot - so lautet die einfachste Formel zur Berechnung des Lots mit einem bestimmten Prozentsatz der freien Marge. Außerdem müssen Sie den Schritt des Loswechsels berücksichtigen und verhindern, dass die von den Maklerunternehmen zugelassene minimale/maximale Losgröße überschritten wird: