[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 155

 
vovander:
¿qué tipo de valor devuelve OrderType()? Gracias

int Tipo de pedido( )
 

Tengo una variable externa en mi placa, si la conecto a dos pares diferentes y cambio esta externa en uno de ellos, también cambia en el otro por alguna razón(

¿Cómo separarlos? He encontrado una solución con los parámetros de cadena: añado un nombre de símbolo al final de la inicialización. Pero, ¿qué pasa con los enteros y los dublares?

---

Otra pregunta sobre las funciones de Kim.

tiene

//| sy - nombre del instrumento ( "" - cualquier símbolo, |
//| NULL - símbolo actual) |
//| op - operación ( -1 - cualquier posición) |
//| mn - MagicNumber ( -1 - cualquier magik) |
//+----------------------------------------------------------------------------+
void SimpleTrailing(string sy="", int op=-1, int mn=-1)

es decir, si llamo a SimpleTrailing(), la función funciona para todos los pares

pero si llamo a SimpleTrailing(NULL), entonces sólo funciona para el que tiene el búho en su gráfico?

¿es alguna característica no documentada o qué? no he podido encontrar ninguna referencia a NULL en la función.

¿o es lo mismo SimpleTrailing(NULL) y SimpleTrailing()?

 
Omm:

Si lo vinculo a dos pares diferentes y cambio este externo en uno de ellos, también cambia en el otro por alguna razón(

Encontré una solución para los parámetros de cadena: añado un nombre de símbolo al final de la función durante la inicialización.

---

otra pregunta sobre las funciones de kim.


es decir, si llamo a SimpleTrailing(), la función funciona para todos los pares

pero si llamo a SimpleTrailing(NULL), entonces sólo funciona para el par con el búho?

¿se trata de una función no documentada o qué? no he podido encontrar ninguna referencia a NULL en la función.

¿o es lo mismo SimpleTrailing(NULL) y SimpleTrailing()?

1. ¡Estás diciendo lo imposible! - Lo que significa que debes estar diciendo algo "malo". Puedo asumir que el EA no utiliza el identificador - OrderMagicNumber().

2. He mirado el código - algo me dice que usar SimpleTrailing() será idéntico a SimpleTrailing(NULL). Es usted quien debe comprobarlo. Y para que la función funcione con una herramienta gráfica, llámela de la siguiente manera: SimpleTrailing (Symbol()).

 

1. este EA http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=42

La magia está formalmente ahí (también en extern por alguna razón), pero no entiendo cómo hacerla funcionar.

Sólo estoy tratando de añadir Breakeven y Trawl.

2. la cuestión está resuelta.

Lo encontré en otro f-fi if (sy=="0") sy=Symbol();

Supongo que el autor se olvidó de añadirlo a este.

 

Lo que necesito es que la función de equilibrio https://forum.mql4.com/ru/11287/page55#11315

trabajar sólo una vez en una posición concreta de un símbolo determinado

¿Qué debo retocar en el invernadero?

if(ExistPositions(Symbol() )
{
for (int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(OrderSymbol()==Symbol() )
MovingInWL(Symbol())

}

}

 

¿Tienen una función. Hay varios pedidos de diferente volumen.

Por ejemplo, pedido1=0,1, pedido2=0,2, pedido3=0,3, pedido4=0,4 - un total de 1 lote.

En un momento dado necesito cerrar parte de las órdenes por el importe total de un determinado lote.

Por ejemplo, necesito cerrar 0,5 lotes. Así, necesitamos una función que cierre orden4=0,4 y el resto, por ejemplo, de orden3. O bien orden1, orden2 y el resto de orden3.

 
Omm:

Lo que necesito es que la función de equilibrio https://forum.mql4.com/ru/11287/page55#11315

trabajar una vez en una posición concreta de un símbolo determinado

¿Qué debo arreglar en el invernadero?

Esta función tiene la comprobación de un solo disparo - no es necesario inventar nada:

    if (ExistPositions (Symbol(), -1, Magic))
    {MovingInWL (Symbol(), -1, Magic);}

Y la función MovingInWL() debería ajustarse un poco:

void MovingInWL (string sy = "", int op = -1, int mn = -1)
{
    double po, pp, ld_BU;
    int    i, k = OrdersTotal();
//----
    if (sy = "0") sy = Symbol();
    for (i = k - 1; i >= 0; i--)
    {
        if (!OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue;
        if (sy != "") if (OrderSymbol() != sy) continue;
        if (mn >= 0) if (mn != OrderMagicNumber()) continue;
        po = MarketInfo (OrderSymbol(), MODE_POINT);
        if (OrderType() == OP_BUY)
        {
            //---- Это условие выполняется однократно (пока БУ не установлен)
            if (OrderStopLoss() - OrderOpenPrice() < LevelWLoss * po)
            {
                pp = MarketInfo (OrderSymbol(), MODE_BID);
                if (pp - OrderOpenPrice() > LevelProfit * po)
                {
                    ld_BU = NormalizeDouble (OrderOpenPrice() + LevelWLoss * po, MarketInfo (OrderSymbol(), MODE_DIGITS));
                    ModifyOrder (-1, ld_BU, -1);
                    continue;
                }
            }
        }
        else if (OrderType() == OP_SELL)
        {
            //---- Это условие выполняется однократно (пока БУ не установлен)
            if (OrderStopLoss() == 0 || OrderOpenPrice() - OrderStopLoss() < LevelWLoss * po)
            {
                pp = MarketInfo (OrderSymbol(), MODE_ASK);
                if (OrderOpenPrice() - pp > LevelProfit * po)
                {
                    ld_BU = NormalizeDouble (OrderOpenPrice() - LevelWLoss * po, MarketInfo (OrderSymbol(), MODE_DIGITS));
                    ModifyOrder (-1, ld_BU, -1);
                }
            }
        }
    }
//----
}
 

Por favor, ayúdenme a cambiar la función, en el indicador High Low de la vela semanal se ve así

if (TimeDay(Time[i])!=TimeDay(Time[i+1])
{
if(TimeDayOfWeek(Time[i])==1)

Necesito el High Low del candelabro mensual. Gracias

 

TarasBY, no funciona así.

En e-TFL_V2 añado estas dos líneas a start() y a la propia función MovingInWL.

Si hay varias posiciones abiertas, el punto de equilibrio se establece sólo en una de ellas. en cada tick intenta hacerlo de nuevo.

En cuanto se cierra una posición de Breakeven, la fija en la siguiente.

Si me he fijado en el primer mensaje, el valor de equilibrio es el mismo para todos los símbolos, a pesar de que he establecido diferentes números en la ventana de configuración del EA.

No estoy seguro de dónde está la comprobación de la activación única.

p.d. gracias por la función corregida. la estoy probando con 5 dígitos, pero creo que la mayoría de las funciones de kim funcionan de todos modos.

p.s.s. Lo he hecho funcionar durante un tiempo y parece que funciona. estaba en el error MovingInWL. gracias de nuevo. he estado luchando con él durante dos días))

p.s.s. no puedo entender por qué Magic debe ser trasladado a los parámetros externos de EA?

 
¿Cómo puedo crear mi propio servidor para Metatrader, es decir, un servidor al que pueda conectarse otra persona de mi mt?