Alexey Kozitsyn: Ну.. не думаю, что нужно так глубоко копать, а вот про запрос в цикле - это действительно первое, что бросается в глаза.
А если ему эти данные разово получать нужно, или раз в час? Зачем лишний раз делать бесполезный цикл?
Мы, никто из нас, кроме самого вопрошающего, не знаем чего ж он хочет. Поэтому советовать можно лишь то, что ему посоветовали - пойти почитать в клубе телепатов свои упущения при постановке вопроса. И не обижаться на тех, кто поржать малость решил.
#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));} // Теперь хорошо бы узнать угол
}
как енто дело загнать в цикл,чтоб отображался не только один день,а на истории ,извертелся весь как змей чото не чего не получается,интерес технический ,аж весь чешусь))
пересечение МА происходит между барами - поймал наглядный пример
МА на барах левее и правее пересечения отличается от цены в точке пересечения. Как понял, вопрошающему нужно значение точно в точке пересечения вместо значения на одном из соседних баров. Точно это значение можно получить использованием линейной интерполяции - ведь МА между барами строится отрезками прямой. Или взять координаты каждой МА на соседних барах. Построить аналитически 2 прямые линии и рассчитать точку их пересечения. Можно произвести расчет рассматривая 2 подобных треугольника. Возникает встречный вопрос - зачем это нужно? Сопоставимы ли затраты с ценностью результата? Ведь при минимальном изменении параметров МА точки пересечения сдвинутся. Скорее всего, это требует руководитель курсового проекта
Ну.. не думаю, что нужно так глубоко копать, а вот про запрос в цикле - это действительно первое, что бросается в глаза.
А если ему эти данные разово получать нужно, или раз в час? Зачем лишний раз делать бесполезный цикл?
Мы, никто из нас, кроме самого вопрошающего, не знаем чего ж он хочет. Поэтому советовать можно лишь то, что ему посоветовали - пойти почитать в клубе телепатов свои упущения при постановке вопроса. И не обижаться на тех, кто поржать малость решил.
Троллеры:) Лучше бы посоветовали в цикле получать цены. Соответственно, хранить в массивах.
На мой взгляд проще так
Alert выводит сразу на экран. Это конец таблицы
А вопрос читали? Похоже мимо ушей пропустили.
Просто нужно было сразу ответить что мой вопрос Вам не ясен.А вы "соль,перец..." Обидо
Прочтите мой первый вам ответ. В нём был вопрос вам. Если бы ответили внятно, может и другой разговор был бы.
О КАКИХ сигналах вы спрашивали?
И при чём тут данные свечей?
как енто дело загнать в цикл,чтоб отображался не только один день,а на истории ,извертелся весь как змей чото не чего не получается,интерес технический ,аж весь чешусь))
Подскажите как правильно и более точно получить цену где пересекаются между собой две машки
Пересечение между барами, а расчет ведется по барам. Или надо точнее? Можно провести интерполяцию, но надо ли? У медленной Ма то же значение.
Пересечение между барами, а расчет ведется по барам. Или надо точнее? Можно провести интерполяцию, но надо ли? У медленной Ма то же значение.
МА на барах левее и правее пересечения отличается от цены в точке пересечения. Как понял, вопрошающему нужно значение точно в точке пересечения вместо значения на одном из соседних баров. Точно это значение можно получить использованием линейной интерполяции - ведь МА между барами строится отрезками прямой. Или взять координаты каждой МА на соседних барах. Построить аналитически 2 прямые линии и рассчитать точку их пересечения. Можно произвести расчет рассматривая 2 подобных треугольника. Возникает встречный вопрос - зачем это нужно? Сопоставимы ли затраты с ценностью результата? Ведь при минимальном изменении параметров МА точки пересечения сдвинутся. Скорее всего, это требует руководитель курсового проекта