[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 463

 
borilunad:

¡El deslizamiento, después del precio de apertura, al menos 30 para un 5!
Ah, ya veo lo que quieres decir.Tengo el juego de desviación.
 
nemo811:
Esa fue mi idea. Lo probaré ahora. Gracias.

Además, algunos paréntesis no están colocados correctamente:

    for (i=OrdersTotal()-1;i>=0;i--)
    {
        if (!OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
        {Alert ("Ошибка ", GetLastError(), " выбора ордера!");}
        else
        {
            SMB = OrderSymbol();
            SchBuyLotsSMB = 0;
            SchSellLotsSMB = 0;
            for (ii=OrdersTotal()-1;ii>=0;ii--)
            {
                if (!OrderSelect (ii, SELECT_BY_POS, MODE_TRADES))
                {Alert ("Ошибка ", GetLastError(), " выбора ордера!");}
                else
                {
                    if (OrderSymbol() == SMB)
                    {
                        if (OrderType()==OP_BUY) {SchBuyLotsSMB +=OrderLots();}
                        if (OrderType()==OP_SELL) {SchSellLotsSMB += OrderLots();}
                    }
                }
            }
            MarketLotSMB=SchBuyLotsSMB-SchSellLotsSMB;
            if (MarketLotSMB == 0.0) continue;
            RefreshRates();
            if (MarketLotSMB<0)
            {
                MarketLotSMB = MathAbs (MarketLotSMB);
                Price = MarketInfo (SMB, MODE_ASK);
                OPENORDER ("Buy", SMB, MarketLotSMB, Price);
            }
            else if (MarketLotSMB>0)
            {
                Price = MarketInfo (SMB, MODE_BID);
                OPENORDER ("Sell", SMB, MarketLotSMB, Price);
            }            
        }
    }

y también hay que tener en cuenta que en el segundo ciclo hay una reasignación de orden y después de que el segundo ciclo termina (si no es un probador), por ejemplo, SMB puede ser != OrderSymbol().

 
TarasBY:

Además, algunos paréntesis no están colocados correctamente:

y también hay que tener en cuenta que en el segundo ciclo hay una sobreasignación de órdenes y después del final del segundo ciclo (si no es un probador), por ejemplo, SMB podría ser != OrderSymbol().

¡Bravo! Su variante funciona.

Gracias sinceramente.


borilunad- gracias también.

 
TarasBY:

Además, algunos de los paréntesis están mal:

He puesto los paréntesis correctamente en mi propia versión y también ha funcionado.

Gracias de nuevo.

 

granit77

No estoy de acuerdo. No es necesario ir más allá de mql, no es necesario eliminar el EA del gráfico. Es suficiente con bloquear programáticamente el comercio proporcionando esto en el código del EA.

Zhunko:
¡Sí! ¡Correcto! Excepción sólo para el control remoto.

Gracias por los comentarios, pero todavía no sé cuál es mejor y he elegido:

PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);

Ahora tengo otra pregunta, ¿qué debo añadir al código para que no se dispare inmediatamente, sino después de una cierta cantidad de disparos (por ejemplo:Kol=3)

#property show_inputs
#include <WinUser32.mqh>
extern int Kol=3;

int start()
{
OrderSend(Symbol(),OP_SELL,0.05,Bid,333,0,0,"Тест",0,0,CLR_NONE);
while(!IsTradeAllowed()) Sleep(1000);
PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);
return(0);
}

Gracias de antemano

 

¡Hola!

He empezado a construir un EA para el indicador Aroon. Nunca he querido utilizar un indicador que no esté ya incluido en MT4. NO CONSIGO QUE FUNCIONE: (((((

No voy a utilizar el indicador Aroon en MT4 pero tengo que utilizarlo en Aroon.

Archivos adjuntos:
 
Sarguss:

¡Hola!

He empezado a construir un EA para el indicador Aroon. Nunca he querido utilizar un indicador que no esté ya incluido en MT4. NO CONSIGO QUE FUNCIONE: (((((

No puedo conseguir una pista o sugerir mis errores.

Este es un código MUY interesante:

Up1 = Highest(Symbol(),"Aroon_Horn2",MODE_HIGH,Aroon_Period-1,0);
 Up2 = Highest(Symbol(),"Aroon_Horn2",MODE_HIGH,Aroon_Period-1,1);
      Dn1 = Lowest(Symbol(),"Aroon_Horn2",MODE_LOW,Aroon_Period-1,0);
   Dn2 = Lowest(Symbol(),"Aroon_Horn2",MODE_LOW,Aroon_Period-1,1);

¿Más alto() y más bajo() son funciones de usuario? Si no es así, ¿dónde ha encontrado esa construcción?
Si desea obtener valores del indicador, debe utilizar la función iCustom().

 
TarasBY:

Este es un código MUY interesante:

¿Son funciones personalizadas Highest() y Lowest()? Si no es así, ¿de dónde sacaste esa construcción?
Si desea obtener valores del indicador, debe utilizar la función iCustom().

Esto lo intuí por el indicador. Debe ser divertido :)

¿Es éste el único error?

Cuando pongo el Asesor Experto en Demo, dice "2012.10.26 21:49:56 2012.10.22 23:59 Trommel 300+Aroon CADJPY,H1: número entero inválido como parámetro 2 para la función iLowest

2012.10.26 21:49:56 2012.10.22 23:59 Trommel 300+Aroon CADJPY,H1: número entero no válido como parámetro 2 para la función iHighest" Pero la intersección Up & Down funciona.

 
TarasBY:

Este es un código MUY interesante:

¿Más alto() y más bajo() son funciones personalizadas? Si no es así, ¿dónde has sacado esa construcción?
Si desea obtener valores del indicador, debe utilizar la función iCustom().

Pido disculpas por las preguntas tontas y gracias.

Shas wikidid.

2012.10.26 21:59:19 2012.10.22 23:59 Trommel 300+Aroon CADJPY,H1: el nombre del indicador personalizado debe ser una cadena

2012.10.26 21:59:19 2012.10.22 23:59 Trommel 150+Aroon CADJPY,H1: número entero inválido como parámetro 2 para la función de llamada al indicador

 
Sarguss:

Pido disculpas por las preguntas tontas y gracias.

Es un wickididium.

2012.10.26 21:59:19 2012.10.22 23:59 Trommel 300+Aroon CADJPY,H1: el nombre del indicador personalizado debe ser una cadena

2012.10.26 21:59:19 2012.10.22 23:59 Trommel 150+Aroon CADJPY,H1: número entero inválido como parámetro 2 para la función de llamada al indicador

¡¿Has oído algo sobre los tipos variables?! El 1er error - en el mencionado iCustom(), el nombre del indicador debe ser una cadena (es decir, "nombre del indicador").

El 2º error - has introducido correctamente los parámetros a pasar al indicador en el mismo iCustom().

Esto es una teoría, pero para entenderlo en la práctica, mira el código de otros (la base de código está llena de ellos) y mira estos ejemplos.

Razón de la queja: