Nützliche Funktionen von KimIV - Seite 55

 
Rosh писал(а) >>

Eine solche Funktion gibt es nicht. Objekte können nur auf dem Diagramm erstellt und verwaltet werden, dem der EA zugeordnet ist.

Ich danke Ihnen für Ihre prompte Antwort. Wird sie in Metatrader Version 5 verfügbar sein?

 
KimIV, gibt es nicht ein Skript in Ihrer Sammlung, das alle offenen Oredar schließt: buy, sell, buystop, sellstop, buylimit, selllimit - zwangsweise, zyklisch, ohne Fehler und alles zu schließen?
 

http://forum.alpari-idc.ru/showpost.php?p=368730&postcount=24

Ich habe es bereits hier gefunden.

 
KimIV, haben Sie ein Skript in Ihrer Sammlung, wie dieses hier - ByMarketBuySymbols und ByMarketSellSymbols, nur gemeinsam, so dass, sagen wir, das Skript öffnet 5 Positionen für Kauf und 2 für Verkauf?
 
Liebe KimIV,

Vielen Dank für die gute Arbeit, die Sie geleistet haben.

Ein Vorschlag: Wenn möglich, sollten Sie im ersten Beitrag eine Liste Ihrer Funktionen/Skripte mit Links zu den entsprechenden Seiten der Branche und einer kurzen Beschreibung veröffentlichen und aktualisieren. Dann wird es zum Super-Tool! Sonst schickt jemand irgendwo etwas "an Kim" und dann muss man hier lange scrollen, um etwas zu finden ...

 

Funktion MovingInWL().

Verschiebt das StopLoss-Kursniveau der offenen Positionen auf Breakeven. Die Funktion MovingInWL() akzeptiert die folgenden optionalen Parameter:

  • sy - Name des Instruments. "" - beliebiges Symbol, NULL - aktuelles Symbol. Der Standardwert ist "".
  • op - Handelsoperation. Gültige Werte: -1, OP_BUY, OP_SELL. Der Standardwert ist -1 - beliebiger Handel.
  • mn - Handelskennzeichen, MagicNumber. Standardwert -1 - beliebige Magie.

Außerdem impliziert die Funktion MovingInWL() globale Variablen (externe Parameter des Skripts oder eines EA):

  • int LevelProfit - Höhe des Gewinns in Punkten, den eine Position erreichen muss, damit ihr Stop auf das Breakeven-Niveau verschoben wird.
  • int LevelWLoss - Breakeven-Niveau in Punkten, auf das der Stopp übertragen wird, nachdem sein Gewinn das LevelProfit-Niveau in Punkten erreicht hat.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Перенос уровня стопа в безубыток                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void MovingInWL(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) {
      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);
          }
        }
      }
    }
  }
}

Einen Expert Advisor mit einem Beispiel für die Verwendung der Funktion MovingInWL() finden Sie hier.

 
mamma писал(а) >>
Wenn es möglich ist, stellen Sie in den ersten Beitrag eine aktualisierte Liste Ihrer Funktionen/Skripte mit Links zu den Verzweigungsseiten und einer kurzen Beschreibung.

Die Titelseite ist bereits unmöglich...

Ich werde es hier posten... Wenn der Beitrag zur Aktualisierung blockiert wird, werde ich ihn erneut posten. Also behaltet den Thread im Auge :-)

Dateien:
f_kimiv_1.rar  11 kb
 

SimpleTrailing() Funktion.

Verschiebt das StopLoss-Kursniveau offener Positionen unter Verwendung des TrailingStop-Algorithmus. Die Funktion SimpleTrailing() akzeptiert die folgenden optionalen Parameter:

  • sy - Name des Instruments. "" - beliebiges Symbol, NULL - aktuelles Symbol. Der Standardwert ist "".
  • op - Handelsoperation. Gültige Werte: -1, OP_BUY, OP_SELL. Der Standardwert ist -1 - beliebiger Handel.
  • mn - Handelskennzeichen, MagicNumber. Standardwert -1 - beliebige Magie.

Darüber hinaus impliziert die Funktion SimpleTrailing() globale Variablen (externe Parameter des Skripts oder Expert Advisors):

  • bool TSProfitOnly - Schaltet die Zone um, in der das Schleppnetz beginnt. Bei True beginnt die Schleppnetzfischerei erst, wenn der Positionsgewinn den Wert von TStop.Buy/Sell+TrailingStep-Punkten erreicht. Wenn False, stellt der Expert Advisor lediglich sicher, dass die Stop-Position relativ zum aktuellen Kurs immer nicht weiter als TStop.Buy/Sell+TrailingStep Pips entfernt ist. Mit anderen Worten: Bei "True" arbeitet der Expert Advisor nur in der Gewinnzone der Position, bei "False" arbeitet er in der negativen Zone der Position.
  • int TStop.Buy - Größe des zu kaufenden Kurses in Punkten.
  • intTStop.Sell - Schleppnetzgröße in Punkten für den Verkauf.
  • int TrailingStep - Nachlaufschritt in Punkten. Dies ist notwendig, um häufige Anfragen beim Händler zu vermeiden.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Сопровождение позиций простым тралом                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void SimpleTrailing(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)) {
        po=MarketInfo(OrderSymbol(), MODE_POINT);
        if ( mn<0 || OrderMagicNumber()== mn) {
          if (OrderType()==OP_BUY) {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            if (! TSProfitOnly || pp-OrderOpenPrice()> TStop. Buy* po) {
              if (OrderStopLoss()< pp-( TStop. Buy+ TrailingStep-1)* po) {
                ModifyOrder(-1, pp- TStop. Buy* po, -1);
              }
            }
          }
          if (OrderType()==OP_SELL) {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            if (! TSProfitOnly || OrderOpenPrice()- pp> TStop. Sell* po) {
              if (OrderStopLoss()> pp+( TStop. Sell+ TrailingStep-1)* po || OrderStopLoss()==0) {
                ModifyOrder(-1, pp+ TStop. Sell* po, -1);
              }
            }
          }
        }
      }
    }
  }
}

Einen Expert Advisor mit einem Beispiel für die Verwendung der Funktion SimpleTrailing() finden Sie hier.

 

//------- Anschluss von externen Modulen -----------------------------------------+

#include "b-Positions.mqh" // Arbeit mit Positionen

Wo ist diese Datei zu finden?

 
beginner писал(а) >>

//------- Anschluss von externen Modulen -----------------------------------------+

#include "b-Positions.mqh" // Arbeit mit Positionen

Wo ist diese Datei zu finden?

hier

Grund der Beschwerde: