Dibujar un cuadrado o un rectángulo. Realmente necesito ayuda... - página 8

 
evillive:

He dado un ejemplo de un script de trabajo, tenemos que añadir flechas y líneas de tendencia a la misma, y volver a hacerlo para H4 en lugar de mes. Lo único que hay que hacer es alejarse del concepto de indicador y mirar el problema desde un ángulo diferente.

Esta línea fue tomada del guión. El guión es muy útil. Gracias.

La línea de tendencia se traza para todo el periodo pero en línea recta. Necesito que vaya de alto en alto. "Valla" es.

        ObjectCreate    (0,Name_Obj + " V_Line" + DoubleToStr(i,0), OBJ_TREND, 0, t_Line, mqlRates[0].high, t_Line,mqlRates[0].low);
 
AlexeyVik:

Leer la ayuda es lo que te ayuda a aprender el lenguaje de programación. Luego, si no entiendes algo de la ayuda, puedes hacer preguntas.

¿Cómo se puede aconsejar a una persona que no ha leído la documentación y no tiene ni idea de dónde colocar SetIndexStyle(0, DRAW_SECTION); y lo inserta en OnCalculate con desconcierto?

Sin experiencia, por eso cometes errores tontos.

Como dice Kiyosaki. Primero comete un error y luego lo analiza. Para entender lo que se hizo mal.

 
Alex_Profit:

Esta línea fue tomada del guión. El guión es muy útil. Gracias.

La línea de tendencia se dibuja para todo el periodo pero en línea recta. Necesito un subidón y un subidón. "Valla" es.

Piensa, cabeza, te voy a dar una tarta ))))

Aquí está enOBJ_TRENDy necesita leer la ayuda. ¿Qué línea debe obtenerse si el tiempo en ambos puntos es el mismo?

Y no, este no es mi guión.

 
evillive:

Este es elOBJ_TRENDy la ayuda debe ser leído, cómo y lo que hay. ¿Qué línea debe obtenerse si el tiempo en ambos puntos es el mismo?

Una línea recta, respectivamente.

No entiendo cómo encontrar el segundo punto de anclaje. También está claro dónde insertarlo.

 

Gracias por eso también. Has sido de gran ayuda. Es una lástima que no haya podido resolverlo todo, no queda mucho por hacer.

De todos modos, gracias por su capacidad de respuesta. Que tengas más beneficios y que pases un buen fin de semana.

 

Buenas tardes a todos. Pido ayuda a los expertos. Tengo este código.

Por favor, indique qué debe corregirse para que la línea de tendencia se dibuje en los máximos del TF diario.

Realmente lo necesito. Por favor, ayuda.

#property indicator_chart_window
#property strict
extern int   limit = 30;
extern bool  Sho_bars = true;
string txt = "TRADE_";
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
int deinit()
  {
   GetDellName (txt);
   Comment("");
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int limits;
   int counted_bars=IndicatorCounted();   
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limits = Bars-counted_bars;        
//----
   if(limits>0)                      
   {
    for(int i=limit; i>=0; i--)
    {
     double   _High      = iHigh(Symbol(), 1440,i);   
     double   _Low       = iLow(Symbol(),  1440,i);   
     double   _Open      = iOpen(Symbol(), 1440,i);   
     double   _Close     = iClose(Symbol(),1440,i);                
     datetime _Time_Open = iTime(Symbol(), 1440,i);      // Открытие бара
     //datetime _start_day = 11*60*60;                   // Начало дня  
     datetime _End_Day   = 1440*60;                      // Конец дня 
       
     string   _Time_Open_txt  = TimeToStr(_Time_Open,TIME_DATE ); // Преобразуем время открытия в строку   
     if(Sho_bars)
      {
       // Функция рисующая объекты на графике
       TrendLineGraff(txt + _Time_Open_txt +" start_day",_Time_Open,_High,_Time_Open,_Low);                      // левая граница     
       TrendLineGraff(txt + _Time_Open_txt +" End_Day",_Time_Open + _End_Day,_High,_Time_Open + _End_Day, _Low); // правая граница           
       TrendLineGraff(txt + _Time_Open_txt +" High",_Time_Open,_High,_Time_Open + _End_Day,_High);               // верхняя граница  
       TrendLineGraff(txt + _Time_Open_txt +" Low",_Time_Open,_Low,_Time_Open + _End_Day,_Low);                  // нижняя граница      
       
       TrendLineGraff(txt + _Time_Open_txt + " T_Line", _Time_Open, _Open, _Time_Open + _End_Day, _Close);
      }          
   }
 }  
   return(0);
  }
//+------------------------------------------------------------------+
//| Функция отображения трендовой линии                              |
//+------------------------------------------------------------------+
 void TrendLineGraff(string labebe,datetime time1,double price1,datetime time2,double price2)
  {
   if (ObjectFind(labebe)!=-1) ObjectDelete(labebe);
   ObjectCreate(labebe, OBJ_TREND, 0,time1,price1,time2,price2);
   ObjectSet(labebe, OBJPROP_COLOR,clrDarkOrchid);
   ObjectSet(labebe, OBJPROP_STYLE,0);
   ObjectSet(labebe, OBJPROP_RAY,0);
   ObjectSet(labebe, OBJPROP_BACK, true);
  }
//+------------------------------------------------------------------+
//| Функция удаляет объекты                                          |
//+------------------------------------------------------------------+

 void GetDellName (string name_n = "ytg_")
  {
   string vName;
   for(int i=ObjectsTotal()-1; i>=0;i--)
    {
     vName = ObjectName(i);
     if (StringFind(vName,name_n) !=-1) ObjectDelete(vName);
    }  
  }
//+------------------------------------------------------------------+
 
Alex_Profit:

Buenas tardes a todos. Pido ayuda a los expertos. Tengo este código.

Por favor, indique qué debe corregirse para que la línea de tendencia se dibuje en los máximos del TF diario.

Realmente lo necesito. Por favor, ayuda.

Cuando se trabaja con datos de una TF ajena, las barras deben calcularse a partir de ésta. Pero esta lección no sirve de nada...

¡¡iBars()!!

Y en lugar de borrar los objetos, podemos dar a todos los objetos un prefijo único (en este caso es"TRADE_") y borrarlos todos a la vez en deinit con la función ObjectsDeleteAll().

Aquí está: datetime _End_Day = 1440*60;// Fin de Día - no es "Fin de Día" en absoluto, es dos meses después ))) El valor del "final del día" no es necesario, porque es el comienzo del día siguiente y el indicador traza la línea allí de todos modos.

 
evillive:

Cuando se trabaja con datos de otro TF, las barras deben contarse también desde ese TF. Pero la lección no es útil...

¡¡iBars()!!

Lo siento. Pero sigo sin entenderlo. ¿Puedo arreglarlo en el código?

Y también como ejemplo. Siempre es más fácil con ejemplos.

Realmente lo necesito. Gracias.

 
Alex_Profit:

Lo siento. Pero sigo sin entenderlo. ¿Podemos arreglarlo en el código?

Y también como ejemplo. Siempre es más fácil con ejemplos.

Realmente lo necesito. Gracias.

¿Cuál es el resultado? ¿Funcionó?
Razón de la queja: