Nützliche Funktionen von KimIV - Seite 52

 

Die Funktion IIFc().

Eine sehr praktische Funktion für die Konstruktion von Gabeln. Wenn ja, dann diese Farbe. Und wenn nicht, dann eine andere Farbe. Die Funktion IIFc() benötigt drei obligatorische Parameter:

  • condition - Ein logischer Ausdruck. Sie kann wahr oder falsch sein.
  • ifTrue - Die Farbe, die von IIFc() zurückgegeben wird, wenn die Bedingung erfüllt ist.
  • ifFalse - Die Farbe, die von IIFc() zurückgegeben wird, wenn die Bedingung falsch ist.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 18.07.2008                                                     |
//|  Описание : Возвращает одно из двух значений взависимости от условия.      |
//+----------------------------------------------------------------------------+
color IIFc(bool condition, color ifTrue, color ifFalse) {
  if ( condition) return( ifTrue); else return( ifFalse);
}
 

Die Funktion IIFd().

Ähnlicher Komfort für reelle Zahlen. Wenn ja, eine solche reelle Zahl. Wenn nicht, dann eine andere Nummer. Die Funktion IIFd() benötigt drei obligatorische Parameter:

  • condition - Ein logischer Ausdruck. Sie kann wahr oder falsch sein.
  • ifTrue - Die reelle Zahl, die von IIFd() zurückgegeben wird, wenn die Bedingung wahr ist.
  • ifFalse - Eine reelle Zahl, die von IIFd() zurückgegeben wird, wenn die Bedingung falsch ist.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.02.2008                                                     |
//|  Описание : Возвращает одно из двух значений взависимости от условия.      |
//+----------------------------------------------------------------------------+
double IIFd(bool condition, double ifTrue, double ifFalse) {
  if ( condition) return( ifTrue); else return( ifFalse);
}
 

Die Funktion IIFi().

Ähnlicher Komfort für ganze Zahlen. Wenn ja, eine solche ganze Zahl. Wenn nicht, dann eine andere Nummer. Die Funktion IIFi() benötigt drei obligatorische Parameter:

  • condition - Ein logischer Ausdruck. Sie kann wahr oder falsch sein.
  • ifTrue - Eine ganzzahlige Zahl, die von IIFi() zurückgegeben wird, wenn der Bedingungsausdruck wahr ist.
  • ifFalse - Eine ganze Zahl, die von IIFi () zurückgegeben wird, wenn die Bedingung falsch ist.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.02.2008                                                     |
//|  Описание : Возвращает одно из двух значений взависимости от условия.      |
//+----------------------------------------------------------------------------+
int IIFi(bool condition, int ifTrue, int ifFalse) {
  if ( condition) return( ifTrue); else return( ifFalse);
}
 

IIFs()-Funktion.

Ähnlicher Komfort für Strings. Wenn ja, eine solche Zeichenfolge. Wenn nicht, dann eine andere Zeichenfolge. Die Funktion IIFs() benötigt drei obligatorische Parameter:

  • condition - Ein logischer Ausdruck. Sie kann wahr oder falsch sein.
  • ifTrue - Die Zeichenkette, die von IIFs() zurückgegeben wird, wenn die Bedingung wahr ist.
  • ifFalse - Die Zeichenkette, die von IIFs( ) zurückgegeben wird, wenn die Bedingung falsch ist.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.02.2008                                                     |
//|  Описание : Возвращает одно из двух значений взависимости от условия.      |
//+----------------------------------------------------------------------------+
string IIFs(bool condition, string ifTrue, string ifFalse) {
  if ( condition) return( ifTrue); else return( ifFalse);
}
 

Beispiel für die Verwendung der Funktion IIFc().

Wenn das angegebene Preisniveau höher ist als das aktuelle Gebot, dann wird eine horizontale Linie auf dem angegebenen Preisniveau in blau gesetzt, ansonsten in rot.

extern double p1=1.36;
void start() {
  color cl= IIFc( p1>Bid, Blue, Red);
  SetHLine( cl, "", p1);
}

