Alexey Kozitsyn: Bueno... no creo que haya que profundizar tanto, pero la petición en bucle es realmente lo primero que llama la atención.
¿Y si necesita estos datos una vez, o una vez por hora? ¿Por qué hacer un bucle inútil?
Ninguno de nosotros, salvo el propio interrogador, sabe lo que quiere. Así que sólo podemos aconsejarle lo que se le aconsejó: ir a leer en un club de telepatía sus fallos en la formulación de la pregunta. Y no se ofenda por los que decidieron reírse un poco.
#property indicator_chart_windowexternint boom = 1;
//=================================void fishka(int ma,int mi,double map,double mip) // ф-ция
{
ObjectCreate("Макс_Мин",OBJ_TRENDBYANGLE,0, Time[ma], map, Time[mi], mip);// Проводим линиюObjectSet("Макс_Мин",OBJPROP_RAY,false); // Выключить свойство бесконечного луча
}
int deinit()
{
ObjectsDeleteAll();// Удалим все объектыreturn(0);
}
void start()
{
string Символ = "GBPUSD";
datetime Первый, Последний;
int Период=PERIOD_H1;
Последний = iTime(Символ, Период, 0);// Прежде всего узнаем дату и время последнего бараif(boom){
Alert("Последний бар на часовом ",Последний);}
MqlDateTime MqlПервый; // Теперь получить начало суток, обнулив часыTimeToStruct(Последний,MqlПервый); // Для этого преобразуем время последнего бара в структуру
MqlПервый.hour=0;
Первый=StructToTime(MqlПервый); // Терерь надо обратно преобразовать во времяif(boom){
Alert("Первый бар на часовом ",Первый);} // Смотрим начало первого бара сутокint НомерПервого=iBarShift(Символ, PERIOD_H1,Первый);// По времени определим номер первого бара сутокif(boom){
Alert("Первый бар на часовом под номером ",НомерПервого);}
// Можно было просто узнать время начала бара на D1// Теперь у нас есть НомерПервого бара, а номер послелнего = 0// Найдем на этом интервале номера баров, где макс и мин// iHighest и iLowest находят номер бара с макс и мин ценойint БарМакс = iHighest(Символ, // symbol = инструмента
Период, // timeframe = ПериодMODE_HIGH, // Наибольшая цена бара
НомерПервого+1, // Количество баров0); // Начальный барint БарМин = iLowest(Символ,Период,MODE_LOW,НомерПервого+1,0); // Наименьшая цена бараif(boom){
Alert("Максимальный бар = ", БарМакс, " Минимальный бар = ", БарМин);}
double max_price=iHigh(Символ, Период, БарМакс); // iHigh и iLow дают макс и мин цены указанного бараdouble min_price=iLow (Символ, Период, БарМин);
fishka(БарМакс,БарМин,max_price,min_price); // ф-цияif(boom){
Alert("Максимум цены = ", max_price, " Минимум цены = ", min_price);
Alert("Угол = ", ObjectGetDouble(0,"Макс_Мин",OBJPROP_ANGLE));} // Теперь хорошо бы узнать угол
}
como ponerlo en bucle para mostrar no solo un día sino el historial, todo retorcido como una serpiente no funciona, el interés es técnico, me pica))
missha32: Por favor, aconséjeme cómo obtener un precio correcto y más preciso cuando dos máquinas se cruzan entre sí
La intersección está entre las barras y el cálculo se basa en ellas. ¿O necesita ser más preciso? Se puede interpolar, pero ¿es necesario hacerlo? El lento Ma tiene el mismo valor.
Intersección entre barras, y el cálculo se realiza barra por barra. ¿O necesita ser más preciso? Podrías interpolar, pero ¿deberías hacerlo? Slow Ma tiene el mismo valor.
En esta figura, MA1(1)>MA2(1) y MA1(2)<=MA2(2) es el hecho del cruce. La barra entre paréntesis muestra la barra en la que se toman MA1 y MA2
El cruce de MA se produce entre barras - cogió un claro ejemplo
La MA de las barras a la izquierda y a la derecha del cruce es diferente del precio en el punto de cruce. Entiendo que el que pregunta quiere el valor en el punto exacto de cruce en lugar del valor en una de las barras vecinas. Este valor exacto puede obtenerse mediante interpolación lineal, ya que la MA entre barras se construye como segmentos de línea recta. O tomar las coordenadas de cada MA en barras adyacentes. Construye analíticamente 2 rectas y calcula su punto de intersección. Se puede calcular considerando 2 triángulos similares. Surge una pregunta contraria: ¿por qué lo necesitamos? ¿Son los costes proporcionales al valor del resultado? Al fin y al cabo, los puntos de intersección se moverán si los parámetros del MA se modifican mínimamente. Lo más probable es que lo exija el director del proyecto de curso
Bueno... no creo que haya que profundizar tanto, pero la petición en bucle es realmente lo primero que llama la atención.
¿Y si necesita estos datos una vez, o una vez por hora? ¿Por qué hacer un bucle inútil?
Ninguno de nosotros, salvo el propio interrogador, sabe lo que quiere. Así que sólo podemos aconsejarle lo que se le aconsejó: ir a leer en un club de telepatía sus fallos en la formulación de la pregunta. Y no se ofenda por los que decidieron reírse un poco.
Trollers:) Una mejor sugerencia sería poner los precios en un bucle. Por lo tanto, se almacenan en matrices.
En mi opinión, es más sencillo así
Las salidas de alerta son inmediatas a la pantalla. Este es el final de la tabla
¿Has leído la pregunta? Parece que se lo ha perdido.
Deberías haber contestado simplemente que mi pregunta no era clara para ti. Y tú "sal, pimienta..." Ofensiva
Lee mi primera respuesta, era una pregunta para ti. Si hubieras respondido con claridad, la conversación podría haber sido diferente.
¿Qué tipo de señales preguntabas?
¿Y qué tiene que ver esto con los datos de las velas?
como ponerlo en bucle para mostrar no solo un día sino el historial, todo retorcido como una serpiente no funciona, el interés es técnico, me pica))
Por favor, aconsejar cómo obtener un precio correcto y más preciso para donde las dos máquinas se cruzan
La intersección está entre las barras y el cálculo se basa en ellas. ¿O necesita ser más preciso? Se puede interpolar, pero ¿es necesario hacerlo? El lento Ma tiene el mismo valor.
Intersección entre barras, y el cálculo se realiza barra por barra. ¿O necesita ser más preciso? Podrías interpolar, pero ¿deberías hacerlo? Slow Ma tiene el mismo valor.
La MA de las barras a la izquierda y a la derecha del cruce es diferente del precio en el punto de cruce. Entiendo que el que pregunta quiere el valor en el punto exacto de cruce en lugar del valor en una de las barras vecinas. Este valor exacto puede obtenerse mediante interpolación lineal, ya que la MA entre barras se construye como segmentos de línea recta. O tomar las coordenadas de cada MA en barras adyacentes. Construye analíticamente 2 rectas y calcula su punto de intersección. Se puede calcular considerando 2 triángulos similares. Surge una pregunta contraria: ¿por qué lo necesitamos? ¿Son los costes proporcionales al valor del resultado? Al fin y al cabo, los puntos de intersección se moverán si los parámetros del MA se modifican mínimamente. Lo más probable es que lo exija el director del proyecto de curso