Pregunta para los entendidos - página 15

 
rid >> :

Así es como se hace:

Así que usted tiene StopLoss == TakeProfit y no hay tal opción en las condiciones de comparación ((

 
Creo que hay que contar desde Ask. Vender a la oferta, cerrar a la demanda.
 

Sí, - es muy posible que haya que cerrar Ask. Lo probaré.

Es decir, para vender el beneficio puede ser también de la oferta.

Y el stop loss - debería ser estrictamente de Ask, probablemente... el stop leveller debería ser contado

 

Buenas tardes a todos.

He aquí una pregunta.

¡Por alguna razón el Asesor Experto (Pips, Grider) en la cuenta real tiene la costumbre de dejar de funcionar de repente sin razón aparente! (DC Broko).

A veces sucede después de la caída del servidor (sucede a menudo allí), y después de la reanudación de las cotizaciones el Asesor Experto (o MT4) tiene que ser reiniciado y sólo entonces comienza a trabajar.

A veces el EA se detiene, de nuevo, sin razón aparente y hay que reiniciar mt4 o reinstalar el EA para "empujarlo".

Los pedidos se realizan correctamente. No quiero tener que hacer una pregunta en el foro.

No hay errores en el LogFile. ¿Quién ha tenido problemas con esto, por favor, aconsejar?

No quiero plantear una pregunta al Servicio Técnico en el foro para no llamar la atención sobre mi cuenta.

 
Cómo simplificar el patrón del artículo "Confiando en el poder de los patrones" eliminando SL, TP, órdenes pendientes y su modificación. De lo contrario, es imposible experimentar.
 
shap писал(а) >>
Cómo simplificar la plantilla del artículo "Confiar en el poder de las plantillas" eliminando SL, TP, órdenes pendientes y su modificación. De lo contrario, es imposible experimentar.

Este es el cuarto post con el mismo contenido. >> No es bueno.

 

Buenas noches. Pregunta sobre el indicador.

Estoy configurando el abanico de Gann de baja a alta y de baja a baja en el indicador.

Pero, por alguna razón, las líneas del abanico no se dirigen como yo quiero: ¡se dibujan al azar!

Por ejemplo, así (aquí el ventilador se ha movido hacia arriba desde el máximo de 1,4071 por alguna razón):

No sé por qué es así.

En la función STRAT he fijado las barras de la siguiente manera:

//задаем текущие значения ввера Ганна от минимума вверх
// и вычисляем масштаб веера
        ObjectMove( "GANNFAN_" ,0,Time[ xLOW], LOW);
        Масштаб_Веера_= MathAbs (MathSqrt(( LOW)*10000) ) ;

//задаем текущие значения ввера Ганна от максимума вниз
// и вычисляем масштаб веера
        ObjectMove( "GANNFAN" ,0,Time[ xHIGH], HIGH);
        Масштаб_Веера= (-1)* MathAbs(MathSqrt(( HIGH)*10000)  );

Por favor, dígame por qué y dónde está el error.

 

Aquí está todo el código para el indicador;

#property indicator_chart_window
//-------------------------------------------------------------------+
extern string     _  = "---- ОБЩИЕ ПАРАМЕТРЫ -----" ; 
extern int       Bars_=200;//кол-во баров для расчета формулы
extern int       TimeFr=0;//задаем тф для расчета
extern color     Цвет_Веера = DarkViolet;     
//--------------------------------------------------------------
int     xLOW, xHIGH;
double   HIGH, LOW ;
 double       Масштаб_Веера ;
 double       Масштаб_Веера_ ;
//+------------------------------------------------------------------+
int init()
  { 
//обьявляем веер Ганна от мин вверх  
ObjectCreate("GANNFAN_",OBJ_GANNFAN,0,0,0,0,0); 
//задаем флаг фонового отображения веера 
 ObjectSet("GANNFAN_", OBJPROP_BACK,1);
 //задаем цвет веера 
ObjectSet("GANNFAN_", OBJPROP_COLOR, Цвет_Веера);
//задаем толщину линий веера Ганна
ObjectSet("GANNFAN_", OBJPROP_WIDTH,2); 
 //задаем масштаб веера Ганна   
ObjectSet("GANNFAN_", OBJPROP_SCALE, Масштаб_Веера_); 

//обьявляем веер Ганна  от макс вниз 
ObjectCreate("GANNFAN",OBJ_GANNFAN,0,0,0,0,0); 
//задаем флаг фонового отображения веера 
 ObjectSet("GANNFAN", OBJPROP_BACK,1);
 //задаем цвет веера 
ObjectSet("GANNFAN", OBJPROP_COLOR, Цвет_Веера);
//задаем толщину линий веера Ганна
ObjectSet("GANNFAN", OBJPROP_WIDTH,2); 
 //задаем масштаб веера Ганна   
ObjectSet("GANNFAN", OBJPROP_SCALE, Масштаб_Веера);  
 
//задаем вертикальные линии от экстремумов 
ObjectCreate("line",OBJ_VLINE,0,0,0,0,0);//вертикальная линия от макс
ObjectSet("line", OBJPROP_BACK,1);
ObjectSet("line", OBJPROP_COLOR,Red);//цвет
ObjectSet("line", OBJPROP_WIDTH,2); //толщина линии
ObjectCreate("line_",OBJ_VLINE,0,0,0,0,0);//вертикальная линия от мин
ObjectSet("line_", OBJPROP_BACK,1);
ObjectSet("line_", OBJPROP_COLOR,Orange);//цвет
ObjectSet("line_", OBJPROP_WIDTH,2);//толщина линии 
  }//------конец функции ИНИТ

//+------------------------------------------------------------------+
int deinit() {
ObjectDelete("GANNFAN_");
ObjectDelete("GANNFAN");
ObjectDelete("line");
ObjectDelete("line_");
//if (!IsTesting()) ObjectsDeleteAll(0,OBJ_TREND);  
               }

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

int start()
  { 
 xHIGH =  iHighest( NULL, TimeFr, MODE_HIGH, Bars_ ,1); //номер бара максимума
 HIGH =  iHigh ( NULL, TimeFr, xHIGH) ;        // ценовое значение максимума
 xLOW  =  iLowest( NULL, TimeFr, MODE_LOW, Bars_ ,1);   //номер бара минимума
 LOW  =  iLow( NULL, TimeFr, xLOW) ;            // ценовое значение минимума
//задаем текущие горизонтальные лимнии на мин и макс
//ObjectMove( "lowline" ,0,Time[ xLOW] , LOW); 
//ObjectMove("highline",0,Time[ xHIGH], HIGH); 
        
 //задаем текущие значения ввера Ганна от
// минимума и вычисляем масштаб веера
   ObjectMove( "GANNFAN_" ,0,Time[ xLOW], LOW);
   Масштаб_Веера_= MathAbs (MathSqrt(( LOW)*10000) ) ;
        
//задаем значения для отрисовки вертик линии на минимуме
   ObjectMove( "line_" ,0,Time[ xLOW],0); 
        
          
//задаем текущие значения ввера Ганна от 
//максимума вниз и вычисляем масштаб веера
   ObjectMove( "GANNFAN" ,0,Time[ xHIGH], HIGH);
   Масштаб_Веера= (-1)* MathAbs(MathSqrt(( HIGH)*10000)  );
        
 //задаем значения для отрисовки вертик линии на максимуме
 ObjectMove( "line" ,0,Time[ xHIGH],0); 


   return(0);
  }//конец функции СТАРТ
 

Hola, este es sólo mi segundo post, es decir, un recién llegado al foro, comenzó a aprender el idioma, por supuesto, las preguntas abundan, y es un poco difícil de aprender de los libros. Empecé con un libro de texto, un respetado miembro del foro Sergei Kovalev, y algunos de los artículos de este foro estudiado ... Después de mucha teoría, comenzó la práctica, creó una plantilla y el esquema del primer experto, lo dividió en bloques, y ahora una función tras otra parse (a fondo) para entender cómo funciona, créanme si usted buceador en lugar de un programador, no es fácil de romper todo en mi cabeza, y para comprender qué a qué. Así que aquí está la cosa, ¿alguien puede sugerir que para mí Los profesionales hasta ahora, el verdadero problema: Hoy me senté todo el día y fue capaz de resolver el problema.

Estoy ejecutando algunas funciones como un script para comprobar si compilan y cuáles no funcionan o no en la terminal. Hoy en día la función de pre-cálculo de barras en la ventana:

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

int start()
  {
      int A = 100;
//+------------------------------------------------------------------+  
      if(Bars < A)             // Недостаточно баров
      {      
      Alert("Недостаточно баров в окне инструмента.");
      return;                  // Выход из start()
      }


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

Naturalmente sale el mensaje *No hay suficientes barras*, pero en un nuevo tick entiendo que este mensaje volverá a aparecer indefinidamente.

Ahora añado una variable y añado una sentencia if, y en un futuro bloque de error Bloc_Error, pongo una sentencia switch y obtengo esto:

int start()
  {
      int A = 100;
      bool Work=true;   
//+------------------------------------------------------------------+      
      int Bloc_Error    // Пользовательская функция
//+------------------------------------------------------------------+      
    switch()           // Преодолимые ошибки:
      {
      case 3:          // Неверные параметры:
      Work=false;
      return(0);
      }

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

      if(Bars < A)   // Недостаточно баров
      {      
      Alert("Недостаточно баров в окне инструмента.");
      return;                  // Выход из start()
      }
      if( Work==false)          // Ошибка   
      {      
      Alert("Эксперт не работает.");     
      return;                  // Выход из start   
      }
//+------------------------------------------------------------------+   
  return(0);
   }
La pregunta es qué he hecho mal aquí en la declaración del interruptor, por qué no está apareciendo el mensaje *Experto no funciona*, y para que el EA realmente deje de funcionar?????
 

"divide y vencerás"... - no mezcles puntos no examinados... el punto de error debería ser más fácil de identificar...

https://docs.mql4.com/ru/basis/operators/switch - todo se puede ver a la vez. hasta que el diseño esté fijado en su cabeza - utilice el patrón clásico. compárelo cuidadosamente - encontrará los errores inmediatamente.

Aprende a utilizar el motor de búsqueda.

Después de leer la documentación "sobre el tema", busque los textos con códigos y vea cómo se aplican...