Nützliche Funktionen von KimIV - Seite 73

 
Die Funktion gibt das Fraktal durch seine Nummer zurück. Die Nummerierung ist für obere und untere Fraktale getrennt. Dies kann für die Entwicklung von Expert Advisors nützlich sein, die die relative Positionierung der letzten Anzahl von Fraktalen analysieren, um eine Entscheidung über den Einstieg in den Markt zu treffen. Hergestellt durch Änderung der Funktion KimIV.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru  & khorosh        |
//+----------------------------------------------------------------------------+
//|  Версия   : 08.02.2009                                                     |
//|  Описание : Возвращает фрактал по его номеру.                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента        ("" или NULL - текущий символ)     |
//|    tf - таймфрейм                       (    0       - текущий ТФ)         |
//|    nf - номер фрактала                  (    0       - последний)          |
//+----------------------------------------------------------------------------+
double GetFractal(string sy="0", int tf=0, int nf=0, int mode=MODE_UPPER) {
  if ( sy=="" || sy=="0") sy=Symbol();
  double f=0;
  int    i, k=iBars( sy, tf), kf;
  for ( i=3; i< k; i++) {
    if( mode==MODE_LOWER){
    f=iFractals( sy, tf, MODE_LOWER, i);
    if ( f!=0) {
      kf++;
      if ( kf> nf) return(iLow( sy, tf, i));
     } 
    }
    if( mode==MODE_UPPER){
    f=iFractals( sy, tf, MODE_UPPER, i);
    if ( f!=0) {
      kf++;
      if ( kf> nf) return(iHigh( sy, tf, i));
      }
    }
  }
  Print("GetFractalBar(): Фрактал не найден");
  return(-1);
}
 

Hallo Igor!

Ich versuche, MQL4 zu lernen, und aufgrund der fehlenden Beschreibung der Sprachoperatoren hat mich ein Problem ratlos zurückgelassen. Ich habe einen Indikator mit 8 Puffern akkumulierter Daten, der in einem von mir gewählten Zeitrahmen und mit der Periode des nächsten Zeitrahmens angezeigt werden soll. Zu diesem Zweck verwendet sie den Operator iCustom(). Aber es gibt einen doppelten Wert zurück und ich weiß nicht, wie und ob iCustom in diesem Fall verwendet werden kann und sollte.

Ich hoffe wirklich auf Ihre Hilfe.

 

Hallo Igor und guten Tag an alle!

Ich interessiere mich für den Code, der eingegeben werden sollte, damit der Expert Advisor keine weiteren Geschäfte an diesem Tag tätigt, wenn er einen Handel schließt...


Ich habe es gefunden, aber es funktioniert nicht in der Strategie-Tester, ich möchte es zu testen, welchen Code sollte ich stattdessen verwenden?

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает номер бара открытия последней позиции или -1.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    op - операция                   (   -1       - любая позиция)           |
//|    mn - MagicNumber                (   -1       - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfBarCloseLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersHistoryTotal();

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) t=OrderCloseTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}

Dann sollten Sie die Eingabebedingungen eingeben

if (NumberOfBarCloseLastPos(NULL, 1440,-1, Magic)  !=0) {
                                                      }
 
LeoV писал(а) >>

Hallo Igor!

Haben Sie ein Skript, das alle offenen Positionen nach Volumen (Lots) für alle Instrumente um einen bestimmten Prozentsatz ändert? Sowohl nach oben als auch nach unten mit Speicherung der Magic Number für jede Position?

Hallo Leonid!

Ich habe nicht... Ich habe geschrieben... ChangeLots

 
KimIV писал(а) >>

Hallo, Leonid!

Ich habe nicht... geschrieben... ChangeLots

Igor, ich danke dir sehr! Ich könnte das wirklich für meinen Pamm gebrauchen. )))))
 

Hallo Igor!

Wenn ich Ihren Expert Advisor "e-SampleCase" verwende, setze ich einen Stopp

weniger als 100 (10 Pips), mein Tester erzeugt Fehler 130.

Ich weiß nicht, warum es nicht richtig funktioniert.

Bitte antworten Sie!

 
6232 >> :

Wenn Sie Ihren "e-SampleCase" Expert Advisor verwenden, setzen Sie beim Setzen eines Stopps

weniger als 100 (10 Pips), mein Tester gibt Fehler 130.

Stopp, alles funktioniert einwandfrei. Warum?

Erweiterung des DC-Min.-Korridors für das Einrichten von Haltestellen und Mitnahmestellen

 
BARS писал(а) >>

Ausweitung des DC-Min.-Korridors zum Setzen von Stopps und Übernahmen

>>Danke, ich hab's.

 
6232 >> :

Hallo Igor!

Wenn ich Ihren Expert Advisor "e-SampleCase" verwende, setze ich einen Stopp

weniger als 100 (10 Pips), mein Tester erzeugt Fehler 130.

Ich weiß nicht, warum es nicht richtig funktioniert.

>> Bitte geben Sie mir eine Antwort.

es ist wahrscheinlich wegen der Einführung der fünften Ziffer, bei alpari übrigens haben sie gesagt, Sie müssen Ihre Stops um das 10-fache erhöhen, weil Ihre 100 Pips zu 10 Pips werden, daher die Fehler bei den meisten Paaren...

 
stalkervr писал(а) >>

Wenn es Ihnen nichts ausmacht, sagen Sie mir, wie ich Ihre Funktion verwenden kann

Ermitteln Sie das Vorhandensein und das Volumen einer offenen Position sowie das Vorhandensein und das Volumen der eingestellten schwebenden Aufträge

Eugene, ich finde Ihre Frage ein wenig überflüssig, denn eine Lautstärke ungleich Null bedeutet automatisch Anwesenheit.

Sehen Sie sich die Funktionen an:

Vielleicht können Sie etwas Nützliches für sich selbst herstellen.