[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 123

 
Gracias por tu ayuda, he sustituidoOrdersTotal() porOrdersHistoryTotal(). Ha funcionado.
 

Para los que entienden mql4 más que yo, por favor, ayuda. Hay 3 preguntas.

1.Primero en la doble constante. Todos hemos conocido el iMa, las máscaras, la media móvil/ La cuestión es: Asignación incorrecta de valores.

Ejemplo:

extern string  MA1="";
extern string  MA2="";
extern string  MA3="";
string com;


double MA1 = iMA(NULL,PERIOD_M15,9,0,0,0);
double MA2 = iMA(NULL,PERIOD_M15,15,0,0,0);
double MA3 = iMA(NULL,PERIOD_M15,21,0,0,0);

if (MA1>MA2 && MA1!=MA2 && MA1>MA3 && MA1!=MA3 ) com="значение1";
if (MA1<MA2 && MA1==MA2 && MA1<MA3 && MA3!=MA3 ) com="значение2";

Así que el valor todo el tiempo será = valor1. El código se niega obstinadamente a entender != (no igual)

2. Pregunta /Búsqueda de apertura de cierre/.

Lo que quiero del programa pero no funciona.

1.Comprobar la condición (verdadero ; falso)

2. Si existe esa orden, no la abrimos; si no existe, la abrimos. Lo abrimos en base a la condiciónOrderComment().

3. Comprobación Si se produce el evento X o Y , cierre. X-(por ejemplo otra señal iMA1>iMA2, Y-otra señal iMA2>iMA3)

Así lo hago yo pero no sale nada.

if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3)
{
   for (int i=1;i<=OrdersTotal(); i++)       
       {
        if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
           {
            if (OrderComment()=="значение1")return(0);
            else
            {
            OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,com,Magic,0,Red);
            }
           }
       } 
}

Y como cerrar no entiendo donde insertar.

3. Pregunta sobre el desplazamiento (int shift)

En el segundo grupo de iMA, cambio la barra actual relativa hacia atrás por 3) Lo que para, de modo que cuando una señal descrita anteriormente, no abrir órdenes repetidas en cada barra. Pero el cambio no se produce por alguna razón.

double MA1 = iMA(NULL,PERIOD_M15,9,0,0,0);
double MA2 = iMA(NULL,PERIOD_M15,15,0,0,0);
double MA3 = iMA(NULL,PERIOD_M15,21,0,0,0);

double MA4 = iMA(NULL,PERIOD_M15,9,0,0,3);
double MA5 = iMA(NULL,PERIOD_M15,15,0,0,3);
double MA6 = iMA(NULL,PERIOD_M15,21,0,0,3);

Por favor, ayúdenme con el conocimiento. No sé cómo usarlo. No sé en qué lugar de Internet existe una aplicación similar.

 
dertop:

Para los que entienden mql4 más que yo, por favor, ayuda. Hay 3 preguntas.

1.Primero por doble constante.

2. como cerrar no entiendo donde poner en absoluto.

3. Pregunta sobre el desplazamiento (int shift)

1. https://www.mql5.com/ru/articles/1561

2. si (condiciones de cierre) OrderClose(...)

3. Vea en qué consiste exactamente este cambio y a quiénes desplaza
 
ilunga:

1. https://www.mql5.com/ru/articles/1561

2. si (condiciones de cierre) OrderClose(...)

3. Vea qué es exactamente este cambio y a quiénes desplaza


Muchas gracias por una respuesta tan rápida.

Sobre el 1. Sí, lo tengo, vamos a cavar allí.

El 2.if (condiciones de cierre) OrderClose(...) (está claro sin él) Pero me confundí en if, what para where where y why....

Corregir si es incorrecto....

if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3)                                         // если true то заходим в тело цикла...
{
   for (int i=1;i<=OrdersTotal(); i++)                                                             //шаг2 проверяем все ордера на наличие ордера со значением1
       {
        if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
           {
            if (OrderComment()=="значение1")return(0);                                            // если орден найден то ничего не делаем
            else
            {
            OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,com,Magic,0,Red);   // а вот тут проблемы кто за чем идёт и куда вставить условие закрытие отдельно за телом всего условия (ma1;ma2 и тд), или там где OrderSelect()
            }
           }
       } 
}

El índice del valor obtenido del búfer del indicador (desplazamiento relativo a la barra actual por el número especificado de períodos hacia atrás). from mql4 help

 
dertop:


Muchas gracias por una respuesta tan rápida.

Por 2.if (condiciones de cierre) OrderClose(...) (eso se entiende sin él) Pero me confundo en if, what para where where y why....

Corregir si es incorrecto....


if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3)                                         // если true то заходим в тело цикла...
{
   for (int i=1;i<=OrdersTotal(); i++)                                                             //шаг2 проверяем все ордера на наличие ордера со значением1
       {
        if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
           {
            if (OrderComment()=="значение1")return(0);                                            // если орден найден то ничего не делаем
            else
            {
            OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,com,Magic,0,Red);   // а вот тут пока написано следующее: для каждого из ордеров у которого мы сюда зашли мы поставим еще один ордер
            }
           }
       } 
}
 
ilunga:

Lo siento, ¡para qué comprobar las desigualdades cuando la condición ya está dada! Esto ralentiza la lectura de las condiciones y su cumplimiento.

if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3)//MA1!=MA2 && и && MA2!=MA3 не нужны, т.к. в предыдущих сравнениях
                                                          //равенство ухе исключено! Так что нужно так:
if (MA1>MA2 && MA1<MA3 && MA2>MA3)
 
borilunad:

Lo siento, ¡para qué comprobar las desigualdades cuando la condición ya está dada! Esto ralentiza la lectura de las condiciones y su cumplimiento.


Hay algo extraño aquí.

if (MA1>MA2 && MA1<MA3 && MA2>MA3)

MA1>MA2 y MA2>MA3 y luego MA1<MA3

Sobre todo porque basta con

if (MA1>MA2 && MA2>MA3)
 
borilunad:

Lo siento, ¡para qué comprobar las desigualdades cuando la condición ya está dada! Esto ralentiza la lectura de las condiciones y su cumplimiento.


Lo siento, me he perdido un poco, no le he prestado atención al principio. Estos cálculos se realizan para 4 MAs, y hay casos en los que MA1>MA2 y en el momento en que MA3=MA4 (por lo que es necesario comprobarlo porque así es como se construye la estrategia)

if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2<MA3 && MA2!=MA3 && MA3<MA4 && MA3!=MA4)                                         // если true то заходим в тело цикла...
{
   for (int i=1;i<=OrdersTotal(); i++)                                                             //шаг2 проверяем все ордера на наличие ордера со значением1
       {
        if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
           {
            if (OrderComment()=="значение1")return(0);                                            // если орден найден то ничего не делаем
                else
                {
                if (OrderComment()!="значение1")                                                         // если такого ордера нету
                   {
                   OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,com,Magic,0,Red);   // тогда открываем
                   }
                }
         if (MA1<MA2 && MA1!=MA2 && MA1>MA3 && MA1!=MA3 && MA3>MA4 && MA3!=MA4)                          // если true новый сигнал
             {
            OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,CLR_NONE);               // тогда закрываем
             }

           }
       } 
}

Así?????

 
Vinin:


Hay algo extraño aquí.

MA1>MA2 y MA2>MA3 y luego MA1<MA3


Sí, lo siento, me confundí, es la primera vez que escribo en el foro. Primero copié, luego decidí escribir a mano y me confundí... pero el ejemplo anterior es correcto...

MA1>MA2 y MA1<MA3 y MA3<MA4

 

Buenas tardes.

Por favor, ayúdenme a modificar el indicador.

Tengo un Pivot estándar, me gustaría tener un indicador que calcule los niveles usando fórmulas estándar, pero usando los datos H, L, C que yo mismo introduzco.

Quiero utilizarlo como alternativa al Pivot estándar.