Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Pending Order zwischenlagern und bei Marktstart platzieren (http://www.expert-advisor.com/forum/showthread.php?t=4584)

RonaldM 17.11.15 00:22

Pending Order zwischenlagern und bei Marktstart platzieren
 
Hallo,
ich kann nur abends traden und analysieren dann den Tag und würde gerne meine Orders erzeugen setzen, was aber nicht geht weil der Markt dann meist bereits geschlossen hat.

Ich suche daher einen EA, der mit die Orders "zwsichenlagert" und sobald der Markt eröffnet, als Pending Order erzeugt.
Gibt es soetwas bereits oder habt ihr eine Idee wie so eine Funktion heissen könnte?

Grüße aus München

Ronald

dieter.backin 17.11.15 07:10

Hallo Ronald,

Du kannst zeitbasiert über einen EA die Pending Order einstellen. Z.B. bei Eröffnung des Marktes wird sekundengenau die Pending Order eingestellt.

Viele Grüße,
Dieter

Gesendet von meinem SM-G900F mit Tapatalk

RonaldM 17.11.15 14:00

Hallo Dieter,
vielen Dank für die Info, hast du einen Vorschlag für einen EA, mit dem sich dies umsetzen lässt?

Grüße

Ronald

janosch72 17.11.15 14:13

Hallo Ronald,

ich habe es folgendermaßen gelöst (vielleicht gibt es bessere Lösungen):

Code:

//---- input parameters
extern int      OpenHour      = 9;        // Time to open, hours
extern int      OpenMinute    = 0;        // Time to open, minutes
extern bool    UseCurrSymbol = False;    // Use one symbol only
extern bool    UseOneAccount = False;    // Use one account only
extern int      NumberAccount = xxxxxx;  // Account number
extern int      Slippage      = 4;        // Slippage
extern double  ShortEntry    = 0;
extern double  LongEntry    = 0;
extern int      Lots          = 1;
extern double  StopLoss      = 100;
extern double  TakeProfit    = 100;
extern datetime Exp          = D'18.11.2015 18:29:00';
extern int      status = -1;
extern color    clBuy    = Blue;            // Color of closing buy
extern color    clSell  = Red;              // Color of closing sell

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start() {

  if (UseOneAccount && AccountNumber()!=NumberAccount) {
    Comment("Working on the account: "+AccountNumber()+"is PROHIBITED!");
    return;
  } else Comment("");

  if (status==-1 && Hour()==OpenHour && Minute()==OpenMinute) {
    //double AskPrice = Ask;
    //double BidPrice = Bid;
   
    if (Ask < LongEntry) {
      if(LongEntry  > 0) OrderSend(Symbol(),OP_BUYSTOP,Lots,LongEntrySlippage,LongEntry-StopLoss,LongEntry+TakeProfit,"Buy",0,Exp,clBuy);
    } else {
      if(LongEntry  > 0) OrderSend(Symbol(),OP_BUYLIMIT,Lots,LongEntry,Slippage,LongEntry-StopLoss,LongEntry+TakeProfit,"Buy",0,Exp,clBuy);
    };
  }
  //return(0);

Grüße, Dieter

RonaldM 17.11.15 16:13

danke, wir muss ich das einbinden, als expert, oder als skript, ich hab leider keine Ahnung von meta trader 4 programmierung

janosch72 17.11.15 16:18

Du musst es als Export einbinden. Einfach eine mq4-Datei erstellen, den Code reinkopieren und in das Verzeichnis /MQL4/Experts abspeichern. Den MT4 musst du dann neu starten. Den EA kannst du dann in ein Chart ziehen und die Einstellungen vornehmen.

RonaldM 17.11.15 22:13

ok, ich glaub das ding läuft nun.
Danke dafür.

Wie kann ich den die geplanten Order einsehen? Ich sehe zwar im Journal die Erstellung, sehe aber keine Übersicht, welche Order nun geplant sind, um z.b. eine geplante Order wieder zu löschen.

ne Idee?

RonaldM 17.11.15 23:57

ich habe testweise bei geöffneten Markt eine Order in Auftrag geben mit Markt öffnet in 1ner Minute, leider wurde die Peding Order nicht platziert.

Im Editor bekomme ich beim Kompilieren die Warnung "return value of 'OrderSend' should be checked".

dieter.backin 18.11.15 06:38

Du musst bei OpenHour und Open Minute die entsprechende Uhrzeit eintragen, zu der die Pending Orders in das System gestellt werden. Wenn die Uhrzeit erreicht wurde, erscheinen diese im Register Handel.

Gesendet von meinem SM-G900F mit Tapatalk

RonaldM 18.11.15 11:37

Hallo Dieter,
ich habe folgenden Eintrag im Expert Log:

2015.11.18 11:31:09.941 planing_pending_order EURUSD,M30 inputs: OpenHour=11; OpenMinute=32; UseCurrSymbol=true; UseOneAccount=true; NumberAccount=1234076297; Slippage=4; ShortEntry=1.06415; LongEntry=0.0; Lots=0.5; StopLoss=1.07; TakeProfit=1.05; Exp=1447871340; status=1; clBuy=16711680; clSell=255;

leider wurde um 11:32 keine pending oder eröffnet, egal ob beim status -1 oder 1 steht.


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:39 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