|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Zitat:
if (status==-1 && Hour()==OpenHour && Minute()==OpenMinute) { //double AskPrice = Ask; //double BidPrice = Bid; if (Ask < LongEntry) { if(LongEntry > 0) OrderSend(Symbol(),OP_BUYSTOP,Lots,LongEntrySlippa ge,LongEntry-StopLoss,LongEntry+TakeProfit,"Buy",0,Exp,clBuy); } else { if(LongEntry > 0) OrderSend(Symbol(),OP_BUYLIMIT,Lots,LongEntry,Slip page,LongEntry-StopLoss,LongEntry+TakeProfit,"Buy",0,Exp,clBuy); }; würde beim ersten OrderSend ein Parameterfehler auftauchen und nach der if-abschließenden } das ; beanstandet werden. Desweiteren kann es passieren, dass genau zu der Zeit, wo Minute() == OpenMinute sein soll, eben kein Tick kommt, sondern erst wieder eine Minute später. Dann werden auch keine PendingOrders gesetzt. Von der Programmlogik her, würde definitiv aus o.g. Code keine BuyLimitOrder gesetzt werden, denn wenn der Ask < LongEntry sein muß, würde der Preis der PendingOrdersetzung LongEntry über dem aktuellen Kurs liegen, was bei einer BuyLimitOrder nicht geht. Und wenn in den Variablen unter StopLoss und TakeProfit Zahlen wie z.B. angegeben 100 benutzt werden und in OrderSend() dann für den tatsächlichen Stop LongEntry-StopLoss steht, wird auch keine PendingOrder gesetzt, weil es keinen Kurs gibt, der z.B. über 1.07 - 100 abgebildet werden könnte. Hier muß mindestens die 100 mit der systemeigenen Variablen Point multipliziert werden, mal ganz abgesehen von der Berücksichtigung der 4- bzw. 5-DigitBroker-Gegebenheiten. Also, da muß noch ne Menge nachgearbeitet werden. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Hallo, danke für die Rückmeldung.
Die kleinen Fehler im Code habe ich bereits entdeckt und behoben, der Code sieht momentan so aus: //+------------------------------------------------------------------+ //| plan_pending_order.mq4 | //| Copyright 2015, MetaQuotes Software Corp. | //| MQL4: automated forex trading, strategy tester and custom indicators with MetaTrader | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, MetaQuotes Software Corp." #property link "http://www.mql4.com" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //---- 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 = 1234076297; // Account number extern int Slippage = 4; // Slippage extern double ShortEntry = 0; extern double LongEntry = 0; extern double Lots = 0; 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,LongEntry,Slipp age,LongEntry-StopLoss,LongEntry+TakeProfit,"Buy",0,Exp,clBuy); } else { if(LongEntry > 0) OrderSend(Symbol(),OP_BUYLIMIT,Lots,LongEntry,Slip page,LongEntry-StopLoss,LongEntry+TakeProfit,"Buy",0,Exp,clBuy); } } } //return(0); StopLoss und TakeProfit lassen sich ja im MT4 setzen, wenn man den Expert startet. |
Lesezeichen |
Stichworte |
mql4, pending, pending order, programmierung, programmierung metatrader, uhrzeit, uhrzeit order, zeit, zeit order |
|
|