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.
#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 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))
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.
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
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.
Trollers:) Uma sugestão melhor seria colocar os preços em um loop. Assim, armazenar em arrays.
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.
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?
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?
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.
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.
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