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)
-   -   Bitte Hilfe für absoluten noob (http://www.expert-advisor.com/forum/showthread.php?t=4234)

Chton 30.04.15 14:20

Bitte Hilfe für absoluten noob
 
Hallo,


ich stehe absolut am Anfang mit EA's fange auch gerade an mich einzulesen, möchte meinen Ansatz aber auch gerne hier im Forum schildern um auf Grundlage Euren Feedbacks ganz praktisch anzusetzen.


Meine Marschrichtung ist folgende:

Ein EA soll jeden Tag ein mal laufen und folgendes tun:

1. auf derselben Maschine, wo MT4 läuft prüfen, ob in einem bestimmten Verzeichnis eine bestimmte Datei liegt. (Wenn nein, dann Ende)

2. Wenn ja, dann eine Position öffnen mit definiertem TP und SL (zB. +/- 100 Pips). (Ende)


(Die Positionen sollen so lange laufen, bis TP oder SL erreicht sind.)


Das ist alles ! :-)

Könntet Ihr mich bei diesem Vorhaben mit konstruktiven Vorschlägen / Infos / Gedanken / Codeschnippseln etc. "anschubsen" ?


Dankesehr !!

JoeDormann 30.04.15 18:17

Hallo,
also am besten ist es erstmal selber zu probieren.
D.h. man benutzt den eingebauten Editor und Compiler.
Zunächste schaut man sich die Beispiele an und lernt so programmieren.
Ein bischen hier und da verändern, die Hilfeeinrichtung zu MQ4 lesen und immer wieder ausprobieren....

Was Du beschrieben hast ist easy, bis vielleicht auf die Dateiüberprüfung, aber dann sieht man schonmal das Du Dich bemühst, und dann hilft man Dir sicher gerne weiter.

LG Joe

Chton 18.05.15 14:34

Wie programmiere ich es am einfachsten, dass an jedem Werktag der EA exakt ein mal läuft, zB. um 10:00 Uhr morgens ?

Danke !

pako 18.05.15 15:26

Zitat:

Zitat von Chton (Beitrag 29827)
Wie programmiere ich es am einfachsten, dass an jedem Werktag der EA läuft?

Danke !

Code:

// do not work on holidays.
  if(DayOfWeek()==0 || DayOfWeek()==6) return(0);


traderdoc 18.05.15 21:56

@pako, das ist doch nur ne halbe Sache!

Machen wir es doch vollständig:
Code:

if(DayOfWeek()==0 || DayOfWeek()==6) return(0);
if (Day() != OldDay) {
  Flag = true;
  OldDay = Day();
}
if (Flag && TimeCurrent() >= StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + "10:00")) {
  //einmaliger Durchlauf!!
  Flag = false;
  return(0);
} else return(0);

OldDay und Flag noch an geeigneter Stelle deklarieren und für "10:00" kann auch eine Stringvariable eingesetzt werden, z.B. über die Eigenschaften des EAs deklariert und initialisiert.

traderdoc

Chton 18.05.15 23:04

Danke schon mal, mit dem Input kann ich etwas anfangen !

Melde mich nochmal wenn der nächste Step eine zu hohe Hürde zu sein scheint ...

Chton 20.05.15 14:41

Hallo,

ich wieder:

Wie kann ich am einfachsten von meinem EA eine Position öffnen lassen, vorausgesetzt folgende Paramater sind bekannt / fix:

Beispiele:

Ticker/Symbol = EURUSD
Richtung = LONG
Lotgröße = 0.01
StopLoss = -139 Pips
TakeProfit = +139 Pips


Meine Versuche bisher mit "OrderSend" (OrderSend - MQL4 Documentation) waren nicht von Erfolg gekrönt ... ;-/


Danke !!

Chton 20.05.15 22:33

vielleicht komme ich der Sache näher ...

im Augenblick quält mich die Frage, wie im EA ein %Symbol% definiere.
Ich möchte mich zunächst auf EURUSD beschränken.

Ohne dass ich erkennen kann warum will mein EA immer USDCHF beackern.

dankbar für jeden Tipp !

Chton 20.05.15 23:02

Stand jetzt:

Ich versuche mit

int ticket=OrderSend("EURUSD",OP_BUY,1,price,3,stoplos s,takeprofit,"My order",0,0,Green);

eine Prosition zu öffnen.

Bei Lauf des EA öffnet er mir einen USDCHF Chart und gibt mir über Alerts aus, dass er zB. mit folgenden Werten arbeiten wollte:

Price = 0.93705000
TP = 0.93788000
SL = 0.93588000

Vermute das muss gerundet gerundet werden auf "0.xxxx", oder ?!

OrderSend failed with Error #4109

Immer wenn ich meinen EA starte habe ich die Möglichkeit einen Haken zu setzen bei "Life trading zulassen", was ich auch mache. (zZt. natürlich noch DemoAccount). Das würde ich mir auch gerne sparen.

Warum USDCHF, wenn ich in der Zeile ausdrücklich "EURUSD" stehen habe ?!

Tipps ?

Danke !!

Chton 25.05.15 23:19

bin echt am verdreifeln:
 
Z.B dieses Script (jetzt mal kein EA):



int start()
{
int ticket,iSlipPage,iSLPips,iTPPips;
double dStopLoss, dTakeProfit,dLots;
string sText,sArrow;
iSLPips=100; //Stop Loss in Pips
iTPPips=100; //Take Profit in Pips
dLots=0.01; //Amount of Lots
iSlipPage=3;
sText="My Order"; //Order Text
sArrow=CLR_NONE; //Order Arrow Color

dStopLoss=Bid-NormalizeDouble(iSLPips*Point,MarketInfo("EURUSD", MODE_DIGITS));
dTakeProfit=Ask + NormalizeDouble(iTPPips*Point,MarketInfo("EURUSD", MODE_DIGITS));
ticket=OrderSend("EURUSD",OP_BUY,dLots, Ask,iSlipPage,dStopLoss, dTakeProfit,sText,000,0,sArrow);
if(ticket<0)
{
Alert("OrderSend failed with error #",GetLastError());
Alert("Ask-Price = ", Ask);
Alert("Bid-Price = ", Bid);
Alert("SL = ", dStopLoss);
Alert("TP = ", dTakeProfit);
}

return(0);
}





Liefert mir als Ausgabe:
-----------------------------------------------------
TP = 0.9464
SL = 0.9439
Bid-Price = 0.9449
Ask-Price = 0.9454
OrderSend failed with error #4109
-----------------------------------------------------


Warum sind dies Werte (Preise), die auf USDCHF passen, wo ich doch ausdrücklich EURUSD angebe ?

und warum #4109 ?
Was ist da falsch ?

Danke !


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