Ohne die Verwendung der Funktion IIFc() würde der obige Code wie folgt aussehen:

extern double p1=1.36;
void start() {
  color cl;
  if ( p1>Bid) cl=Blue; else cl=Red;
  SetHLine( cl, "", p1);
}

P.S. Im Anhang finden Sie ein Skript zum Testen der Funktion IIFc().

Dateien:
test_iifc.mq4  3 kb
 

Beispiel für die Verwendung der Funktion IIFs().

Die Funktion IIFs() wird in den meisten Fällen im Kommentarblock der EA-Operation verwendet. Sie wird zum Beispiel bei der Ausgabe von Werten externer Parameter des EA verwendet.

extern int StopLoss=50;
extern int TakeProfit=0;
void start() {
  Comment( IIFs( StopLoss<=0, "", "StopLoss="+DoubleToStr( StopLoss, 0)+"п.  ")
         , IIFs( TakeProfit<=0, "", "TakeProfit="+DoubleToStr( TakeProfit, 0)+"п.")
         );
}

P.S. Im Anhang finden Sie ein Skript zum Testen der Funktion IIFs().

Dateien:
test_iifs.mq4  2 kb
 

Ein Beispiel für die Verwendung der Funktion IIFd().

Es ist praktisch, die Funktion IIFd() bei der Initialisierung einiger Variablen zu verwenden. Zum Beispiel Preisniveaus von Stop und Take vor der Eröffnung einer Position.

extern int StopLoss=50;
extern int TakeProfit=0;
void start() {
  double ll=0.1;
  double sl= IIFd( StopLoss  >0, Ask- StopLoss  *Point, 0);
  double tp= IIFd( TakeProfit>0, Ask+ TakeProfit*Point, 0);

  OpenPosition(NULL, OP_BUY, ll, sl, tp);
}

Ohne die Funktion IIFd() würde dieser Code wie folgt aussehen:

extern int StopLoss=50;
extern int TakeProfit=0;
void start() {
  double ll=0.1, sl, tp;
  if ( StopLoss  >0) sl=Ask- StopLoss  *Point; else sl=0;
  if ( TakeProfit>0) tp=Ask+ TakeProfit*Point; else tp=0;

  OpenPosition(NULL, OP_BUY, ll, sl, tp);
}
 

Beispiel für die Verwendung von Handelsfunktionen im Prüfgerät.

Um zu zeigen, wie Handelsfunktionen, die nur für den Einsatz im Tester vorgesehen sind, angewendet werden können, habe ich e_ForTester, einen Swing Expert Advisor, geschrieben. Das Einstiegssignal ist ein Paar unidirektionaler Candlesticks. Wenn die Candlesticks nach oben zeigen, schließt der EA den Kauf und verkauft. Sind die Candlesticks abwärts gerichtet, schließt der Expert Advisor den Verkauf ab und kauft. Es gibt immer nur eine Position auf dem Markt. Der Ausstieg erfolgt entweder durch das entgegengesetzte Signal oder durch einen Stop/Stop/Stick. Stop und Take sind zwei externe Parameter, die optimiert werden können.
Die folgenden Funktionen, die nur für den Tester gelten, werden im EA verwendet:

Trades des e_ForTester Expert Advisors auf dem EURUSD H1 Chart:

P.S. Anbei:

  • e_ForTester.mq4 - Expert Advisor, der nur für die Verwendung im Testprogramm vorgesehen ist.
  • e_ForTester.rar - Testerbericht.
  • e_ForTester.txt - Prüfprotokoll.
Dateien:
 
Funktionen, die nur im MetaTrader 4-Tester verwendet werden sollen, werden vollständig veröffentlicht. Daher wurde die entsprechende b-ForTest-Bibliothek veröffentlicht.
 
Ich habe das Buch von V. Yakimkin gelesen. "Forex market - your way to success" und stieß auf folgende Zeilen "...differential from (DJI x Nikkei)..." Kannst du mir sagen, Igor, ob es möglich ist, dies zu implementieren und als Indikator auszugeben...