Nützliche Funktionen von KimIV - Seite 80

 
zennon писал(а) >>
Die Funktion MovingInWL() geht einfach durch alle offenen Positionen, unabhängig von den Filtern sy,op,mn. Dies gilt auch für das beigefügte Beispiel EA (Seite 55).

Andrej, ich danke dir! Korrigiert...

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 23.04.2009                                                     |
//|  Описание : Перенос уровня стопа в безубыток                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void MovingInWL(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  if ( sy=="0") sy=Symbol();
  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()== sy || sy=="") && ( op<0 || OrderType()== op)) {
        if ( mn<0 || OrderMagicNumber()== mn) {
          po=MarketInfo(OrderSymbol(), MODE_POINT);
          if (OrderType()==OP_BUY) {
            if (OrderStopLoss()-OrderOpenPrice()< LevelWLoss* po) {
              pp=MarketInfo(OrderSymbol(), MODE_BID);
              if ( pp-OrderOpenPrice()> LevelProfit* po) {
                ModifyOrder(-1, OrderOpenPrice()+ LevelWLoss* po, -1);
              }
            }
          }
          if (OrderType()==OP_SELL) {
            if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()< LevelWLoss* po) {
              pp=MarketInfo(OrderSymbol(), MODE_ASK);
              if (OrderOpenPrice()- pp> LevelProfit* po) {
                ModifyOrder(-1, OrderOpenPrice()- LevelWLoss* po, -1);
              }
            }
          }
        }
      }
    }
  }
}
Die Datei e-MovingInWL2.mq4 wurde ebenfalls korrigiert.
 

Guten Tag Igor!

Vielen Dank, dass Sie dem Forum so viel Zeit gewidmet haben. Igor, kennen Sie eine Möglichkeit, Informationen über eingehende Kauf-/Verkaufsanfragen zu erhalten - "Markttiefe".

 
Alex30 писал(а) >>
Igor, kennen Sie eine Möglichkeit, Informationen über eingehende Kauf-/Verkaufsanfragen zu erhalten - "Markttiefe".

keine

 
Frage an die erfahrenen: jemand kann sagen, warum meine Demo-Indikator xMeterMTF.mq4 zeigt alle normalen, und in realen Euro Leere (ob aufgrund der Tatsache, dass in realen eur/usd- als eur/usddpro aufgeführt ist), wenn so korrigiert werden kann
Dateien:
xmetermtf.mq4  8 kb
xmeter.rar  34 kb
 

Die Funktion isTradeTimeString().

Diese Funktion gibt das Flag zurück, das den Handel nach Zeit erlaubt. Dabei wird geprüft, ob die aktuelle Uhrzeit des Handelsservers innerhalb eines bestimmten Zeitraums liegt. Befindet sie sich darin, gibt die Funktion isTradeTimeString() den Wert true zurück, andernfalls den Wert false. Die Besonderheit dieser Funktion ist die Möglichkeit, das Zeitintervall sowohl innerhalb als auch außerhalb eines Tages anzugeben. Dies wird in den Anwendungsbeispielen näher erläutert. Die Funktion isTradeTimeString() akzeptiert die folgenden optionalen Parameter:

  • TimeBegin - String im Format "HH:MM", er legt die Zeit des Handelsbeginns fest. Standardwert ist "00:00".
  • TimeEnd - String im Format "HH:MM", gibt die Endzeit des Geschäfts an. Standardwert ist "00:00".
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 29.04.2009                                                     |
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    TimeBegin - время начала торговли         (ЧЧ:ММ)                       |
//|    TimeEnd   - время окончания торговли      (ЧЧ:ММ)                       |
//+----------------------------------------------------------------------------+
bool isTradeTimeString(string TimeBegin="00:00", string TimeEnd="00:00") {
  datetime dtBegin, dtEnd;        // Время начала и окончания работы
  int      hc, he;                // Часы текущего времени и окончания работы

  dtBegin=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+ TimeBegin);
  dtEnd  =StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+ TimeEnd);
  hc     =TimeHour(TimeCurrent());
  he     =TimeHour( dtEnd);
  if ( dtBegin>= dtEnd) {
    if ( hc>= he) dtEnd+=24*60*60; else dtBegin-=24*60*60;
  }

  if (TimeCurrent()>= dtBegin && TimeCurrent()<= dtEnd) return( True);
  else return( False);
}
 

Beispiele für die Verwendung von isTradeTimeString().

  1. Zeitspanne innerhalb eines Tages. Aktuelle Zeit des Handelsservers innerhalb eines Zeitraums und lassen Sie sie "07:50" sein.
    if (isTradeTimeString("06:00", "09:30")) Message("Торгуем...");
    else Message("Отдыхаем...");
  2. Zeitrahmen innerhalb eines Tages. Aktuelle Zeit des Handelsservers außerhalb des Segments und gleich "07:50" lassen.
    if (isTradeTimeString("12:00", "16:30")) Message("Торгуем...");
    else Message("Отдыхаем...");
  3. Das Zeitfenster umfasst die Tagesgrenze. Aktuelle Uhrzeit des Handelsservers innerhalb des Segments und lassen Sie sie gleich "07:50" sein.
    if (isTradeTimeString("21:15", "09:30")) Message("Торгуем...");
    else Message("Отдыхаем...");
  4. Das Zeitfenster umfasst eine Tagesgrenze. Die aktuelle Zeit des Handelsservers außerhalb des Segments und lassen Sie sie "07:50" sein.
    if (isTradeTimeString("22:00", "05:30")) Message("Торгуем...");
    else Message("Отдыхаем...");

SZY: Im Anhang finden Sie ein Skript zum Testen der Funktion isTradeTimeString().

Dateien:
 
KimIV >> :

Igor, der i-Sessions-Indikator hat gelegentlich Probleme: Bereiche von noch nicht geöffneten Sitzungen erscheinen und verschwinden...

 
DR12CED >> :

Igor, der i-Sessions-Indikator hat gelegentlich Pannen: Bereiche von Sitzungen, die noch nicht geöffnet wurden, erscheinen und verschwinden...

Hoppla... Ich nehme das zurück... Sie werden sich auch als nützlich erweisen, wenn man auf Ereignisse wartet... Verzeihung... bitte...

 
KimIV >> :

Die Funktion isTradeTimeString().

Diese Funktion gibt das Flag zurück, das den Handel nach Zeit erlaubt. Dabei wird geprüft, ob die aktuelle Uhrzeit des Handelsservers innerhalb eines bestimmten Zeitraums liegt. Befindet sie sich darin, gibt die Funktion isTradeTimeString() den Wert true zurück, andernfalls den Wert false. Die Besonderheit dieser Funktion ist die Möglichkeit, das Zeitintervall sowohl innerhalb als auch außerhalb eines Tages anzugeben. Dies wird in den Anwendungsbeispielen näher erläutert. Die Funktion isTradeTimeString() akzeptiert die folgenden optionalen Parameter:

  • TimeBegin - String im Format "HH:MM", er legt die Zeit des Handelsbeginns fest. Standardwert ist "00:00".
  • TimeEnd - String im Format "HH:MM", gibt die Endzeit des Geschäfts an. Standardwert - "00:00".

Es ist auch möglich, Variablen nicht als "string", sondern als "int" zu definieren. Um im Tester zu suchen?

>> Vielen Dank im Voraus.

 
vasilyt писал(а) >>
Können Sie Variablen nicht als "string", sondern als "int" anlegen. Um im Prüfgerät suchen zu können?

Auf Seite 76...

Grund der Beschwerde: