Ausführen von Buy und Sell Order nacheinander
Hallo liebe Traderfreunde,
ich bin neu in der Welt des MQL 4 Programmierens. Ich möchte ein Programm schreiben, dass mir einfach nacheinander Buy und Sell Order ausführt. Wenn eine Buy Order ausgeführt ist dann möchte ich danach eine Sell Order ausführen. Leider führt der Code nur die Buy Orders in der richtigen Reihenfolge aus, sobald ich den OP_BUY Befehl durch OP_SELL ersetze funkt garnichts mehr :mad: Was kann ich machen ? extern int TP = 20; extern int SL = 10; void OnTick() { if(OpenPosCount(OP_BUY)==0){ OrderSend (Symbol(), OP_BUY,0.0, Price, 3, Price-SL*10*Point,Price+TP*10*Point, "MarketOrder", 123456, 0, Blue); } if(OpenPosCount(OP_BUY)==1){ OrderSend (Symbol(), OP_BUY,0.00, Price, 3, Price-SL*10*Point,Price1+TP*10*Point, "MarketOrder", 123456, 0, Blue); } if(OpenPosCount(OP_BUY)==2){ OrderSend (Symbol(), OP_BUY,0.00, Price, 3, Price-SL*10*Point,Price+TP*10*Point, "MarketOrder", 123456, 0, Blue); } } int OpenPosCount(int Orderart) { int OffenePositionen=0; for (int x=0;x<=OrdersTotal()-1;x++) { if (OrderSelect(x,SELECT_BY_POS)==true) { if(OrderSymbol()==Symbol()&&OrderType()==Orderart) OffenePositionen++;}} return(OffenePositionen); } Nette Grüße dd |
Beides öffnen, wenn gar nix offen ist. z.B.
Code:
for(i=OrdersTotal()-1;i>=0;i--) { Code:
if( ... Buy_Mark_inv==false && Sel_Mark_inv==false ) { |
D
Ich verstehe gerad garnchts...
Ich möchte bei einem bestimmten Preis eine Buy Order öffnen, nur wenn diese geöffnet ist, möchte ich bei einem bestimmten Preis eine Sell Order öffnen... nicht beide gleichzeitig sondern nacheinander :) gruß |
Ach so. Dann probier Stop- oder Limit.
https://docs.mql4.com/trading/ordersend https://docs.mql4.com/constants/trad...rderproperties |
Zitat:
Und wenn direkt nach der 1. Buy Order eine 1. Sell Order rausgehen soll, mußt Du sehen, ob Dein OpenPosCount(OP_BUY)==1 ist und dann den 1. Verkauf senden. AVT |
Super Danke...
Jetzt führt er mir die erste Sell Position nach der ersten Buy Position aus, leider dann aber die Sell Position mehrfach gleichzeitig... also nicht nur eine Sell Position if(OpenPosCount(OP_BUY)==0){ OrderSend (Symbol(), OP_BUY,0.10, Price, 3, Price-SL*10*Point,Price+TP*10*Point, "MarketOrder", 123456, 0, Blue); } if(OpenPosCount(OP_BUY)==1){ OrderSend (Symbol(), OP_SELL,0.1, Price1, 3, Price1+SL*10*Point,Price1-TP*10*Point, "MarketOrder", 123456, 0, Red); } if(OpenPosCount(OP_SELL)==1){ OrderSend (Symbol(), OP_BUY,0.1, Price, 3, Price-SL*10*Point,Price+TP*10*Point, "MarketOrder", 123456, 0, Blue); |
Was soll das Ganze überhaupt werden? :confused: :rolleyes: Willst Du ständig Orders offen haben? Dann öffne mehrere Stop-Orders, jeweils mit eigener MN, eigenem Price, usw.
|
Gut, dann will ich mal zwischengrätschen:
Als Erstes solltest Du Dir bitte angewöhnen, den Code über den Button # zu schreiben, damit man den besser lesen kann. Wenn Du wirklich nur nach dem Öffnen der ersten! BuyOrder eine erste SellOrder öffnen willst, dann geht da ganz einfach so: Code:
if (!OrderCheck()) { |
ich glaube ich brauche 2 Zählschleifen, eine für die Buy und eine für die Sell Orders...
|
Das hängt jetzt ganz davon ab, was Du eigentlich wirklich wolltest.
Ich habe die Erfahrung über meine jahrelange Auftragsprogrammierung gesammelt, dass sich sehr häufig die Kunden nicht exakt genug ausgedrückt haben und damit etwas anderes programmiert wurde als angedacht. Daher nochmals mein Appell an alle Fragenden: Überlegt Euch im Vorfeld ganz, ganz genau, was Ihr tatsächlich erreichen wollt. traderdoc |
d
zuerst möchte ich eine buy order ausführen , erst wenn die buy order ausgeführt ist dann eine Sell order, erst wenn die Sell order ausgefürt ist , dann erst wieder eine zweite buy order , wenn die zweite buy order ausgeführt ist , dann erst eine zweite sell order und so weiter...
|
Aha!
Das ergibt aber eigentlich nur Sinn, wenn der Openkus der einzelnen Buy- oder Sell-Orders unterschiedlich ist. Das wäre wiederum nur über PendingOrders zu erreichen, denn eine MarketOrder wird, wie aus meinem Code-Beispiel ersichtlich, immer mit dem Ask bzw. Bid geöffnet. D.h. wiederum, würden alle Orders MarketOrders sein, dann hätten alle Buy-Orders denselben OpenPreis und alle Sell-Orders denselben OpenPrice. So, wie soll es denn nun werden? traderdoc |
Zitat:
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:05 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