[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 768
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
Ich brauche nur die Funktion aufzurufen, das ist alles, was ich brauche, eine Zeile "Wenn es mehr Bestellungen als eine gibt .... und das ist alles" - und Sie bieten mir eine ganze Funktion an
So speichere ich meine Auftragsdaten
Es ist ganz einfach: Legen Sie es in die Bibliothek.
Gibt man die Art des zu zählenden Auftrags und seinen Master ein, so erhält man die Anzahl der offenen oder gesetzten Aufträge.
Sie können es folgendermaßen verwenden
if ((FastEma - SmallEma) > Compartor*Point && ChPos(OP_BUY,1111) < OpenPosition)
Es ist nicht kompliziert, es in die Bibliothek zu stellen.
Die Eingabe ist die Art des zu zählenden Auftrages und sein Master, sie liefert die Anzahl der offenen oder gesetzten Aufträge.
Dies kann folgendermaßen genutzt werden
if ((FastEma - SmallEma) > Compartor*Point && ChPos(OP_BUY,1111) < OpenPosition)
Ich habe eine solche Funktion, aber ich brauche sie nicht, ich brauche nur
nur eine Zeile "wenn es mehr Aufträge gibt als einen .... dann" und das war's
Meine Daten für dieselbe Funktion, die Sie gezeigt haben, sind hier gespeichert
und so sieht es aus
Ich glaube, ich habe es.
static int aaa = OrdersHistoryTotal()+ OrdersTotal()
if (Ihre Bedingung && aaa < OrdersHistoryTotal()+ OrdersTotal() )
{
Betreiber
aaa=AuftragshistorieSumme()+Auftragssumme()
}
Wenn ja, ist es immer noch besser, sie in eine Funktion für Magier zu integrieren. Können Sie uns sagen, woran Sie gerade arbeiten? Die Logik ist etwas seltsam, wenn ich es richtig verstanden habe. Wenn ein weiterer Auftrag eröffnet wird, ist es dann nicht einfacher, Aufträge zu eröffnen, die nicht größer sind als die OpenPosition?
Ihre Funktion gibt die Gesamtzahl der offenen und schwebenden Aufträge zurück. Wie viele Aufträge OP_BUY, OP_BUYLIMIT OP_SELLLIMIT OP_SELL usw. sind, wird nicht angezeigt.
Ich habe es herausgefunden, jetzt das Problem mit der Funktion if ist, dass ich nicht herausfinden kann, was das Problem ist.
es geht darum, dass der erste Wert ausgeführt wird.
Diese funktioniert nicht , wenn (HaveBuyLimitOrderEnd== true)
{ModifyBuyStopOrder(PRAskS); // Auswählen
} }
mit anderen Worten, wenn es einen Auftrag HaveBuyLimitOrderEnd gibt, ändern Sie ihn mit einer Preisänderung PRAskS
Ich kann nicht herausfinden, was falsch ist. Der Wert von HaveBuyLimitOrderEnd wird aus der void Myorders() im obigen Code übernommen
der Wert if(bt==1&&bl==7) ist main, d. h. wenn er wahr ist, sind alle folgenden Angaben zu machen
höchstwahrscheinlich haveBuyLimitOrderEnd== true weil ich OrderLots()==3*Lot eingestellt habe alles funktioniert nur es ändert Aufträge mit 0.3 Lot
Beachten Sie, was rot hervorgehoben ist. Die Art der Handelsaufträge ist die gleiche und die Variablen in der Pipe sind unterschiedlich gesetzt, so sollte es sein.
Ja, es sollte sein, denn es gibt verschiedene Funktionen zu öffnen und ich nicht eine Anforderung für OrderType () und forderte die Flagge, ob es offen ist, aber das Problem ist wahrscheinlich nicht in dieser Funktion, weil die anderen Anforderungen auch nicht funktionieren dies warf ich zuerst, und auf der gleichen Funktion öffnen NORMAL
DAS PROBLEM LIEGT ALSO BEI DER ANFRAGE DES BETREIBERS
Das Problem scheint woanders zu liegen. Aber Sie sollten sich den Code ansehen.
Das Problem scheint woanders zu liegen. Aber ich glaube, ich muss den Code sehen.
Es ist definitiv nicht anderswo, alles andere funktioniert, das Problem ist, dass die Anforderung (HaveBuyLimitOrderEnd== true) falsch ist, so dass ich mich frage, wie sonst zu sagen, es zu ändern und zu löschen,
oder die Abfrage selbst ist falsch
if(bs==1&&bl==3)
{OpenBuyLimitOrderEnd(Lot*15,PRAskL);
if (HaveBuyLimitOrderEnd== true)
{ModifyBuyStopOrder(PRAskS);
} }
Ja, es sollte sein, denn es gibt verschiedene Funktionen zu öffnen und ich nicht eine Anforderung für OrderType () und forderte die Flagge, ob es offen ist, aber das Problem ist wahrscheinlich nicht in dieser Funktion, weil die anderen Anforderungen auch nicht funktionieren dies warf ich zuerst, und auf der gleichen Funktion öffnen NORMAL
DAS PROBLEM LIEGT ALSO BEI DER ABFRAGE IM OPERATOR
Ich frage mich, ob in rot markierten Funktionen HaveBuyLimitOrderEnd in der Pipe gesetzt ist. Wenn nicht, müssen Sie Myorders() vor if aufrufen. Andernfalls haben Sie keine Ahnung, was sich dort befindet. Und nur für den Fall, dass die Flaggen (Variablen)
HaveBuyOrder = false;
HaveSellOrder = false;
HaveBuyStopOrder = false;
HaveSellStopOrder = false;
HaveBuyLimitOrder = false;
HaveSellLimitOrder = false;
HaveBuyLimitOrderEnd = false;
HaveSellLimitOrderEnd = false;
muss auf globaler Ebene definiert werden.
Ich frage mich, ob das HaveBuyLimitOrderEnd-Flag in der Pipe rot gesetzt ist. Wenn nicht, müssen Sie Myorders() vor if aufrufen. Sonst weiß man nicht, was da ist. Und für den Fall der Fälle: Flags (Variablen)
HaveBuyOrder = false;
HaveSellOrder = false;
HaveBuyStopOrder = false;
HaveSellStopOrder = false;
HaveBuyLimitOrder = false;
HaveSellLimitOrder = false;
HaveBuyLimitOrderEnd = false;
HaveSellLimitOrderEnd = false;
muss global definiert werden.
sie befindet sich auf einer glabalen Ebene
bool HaveBuyOrder; // Flagge, ob Kaufaufträge auf dem offenen Markt vorhanden sind
bool HaveSellOrder; // Flagge für offene Marktaufträge zum Verkauf
bool HaveBuyStopOrder; // Flagge für offene, ausstehende Kaufaufträge
bool HaveSellStopOrder; // Flagge für offene schwebende Verkaufsaufträge
bool HaveBuyLimitOrder; // Flagge für offene, ausstehende Kaufaufträge
bool HaveSellLimitOrder; // Flagge für offene, ausstehende Verkaufsaufträge
bool HaveBuyLimitOrderEnd; // Flagge für das Vorhandensein offener, schwebender Kaufaufträge
bool HaveSellLimitOrderEnd; // Kennzeichnung offener Verkaufsaufträge
es ist in der Funktion zur Auftragseröffnung.
ticket = OrderSend(Curr_symb,OP_BUYSTOP, Lot, PRAskS, Slippage, SL, TP, 0, Magic, 0, CLR_NONE);
wenn (Ticket > 0) {
HaveBuyStopOrder = true;
if (OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES)) Print("Funktion zum Platzieren einer BuyStop-Order: ", OrderOpenPrice())
}
else Print("Error # ", GetLastError(), " function for placing BuyStop order",MarketInfo(Curr_symb,MODE_ASK));
zurück(ticket);
}
DAMIT ALLES ANDERE FUNKTIONIERT