vielen Dank für deine echte Hilfe. Aber ich bin mir immer noch nicht sicher, ob es funktioniert oder nicht (ich denke, meine Funktionen sind ein wenig schwierig). mal sehen
erste Funktion :
Funktion zum Ermitteln und Behalten des letzter auftrag offener preis nur für den kauf
double LastOpenForBuy(){ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open. int magi.number= 0 ; double orderforbuy;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderType ()==OP_BUY )
{ orderforbuy = OrderOpenprice ();
lastTicket = OrderTicket (); }
return (orderforbuy);}
if(OrderSelect(LastOpenForBuy(), SELECT_BY_TICKET)==true)
{ order for buy= OrderOpenPrice();}
// then something like//
// if ( (( order for buy+ order for sell)/2))<MarketInfo("EURUSD",MODE_BID) )
//close the position
Was ich brauche, ist: 1- Funktion zum Ermitteln und Behalten des letzter offener Auftragspreis nur für den Kauf
2- Funktion, um den letzten offenen Preis für den Verkauf zu erhalten und zu behalten
3- Funktion, um den Schlusskurs der letzten Order zu ermitteln und zu speichern , egal ob Kauf oder Verkauf
4- Funktion zur Ermittlung und Beibehaltung des vorherigen Schlusskurses vor dem letzten geschlossenen Auftrag, egal ob Kauf oder Verkauf.
LastOpenPrice(OP_BUY) für den offenen Preis des letzten Kaufs.
LastOpenPrice(OP_SELL) für den offenen Preis des letzten Verkaufs.
double LastOpenPrice(int OrderType)
{
double OpenPrice;
for ( int pos = OrdersTotal()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber() == magic.number // my magic number // <------- what Magic Number do you use when you place a trade ? it must match ! !
&& OrderSymbol() == Symbol() // and my pair. // magic.number should be a Globally defined variable that has your Magic Numer
&& OrderType() == OrderType )
{
OpenPrice = OrderOpenprice();
break;
}
return (OpenPrice); // <------- this returns the Order Open Price NOT the ticket
}
double LastClosePrice()
{
double ClosePrice;
for ( int pos = OrdersHistoryTotal()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY) // Only my CLOSED orders
&& OrderMagicNumber() == magic.number // my magic number // <------- what Magic Number do you use when you place a trade ? it must match ! !
&& OrderSymbol() == Symbol() // and my pair. // magic.number should be a Globally defined variable that has your Magic Numer
&& OrderType() < OP_BUYLIMIT )
{
ClosePrice = OrderCloseprice();
break;
}
return (ClosePrice); // <------- this returns the Order Open Price NOT the ticket
}
ich denke, dass du etwas verpasst, wenn er mehr als 1 Auftrag für dasselbe Paar (und dieselbe Magie) hat, daher denke ich, dass es so besser ist
double LastOpenPrice(intOrderType)
{
double OpenPrice;
datetime lastOpen; // First line addedfor ( int pos = OrdersTotal()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber() == magic.number // my magic number // <------- what Magic Number do you use when you place a trade ? it must match ! !
&& OrderSymbol() == Symbol() // and my pair. // magic.number should be a Globally defined variable that has your Magic Numer
&& OrderType() == OrderType
&& OrderOpenTime() > lastOpen) // Second line added
{
OpenPrice = OrderOpenprice();
break;
}
return (OpenPrice); // <------- this returns the Order Open Price NOT the ticket
}
Wenn Sie abwärts zählen, wird der erste Auftrag, der mit der magischen Zahl und dem Symbol übereinstimmt, der letzte sein, der für den betreffenden EA und das Symbol erteilt wird, oder?
ich denke, dass du etwas übersiehst, wenn er mehr als 1 Auftrag für dasselbe Paar (und dieselbe Magie) hat, daher denke ich, dass es so besser ist
Ihre Meinung
Leute,
Vielen Dank,
Lass mich dir sagen, warum ich LastOpenPrice(OP_BUY) und LastOpenPrice(OP_SELL) verwenden möchte, weil ich sie in einigen Bedingungen verwenden möchte, wie
if ( LastOpenPrice(OP_BUY) -LastOpenPrice(OP_SELL)) > 0.0090 // aus diesem Grund muss ich den letzten Auftrag für den Kauf und den letzten Auftrag für den Verkauf offen halten, also brauche ich einen separaten letzten Auftrag für den Kauf und den anderen für den Verkauf.
-----
für double LastClosePrice() // kann ich if ( OrderType() == OP_BUY || OP_SELL) statt *** OrderType() < OP_BUYLIMIT*** verwenden, um den letzten Abschluss zu erhalten, egal ob Kauf oder Verkauf.
----
für Funktion Nummer 4:
4- Funktion, um den vorherigen Schlusskurs vor der letzten geschlossenen Order, egal ob Kauf oder Verkauf, zu erhalten und zu behalten. // Ich möchte die geschlossene Order vor der letzten geschlossenen Order , ob Kauf oder Verkauf, erhalten .
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Warum geben Sie dann die Ticketnummer zurück? Lesen Sie den Code, den Sie kopieren und einfügen, verstehen Sie ihn, lernen Sie....
Ich habe ihn für Folgendes verwendet
if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_POS)==true)
{ Order für Kauf= OrderOpenPrice();}
dann wenn ( (( Kaufauftrag+ Verkaufsauftrag)/2))<MarketInfo("EURUSD",MODE_BID) )
schließe die Position
if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_POS)==true)
eine kleine Änderung mit Ihrer Erlaubnis
Lieber qjol
vielen Dank für deine echte Hilfe. Aber ich bin mir immer noch nicht sicher, ob es funktioniert oder nicht (ich denke, meine Funktionen sind ein wenig schwierig). mal sehen
erste Funktion :
Funktion zum Ermitteln und Behalten des letzter auftrag offener preis nur für den kauf
2- Funktion, um den letzten offenen Preis für den Verkauf zu erhalten und zu behalten3- Funktion, um den Schlusskurs der letzten Order zu ermitteln und zu speichern , egal ob Kauf oder Verkauf4- Funktion zur Ermittlung und Beibehaltung des vorherigen Schlusskurses vor dem letzten geschlossenen Auftrag, egal ob Kauf oder Verkauf.OK, versuchen Sie das...
Es macht 1 & 2 ...
LastOpenPrice(OP_BUY) für den offenen Preis des letzten Kaufs.
LastOpenPrice(OP_SELL) für den offenen Preis des letzten Verkaufs.
Und dies . . . .
für 3 . . .
raptor
ich denke, dass du etwas verpasst, wenn er mehr als 1 Auftrag für dasselbe Paar (und dieselbe Magie) hat, daher denke ich, dass es so besser ist
Deine Meinung
raptor
ich denke, dass du etwas übersiehst, wenn er mehr als 1 Auftrag für dasselbe Paar (und dieselbe Magie) hat, daher denke ich, dass es so besser ist
Ihre Meinung
Leute,
Vielen Dank,
Lass mich dir sagen, warum ich LastOpenPrice(OP_BUY) und LastOpenPrice(OP_SELL) verwenden möchte, weil ich sie in einigen Bedingungen verwenden möchte, wie
if ( LastOpenPrice(OP_BUY) -LastOpenPrice(OP_SELL)) > 0.0090 // aus diesem Grund muss ich den letzten Auftrag für den Kauf und den letzten Auftrag für den Verkauf offen halten, also brauche ich einen separaten letzten Auftrag für den Kauf und den anderen für den Verkauf.
-----
für double LastClosePrice() // kann ich if ( OrderType() == OP_BUY || OP_SELL) statt *** OrderType() < OP_BUYLIMIT*** verwenden, um den letzten Abschluss zu erhalten, egal ob Kauf oder Verkauf.
----
für Funktion Nummer 4:
4- Funktion, um den vorherigen Schlusskurs vor der letzten geschlossenen Order, egal ob Kauf oder Verkauf, zu erhalten und zu behalten. // Ich möchte die geschlossene Order vor der letzten geschlossenen Order , ob Kauf oder Verkauf, erhalten .
Danke