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)
-   -   Vier einfache Fragen zu Quelltexten (MQ4) (http://www.expert-advisor.com/forum/showthread.php?t=5195)

Aktien Andy 02.10.16 11:35

Vier einfache Fragen zu Quelltexten (MQ4)
 
Moin zusammen,

ich habe mir mal Quelltexte von EAs angesehen (also die MQ4 Dateien) und habe dazu vier einfache Fragen:

1) Die Zeilen, die mit // beginnen, sind reine Kommentarzeilen?

2) Absätze, die mit / beginnen und mit / enden, sind auch nur Kommentare?
z.B.
Code:

/**
 * hier steht ein Text in einem Absatz
 * hier steht auch Text
 */

3) Was machen Zeilen, die mit einer Raute ( # ) beginnen?

4) Man kann ja eine Zeile Code einfügen, die dafür sorgt, dass ein von diesem EA ausgeführter Trade mit einem Kommentar versehen wird (z.B.: Strategie 1). Dies ist nützlich, wenn man einen EA mit verschiedenen Settings auf einem Demokonto laufen läßt. Wie müßte der Code für so eine Zeile aussehen und wo füge ich den am besten ein?

Vielen Dank für Antworten

Gruß an alle

Andreas

SusanneH 02.10.16 13:00

Hallo,

das ist alles soweit richtig:
PHP-Code:

//ich bin ein reiner einzeiliger Kommentar

//für eine nächste Kommentarzeile muss ich wieder die // machen 

Zusammenhängende Kommentarblöcke kannst du hingegen mit /* .... */ machen.
PHP-Code:

/* hier beginnt der Kommentarblock
dasfdas
---zwischendrinnen bleibt alles ein Kommentar
dfasdaf
und hier ist er wieder aus */ 


Einem Trade einen Kommentar mitgeben kannst du direkt beim Erstellen des Trades:
PHP-Code:

bool LongOrder=OrderSend(NULL,OP_BUY,LotSize,Ask,3,SL1,TP1,"Hier sitzt der Kommentrar - Strategie 1",MagicNumber,0,CLR_NONE); 


Aktien Andy 02.10.16 13:13

Das mit den Kommentaren ist mir dann soweit klar; Danke!

Das mit dem Kommentar noch nicht so: Muss ich da so viele Parameter angeben? Mir reicht es, wenn ich da einen einfachen Text erzeige, der dann in der Tradehistorie auftaucht (z.B.: Strategie 1.....oder eben Strategie 2)

Und warum muss die Kommentarzeile eine Boolsche Variable sein??

Gruß

Andreas

SusanneH 02.10.16 14:47

Hierbei handelt es sich um die eigentlichen OrderSend() Funktion mit der du Trades abschickst/eröffnest.

In dieser Funktion kannst du eben auch einen Kommentar mitschicken, der dann in deiner History sichtbar ist.

PHP-Code:

int  OrderSend
   
string   symbol,              // symbol 
   
int      cmd,                 // operation 
   
double   volume,              // volume 
   
double   price,               // price 
   
int      slippage,            // slippage 
   
double   stoploss,            // stop loss 
   
double   takeprofit,          // take profit 
   
string   comment=NULL,        // comment 
   
int      magic=0,             // magic number 
   
datetime expiration=0,        // pending order expiration 
   
color    arrow_color=clrNONE  // color 
   
); 


Aktien Andy 02.10.16 17:06

Hhmmm....geht das nicht auch einfacher? So dass man irgendwo am Anfang, wo alle Variablen stehen, eine Zeile einfügt, die sagt, dass er bei jeder Order einen Kommentar mitsendet?

Und was ist mi Zeilen, die mit # anfangen?

Gruß

Andreas

Kronenchakra 02.10.16 21:21

Zeilen die mit # beginnen sind sogenannte Compilerdirektiven die vom Precompiler abgearbeitet werden.

#property
#include
#define
#undef
#ifdef

etc.

ujuju, da ist noch viel Lernen angesagt!
Die MQL-Referenz ist recht übersichtlich, da steht (fast) alles drin.
Sind halt mehr als 4000 Seiten !

@SusanneH: Bitte C++ nicht PHP

LG vom OPA-Trader

traderdoc 02.10.16 23:20

Bei OrderSend() wird die TicketNumber als int zurückgegeben, d.h. es müsste lauten:

int LongOrder=OrderSend(NULL,OP_BUY,LotSize,Ask,3,SL1, TP1,"Hier sitzt der Kommentrar - Strategie 1",MagicNumber,0,CLR_NONE);

und nicht bool LongOrder = ...

traderdoc

Zyr 02.10.16 23:34

@ Traderdoc
Soweit korrekt will man aber nur abfragen ob es geklappt hat reicht bool, da alle intiger <> 0 denn Wahrheitswert true haben ist es dann egal.

Aktien Andy 02.10.16 23:39

Uff, was habe ich da nur losgetrten ;)

Was sind Compilerdirektiven? Kann ich die Zeilen löschen?

Muss ich die Anmerkung Strategie 1 direkt in die Zeile mit der Orderausführung reinschreiben? Kann ich da nicht einfach irgendwo am Anfang eine Zeile einfügen, dass er immer Strategie 1 schreibt?

Gruß

Andreas

traderdoc 02.10.16 23:57

Zitat:

Zitat von Zyr (Beitrag 36057)
@ Traderdoc
Soweit korrekt will man aber nur abfragen ob es geklappt hat reicht bool, da alle intiger <> 0 denn Wahrheitswert true haben ist es dann egal.

Also ich habe mir angewöhnt, erstens die Funktionen mit ihren Rückgaben auch so zu verwenden, wie sie angedacht sind und zweitens bringen solche Spitzfindigkeiten nur Verunsicherungen bei Programmierern, die noch nicht die nötige Erfahrung besitzen.

traderdoc


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