Помощь в кодировании - страница 595

 

извините, я пользуюсь онлайн переводчиком, и это может быть не всем понятно, извините еще раз.

 
v2812:
это степень наклона?

v2812

Это ерунда.

Измените горизонтальный масштаб (нажмите увеличение или уменьшение), и "угол" останется прежним, даже если он был изменен на графике. Как я уже говорил: забудьте об "углах" в финансовых временных рядах. Есть только некоторые приближения (как то, которое я сделал, когда это приближение к изменению цены над некоторым средним изменением диапазона), но нет ничего, что можно назвать точным математическим углом, когда оси x и y системы координат не используют одни и те же единицы.

 

Я хотел, чтобы при изменении масштаба графика наклон этой линии оставался неизменным, показывая силу движения moving averag

 

Смотрите, на рисунке V5- линия показывает наклон 69,0. На рисунке V6 я уменьшил масштаб, но наклон линии неизменно 69,0. Предположим, что при угле 69,0 тренд сильный, и мы узнаем об этом при любом масштабе графика. Мне это нужно.

Файлы:
 
v2812:
Смотрите, на рисунке V5- линия показывает наклон 69.0. На рисунке V6 я уменьшил масштаб, но наклон линии неизменно 69,0. Предположим, что угол 69,0 - тренд сильный, и мы узнаем это при любом масштабе графика. Мне это нужно.

v2812

Пожалуйста, прочитайте этот пост: https: //www.mql5.com/en/forum/173056/page3

Надеюсь, это поможет вам понять, с чем мы имеем дело. Всего наилучшего

 

если это не степень, а то, что она неизменна, то есть вы можете знать, что от 30 до 80, например - сильный тренд, независимо от масштаба графика, если точка зеленая(от 30 до 80), значит растет сильный тренд

 

Может быть, это не степень, а конкретное значение в цифрах. Означает привязку цветных точек к диапазону этих чисел

 
on my own:
Я не думаю, что вы можете синхронизировать две вещи, которые не являются синхронными (тики от двух разных символов).

Хорошо, но я могу игнорировать синхронизацию тиков, поскольку я ссылаюсь на завершенный ценовой бар последнего закрытия.

Один вопрос:

Когда переменная 'limit' равна 1, это означает, что я рассматриваю последний бар, запомненный в массивах таймсерий с индексом, равным 1 для обеих валют,

То есть это бары, которые только что завершились.

Как на них может влиять тик текущего бара?

 
twinumbers:

Хорошо, но я могу игнорировать синхронизацию тиков, поскольку я ссылаюсь на завершенный ценовой бар последнего закрытия.

Один вопрос:

Когда переменная 'limit' равна 1, это означает, что я рассматриваю последний бар, запомненный в массивах таймсерий с индексом, равным 1 для обеих валют,

Таким образом, это бары, которые только что завершились.

Как на них может влиять тик текущего бара?

Как узнать, что цена другого символа актуальна?

 
apprentice coder:
Как узнать, что цена другого символа актуальна?

Вот код:

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 Red

#property indicator_width1 2

double Buffer[];

//int bars;

//+------------------------------------------------------------------+

//| Пользовательская функция инициализации индикатора |

//+------------------------------------------------------------------+

int OnInit()

{

//--- отображение буферов индикатора

IndicatorBuffers(1);

SetIndexBuffer(0, Buffer,INDICATOR_DATA);

ArrayInitialize(Buffer,EMPTY_VALUE);

ArraySetAsSeries(Buffer,True);

//---

return(INIT_SUCCEEDED);

}

//+------------------------------------------------------------------+

//| Пользовательская функция итерации индикатора |

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,

const int prev_calculated,

const datetime &time[],

const double &open[],

const double &high[],

const double &low[],

const double &close[],

const long &tick_volume[],

const long &volume[],

const int &spread[])

{

//---

if(prev_calculated == 0)

{

int i = rates_total-prev_calculated-1;

for (;i>0;i--)

Buffer = close-(iClose("GBPUSD", 0, i));

// bars = iBars("GBPUSD",0);

}

else

{

if(rates_total > prev_calculated)

// if( (rates_total > prev_calculated) && (iBars("GBPUSD",0) > bars) )

{

int limit = rates_total-prev_calculated;

Buffer[limit] = close[limit]-(iClose("GBPUSD", 0, limit));

// bars = iBars("GBPUSD",0);

Print("GBP: "+iClose("GBPUSD", 0, limit));

Print("EUR: "+close[limit]);

Print("limit: "+limit);

}

}

//--- возвращаем значение prev_calculated для следующего вызова

return(rates_total);

}

при наступлении каждого нового бара я печатаю цену закрытия последней свечи EURUSD и GBPUSD, иногда случается, что печатаемая цена отличается от цены закрытия последней свечи.

Более того, если я накладываю индикатор на график второй раз, то видно разницу в индикаторе графика между ним и предыдущим.

Причина обращения: