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

 
keep87:

double get_extrem(int n) {

   for(int i=1;;i++) {

      double ind=iCustom(Symbol(),0,"indicator_name",0,i);

      if(n>1)  

         if(ind!=0) n--;

         else

         if(ind!=0) return(ind);

      }

   }


Si necesita el número de barra del pico, cambie el tipo de función a int y en lugar de return(ind); escriba return(i);

Esto es lo que estoy pensando en este momento. Todas las funciones de tipo double e int siempre devuelven valores fijos concretos. Por ejemplo, 1, 0, -1 y en este caso la condición debe ser manejada con esta función de manera diferente a como lo hice antes, por ejemplo

if(FindOrders() > 1)

{

   Ordersend(...........); 

} 

En este caso, tenemos que comparar, por ejemplo, para 3 tribus:

if (get_extrem(3) == ind)
{
   // Делаем что-то при выполнении заданного условия
}

¿Es esta la forma lógica de escribirlo? ¿Quizás sea más razonable poner el tipo bool a esta función? Como: si hemos encontrado la tercera rodilla, entonces al precio (por debajo o por encima de ind) compramos o vendemos.

Y en este caso comparamos la función con su parámetro n-rodilla con el precio en esta rodilla, ¿y luego qué?

 
hoz:

Estoy pensando en ello en este momento. Todas mis funciones de tipo double e int siempre devuelven valores fijos específicos. Por ejemplo, 1, 0, -1, pero en este caso la condición debe ser realizada con esta función de una manera diferente a la que hice antes, como:

En este caso, tenemos que comparar, por ejemplo, para 3 tribus:

¿Es esta la forma lógica de escribirlo? ¿Quizás sea más razonable poner el tipo bool a esta función? Como: si hemos encontrado la tercera rodilla, compramos o vendemos a un precio (menor o mayor que ind).

En este caso, comparamos la función con su parámetro n rodilla con el precio en esta rodilla, ¿y luego qué?



double ind=iCustom(Symbol(),0,"indicator_name",0,i);

Doble ind puede devolver -2, -3 y así sucesivamente e incluso Pi 3.14159......

Y en este caso, estamos comparando la función con sus parámetros de n-rodillas con el precio en esta rodilla, y entonces ¿qué? No es del todo claro....

 
hoz:

Estoy pensando en ello en este momento. Todas mis funciones de tipo double e int siempre devuelven valores fijos específicos. Por ejemplo, 1, 0, -1, pero en este caso la condición debe ser realizada con esta función de una manera diferente a la que hice antes, como:

En este caso, tenemos que comparar, por ejemplo, para 3 tribus:

¿Es esta la forma lógica de escribirlo? ¿Quizás sea más razonable poner el tipo bool a esta función? Como: si hemos encontrado la tercera rodilla, entonces al precio (por debajo o por encima de ind) compramos o vendemos.

Y en este caso comparamos la función con su parámetro n-umbral con el precio en esta rodilla, ¿y luego qué?



Pues no, prueba a experimentar...... es todo una mierda......
 
Sepulca:


Doble ind puede devolver -2, -3 y así sucesivamente e incluso Pi 3.14159......

Y en este caso, comparamos la función con sus parámetros de n rodillas con el precio en esta rodilla, ¿y luego qué?


¿Por qué debemos hacerlo de repente? Double ind devolverá un número fraccionario... y -2, -3 ... son enteros. Y según entiendo,Double ind es el precio de la rodilla en elparámetroget_extrem(int n)
 
Sepulca:



Este sitio no es para comerciar... Se dedica principalmente a la programación MQL. Si te fijas en muchos códigos incluso advierten "No para el comercio real".

Y dónde está el profe que comercia como un profe. Y si los administradores se enteraran de esta manera, creo que no se molestarían en mantener el sitio...))

Como los guisantes en la pared ).

Lo que necesitamos es un ejemplo de compra adecuada, en cualquier periodo de tiempo elegido al azar.

Sí, no escriben para el comercio real... ¿Y qué, y por qué?

Por qué no mostrar un ejemplo de una operación real, sin anunciar la estrategia.

O, en principio, no hay un ejemplo adecuado.

 

Buenas tardes. Me pueden decir cómo obtener el parámetro Heiken Ashi(HA) Hi-Lo (amplitud) del indicador correspondiente . He intentado manejar las variables globales, pero no es tan fácil. En el código de HA he incrustado conseguir de la siguiente manera

int inicio()

{

double haOpen, haHigh, haLow, haClose

...

GlobalVariableGet(pip);

...(este es el código estándar con el cálculo de HA)

a continuación obtenemos los parámetros de las velas Hi-Lo HA

result2=MathMin(ExtMapBuffer3[pos+1],ExtMapBuffer4[pos+1])

result22=MathMax(ExtMapBuffer3[pos+1],ExtMapBuffer4[pos+1]);

resultado3=MathMin(Low[pos+1],resultado2);

resultado33=MathMax(Alto[pos+1],resultado22);

resultado0=resultado33-resultado3; / cálculo de la amplitud de la HA

GlobalVariableSet (pip,resultado0);/asignar valor de amplitud a globalVariableSet (pip,resultado0)

pos--;

}

