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.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43269
Benutzer: 7.222
Aktive Benutzer: 72
Links: 84
Wir begrüßen unseren neuesten Benutzer: Mane
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 311
Gesamt: 311
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 18.11.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
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 +2. Es ist jetzt 04:27 Uhr.





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