Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36912
Benutzer: 6.080
Aktive Benutzer: 494
Links: 80
Wir begrüßen unseren neuesten Benutzer: Eren
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einer Stunde
- Eren
vor 8 Stunden
- Rene1504
vor 9 Stunden
- ibdafx
vor einem Tag
- Batangenyo
vor 2 Tagen
- Spitzmaus

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 76
Gesamt: 77
Team: 0
Team:  
Benutzer:  traderdoc
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 18.11.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RonaldM Beitrag anzeigen
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.
Mal abgesehen davon, dass der Codeschnipsel u.a. Compilierfehler enthält, denn bei:

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.
  #12 (permalink)  
Alt 18.11.15
Neues Mitglied
 
Registriert seit: Nov 2015
Beiträge: 9
RonaldM befindet sich auf einem aufstrebenden Ast
Standard

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.
Thema geschlossen

Lesezeichen

Stichworte
mql4, pending, pending order, programmierung, programmierung metatrader, uhrzeit, uhrzeit order, zeit, zeit order


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------