//----

return(0);

}

Entonces sólo insertoGlobalVariableGet(pip) en la fórmula en EA,pero algo está totalmente mal, es decir, el valor de pip no es lo que debería ser. Por favor, dime qué pasa. O tal vez sea más fácil conseguir la amplitud de HA para el funcionamiento de EA.

 
Saludos a todos. Yo mismo soy nuevo en la programación, así que por favor, resuelve el problema.

Es necesario que varios EAs en la misma cuenta, abran un número limitado de órdenes.

Por ejemplo: 10 EAs pero sólo pueden abrir 5 órdenes, pero no más de una por par de divisas.

Esto se implementa de la siguiente manera, pero no funciona así.

extern int МаксКолОрдеров   = 5;

//+------------------------------------------------------------------+

int ПодсчетОткрОрдеров() {
  int k=OrdersTotal();
   if (Символ=="0") Символ=Symbol();
    for (int i=МаксКолОрдеров; i<k; i++) {
     if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==Символ || Символ=="") {
       if (МагикНомер<0 || OrderMagicNumber()==МагикНомер) {
      if (OrderMagicNumber()<1) return(True);
     }
    }
   }
  }
 return;

}

//+------------------------------------------------------------------+
int start()
  {
   if(ПодсчетОткрОрдеров()==0)ПровТоргУсловий();
   }

 
evgenGX:

1. Me han preguntado más arriba sobre las variables globales, gracias. Estoy leyendo la documentación. En su versión, ¿cómo se hace?

2. Quiero que el Asesor Experto no vuelva a entrar en el mercado después de alcanzar un beneficio, hasta la confirmación manual de la autorización para operar.


1. Se controla el nivel de beneficios en cada barra. Si supera el porcentaje especificado del depósito, se cierran todas las operaciones.

2. Vea y edite este Asesor Experto, añada un filtro en magik y todo lo que necesite...


 

Ayúdame a completar el código. Intenté escribir un código que diga:

-si la MA50 cruza la MA200 de abajo a arriba y luego

-si el precio baja a МА50

-Se dibujan dos líneas en el gráfico, la de soporte y la de resistencia (dibujadas para las últimas 15 barras);

Es como si todo funciona, pero no puedo asegurar que estas líneas han aparecido la primera vez, a continuación, se mantuvo en su lugar, es necesario que el algoritmo de negociación(y siguen siendo dibujados).

¿Puedo atarlos a la hora o a la barra?

Aquí está el código. ¿Qué tengo que añadir?

#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


bool  Fact_1 = false;                    // Глобальная перемен для бай.   
bool  Fact_2 = false;                    // Глобальная перемен для бай
bool  Fact_3 = false;                    // Глобальная перемен для бай

double support;
double resist;

 int timeFrame = 5;
 int numBars = 15;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----

  ObjectsDeleteAll(); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----


   //---------------------------------------------------------------------------
if (Fact_3==true)                            //Если событие уже..
         
                                              //..было, то выходим
     return(0);
 
//----

  //---- БЛОК ОТКРЫТИЯ  BUY--------------------------------------------------------------
 
 if (iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,2)<iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0)&&
iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,1)>=iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0))//если МА50 пересекает МА200 снизу вверх по M5
Fact_1 = true;       // Произошло событие 1 
//-
if (Fact_1 == true &&  Low[0]<= iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,0))//если цена опустилась до МА50
 Fact_2 = true; // Произошло событие 2 
 if (Fact_2 == true)

{
// Определяем линии поддержки\сопротивления
  support = 10000;
  resist = 0;
 
  for(int u = 1;u<=numBars;u++)
  {
   if(support>iLow(Symbol(),timeFrame,u))
     support = iLow(Symbol(),timeFrame,u);
   if(resist<iHigh(Symbol(),timeFrame,u))
     resist = iHigh(Symbol(),timeFrame,u);
  }  
   ObjectSet("lineSupport",OBJPROP_PRICE1,support);
  ObjectSet("lineResist",OBJPROP_PRICE1,resist);
 
 }


 //----
  {
    ObjectCreate("lineSupport",OBJ_HLINE,0,0,0);
    ObjectSet("lineSupport",OBJPROP_COLOR,Blue);
   
    ObjectCreate("lineResist",OBJ_HLINE,0,0,0);
    ObjectSet("lineResist",OBJPROP_COLOR,Red);
    }
//----

//что сюда добавить что бы линии появившись, оставались на месте?




//----
   return(0);
  }

 

Qué pasará, qué puede pasar si

comprar, vender sin especificar un margen para el deslizamiento.Normalmente se ponen +- 2 puntos.

La respuesta es una recotización.

Y si no se establece un valor de deslizamiento, ¿se garantiza la compra?

Razón de la queja: