Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 203

 
Alexey Kozitsyn:
Bem... acho que não precisamos cavar tão fundo, mas o pedido em um loop é realmente a primeira coisa que chama sua atenção.

E se precisar desses dados uma vez, ou uma vez por hora? Por que fazer um loop inútil?

Nenhum de nós, exceto o próprio autor da pergunta, sabe o que ele quer. Portanto, só podemos aconselhar o que ele foi aconselhado a fazer - ir e ler em um clube telepático suas falhas na formulação da pergunta. E não se ofendam por aqueles que decidiram rir um pouco.

 
Alexey Kozitsyn:
Trollers:) Uma sugestão melhor seria colocar os preços em um loop. Assim, armazenar em arrays.
Leia-o a seu gosto).
 
Você deveria ter respondido que minha pergunta não estava clara para você. E você "sal e pimenta..." Ressentimento
 
STARIJ:

Na minha opinião, é mais simples assim

Alerta de saída imediatamente para a tela. Este é o final da tabela


Você já leu a pergunta? Você parece ter perdido.
 
Romal001:
Você deveria ter respondido que minha pergunta não era clara para você. E você "sal, pimenta..." Ofensiva

Leia minha primeira resposta a você, foi uma pergunta para você. Se você tivesse respondido claramente, poderia ter sido uma conversa diferente.

Sobre que tipo de sinais você estava perguntando?

O que isso tem a ver com os dados das velas?

 
#property indicator_chart_window
extern int 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 colocá-lo em loop para exibir não apenas um dia, mas a história, tudo torcido como uma cobra não funciona, o interesse é técnico, eu estou com comichão))

 

Como você pode obter um preço correto e mais preciso para onde as duas máquinas se sobrepõem?


 
missha32:   Favor aconselhar como obter um preço correto e mais preciso onde duas máquinas se cruzam uma com a outra

A interseção é entre as barras, e o cálculo é baseado nas barras. Ou você precisa ser mais preciso? Você pode interpolar, mas você tem que? A mãe lenta tem o mesmo valor.

 
STARIJ:

A interseção entre as barras e o cálculo é feito barra por barra. Ou você precisa ser mais preciso? Você poderia interpolar, mas deveria? A Slow Ma tem o mesmo valor.

Nesta figura, MA1(1)>MA2(1) e MA1(2)<=MA2(2) é o fato de atravessar. A barra entre parênteses mostra a barra em que MA1 e MA2 são tomadas
 

A travessia de MA ocorre entre barras - um exemplo claro

O MA nas barras à esquerda e à direita do cruzamento é diferente do preço no ponto de passagem. Entendo que o questionador quer o valor no ponto exato de cruzamento ao invés do valor em uma das barras adjacentes. Este valor exato pode ser obtido usando interpolação linear - porque o MA entre barras é construído como segmentos de linha reta. Ou tomar as coordenadas de cada MA nas barras adjacentes. Construir analiticamente 2 linhas retas e calcular seu ponto de interseção. É possível calcular considerando 2 triângulos semelhantes. Surge uma pergunta contrária - por que precisamos dela? Os custos são proporcionais ao valor do resultado? Afinal, os pontos de interseção se moverão se os parâmetros MA forem mudados minimamente. O mais provável é que seja exigido pelo chefe do projeto do curso

Razão: