Caratteristiche utili da KimIV - pagina 55

 
Rosh писал(а) >>

Non esiste una tale funzione. Gli oggetti possono essere creati e gestiti solo sul grafico a cui l'EA è collegato.

Grazie per la sua pronta risposta. Sarà disponibile nella versione 5 di Metatrader?

 
KimIV, non c'è uno script nella tua collezione che chiuderebbe tutti gli Oredar aperti: buy, sell, buystop, sellstop, buylimit, selllimit - forzatamente, ciclicamente, per chiudere senza errori e tutto?
 

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

L'ho già trovato qui.

 
KimIV, hai uno script nella tua collezione, come questo - ByMarketBuySymbols e ByMarketSellSymbols, solo comune, in modo che diciamo che lo script apre 5 posizioni per comprare e 2 per vendere?
 
Caro KimIV,

Grazie mille per un lavoro ben fatto.

Un suggerimento: se possibile, nel primo post, pubblicate e aggiornate una lista delle vostre funzionalità/script con i link alle relative pagine del ramo e una breve descrizione. Allora sarà super-attrezzo! Altrimenti, qualcuno da qualche parte su qualcosa "invierà a Kim" e poi si deve scorrere qui per molto tempo per trovare ...

 

Funzione MovingInWL().

Sposta il livello di prezzo StopLoss delle posizioni aperte a Breakeven. La funzione MovingInWL() accetta i seguenti parametri opzionali:

  • sy - Nome dello strumento. "" - qualsiasi simbolo, NULL - simbolo corrente. Il valore predefinito è "".
  • op - operazione commerciale. Valori validi: -1, OP_BUY, OP_SELL. Il valore predefinito è -1 - qualsiasi commercio.
  • mn - Identificatore commerciale, MagicNumber. Valore predefinito -1 - qualsiasi magia.

Inoltre, la funzione MovingInWL() ha variabili globali (parametri esterni dello script o dell'Expert Advisor):

  • int LevelProfit - Livello di profitto in punti, che una posizione deve raggiungere per far spostare il suo stop al livello di Breakeven.
  • int LevelWLoss - Livello di pareggio in punti, a cui lo stop sarà trasferito dopo che il suo profitto raggiunge il livello LevelProfit in punti.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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);
          }
        }
      }
    }
  }
}

SZZ. Potete trovare un Expert Advisor con un esempio di utilizzo della funzione MovingInWL() qui.

 
mamma писал(а) >>
Se è possibile, nel primo post, mettete una lista aggiornata delle vostre funzionalità/script con i link alle pagine del ramo e brevi descrizioni.

La prima pagina è già impossibile...

Lo posterò qui... Se il post da aggiornare viene bloccato, lo ripubblicherò. Quindi tenete d'occhio il thread :-)

File:
f_kimiv_1.rar  11 kb
 

Funzione SimpleTrailing().

Sposta il livello di prezzo StopLoss delle posizioni aperte utilizzando l'algoritmo TrailingStop. La funzione SimpleTrailing() accetta i seguenti parametri opzionali:

  • sy - Nome dello strumento. "" - qualsiasi simbolo, NULL - simbolo corrente. Il valore predefinito è "".
  • op - operazione commerciale. Valori validi: -1, OP_BUY, OP_SELL. Il valore predefinito è -1 - qualsiasi commercio.
  • mn - Identificatore commerciale, MagicNumber. Valore predefinito -1 - qualsiasi magia.

Inoltre, la funzione SimpleTrailing() implica variabili globali (parametri esterni dello script o dell'Expert Advisor):

  • bool TSProfitOnly - Cambia la zona in cui inizia la pesca a strascico. Se True, il trawl inizierà a lavorare solo quando il profitto della posizione raggiunge il valore dei punti TStop.Buy/Sell+TrailingStep. Se Falso, l'Expert Advisor si assicurerà semplicemente che la posizione di stop rispetto al prezzo corrente non sia sempre oltre TStop.Buy/Sell+TrailingStep pips. In altre parole, se True, l'Expert Advisor lavora solo nella zona di profitto della posizione, mentre se False lavora nella zona negativa della posizione.
  • int TStop.Buy - Dimensione del trall in punti da comprare.
  • intTStop.Sell - Dimensione dello strascico in punti per la vendita.
  • int TrailingStep - Passo finale in punti. Questo è necessario per evitare frequenti richieste al rivenditore.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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);
              }
            }
          }
        }
      }
    }
  }
}

SZZ. Un Expert Advisor con un esempio di utilizzo della funzione SimpleTrailing() può essere trovato qui.

 

//------- Collegamento di moduli esterni -----------------------------------------+

#include "b-Positions.mqh" // Lavora con le posizioni

Dove trovare questo file?

 
beginner писал(а) >>

//------- Collegamento di moduli esterni -----------------------------------------+

#include "b-Positions.mqh" // Lavora con le posizioni

Dove trovare questo file?

qui