Escrevi ao SD, mas penso que vai demorar muito tempo a obter uma resposta.
Alguém poderia, por favor, verificar um tema deste tipo no seu testador?
Бары с одинаковым временем
Errors, MetaTrader 5 Client, Открыта, Начата: 2012.09.0302:28, #482547
Версия и битность терминала
Win32, Build 687
Описание проблемы
Встречаются бары с одинаковым временем в визуализаторе тестера
Последовательность действий
При запуске тестирования с 01.08.2012 на М15
Полученный результат
на графике тестера два раза выскакивает бар с датой 2012.08.0100:00:00
в свое время и между 2012.08.0101:00:00 и 2012.08.0101:15:00
Кстати хай у него тоже не совпадает с экраном
Дополнительные сведения
В терминале все нормально.
Прикрепленные файлы:
Boa tarde. Pode aconselhar-me, escrevi um indicador simples... e quando chega uma nova barra, é assim que a linha indicadora se comporta. Qual poderá ser o problema?
O código indicador:
//+------------------------------------------------------------------+ //| Liniya_Trenda.mq5 | //| Второй индикатор | //+------------------------------------------------------------------+ #property copyright "Линейный график цен баров, двух выбранных валютных пар" #property version "1.00" #property description "Пользователь может выбрать по какой цене строить линию графика" #property indicator_separate_window // Отображение в новом окне #property indicator_buffers 2 // Количество буферов (1 линия - 1 буфер) #property indicator_plots 2 // Количество массивов (1 линия - 1 массив) //--- Укажем тип линий #property indicator_label1 "FirstAktiv" // Название линии индикатора #property indicator_type1 DRAW_LINE // Тип линии - линия #property indicator_style1 STYLE_SOLID // Стиль линии - сплошная #property indicator_color1 clrMediumBlue // Цвет линии #property indicator_width1 2 // Толщина линии #property indicator_label2 "SecondAktiv" // Название линии индикатора #property indicator_type2 DRAW_LINE // Тип линии - линия #property indicator_style2 STYLE_SOLID // Стиль линии - сплошная #property indicator_color2 clrRed // Цвет линии #property indicator_width2 2 // Толщина линии
enum ChangePrice{Open, High, Low, Close}; // Предоставим пользователю выбор цены по которой будет строиться график
//--- Входные параметры input string FirstAktiv ="EURUSD"; // Тикер первого актива, по которому будем строить график цен input string SecondAktiv ="GBPUSD"; // Тикер второго актива, по которому будем строить график цен input ChangePrice WantPrice = Close; // Цена построения по умолчанию
//--- Глобальные переменные double LinePriceBuffer1[]; // Массив для хранения данных линейного графика double LinePriceBuffer2[]; // Массив для хранения данных линейного графика
//+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { SetIndexBuffer(0,LinePriceBuffer1,INDICATOR_DATA); // Указывает, что массив будет являться буфером индикатора IndicatorSetString(INDICATOR_SHORTNAME,FirstAktiv); SetIndexBuffer(1,LinePriceBuffer2,INDICATOR_DATA); // Указывает, что массив будет являться буфером индикатора IndicatorSetString(INDICATOR_SHORTNAME,SecondAktiv); return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, // Передаем общее количество баров на текущем графике const int prev_calculated, // Количество баров для которых уже рассчитаны значения индикатора const int begin, // номер начала достоверного отсчёта баров const double &price[]) { // Расчёт стартового номера first для цикла пересчёта баров int first; // Проверка на первый старт расчёта индикатора if(prev_calculated == 0) { first = begin; // стартовый номер для расчёта всех баров } else { first = prev_calculated - 1; // стартовый номер для расчёта новых баров }
// Объявим массив который будет содержать цены, объемы и спред для каждого бара MqlRates mrate1[]; MqlRates mrate2[]; // Копируем данные по барам в массив CopyRates(FirstAktiv,PERIOD_CURRENT,0,rates_total,mrate1); CopyRates(SecondAktiv,PERIOD_CURRENT,0,rates_total,mrate2);
Boa tarde. Pode aconselhar-me, escrevi um indicador simples... e quando chega uma nova barra, é assim que a linha indicadora se comporta. Qual poderá ser o problema?
O código indicador:
// Объявим массив который будет содержать цены, объемы и спред для каждого бара MqlRates mrate1[]; MqlRates mrate2[];
Bem, para começar, deve especificar o tamanho das matrizes...
ilunga: Ну для начала стоит указать размеры массивов..
Obrigado.
Apontei-o, mas não ajudou.
Esqueci-me de mencionar que a construção do indicador se torna novamente normal(as linhas indicadoras correspondem aos valores de preço a que são desenhadas) se a área do ecrã for ligeiramente deslocada para a esquerda.
Por outras palavras, se "remover" as primeiras barras do ecrã, o indicador é bem desenhado. Assim que o indicador é deslocado todo para a direita, acontece que se trata de um erro.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Os servidores MC estão a funcionar bem?
Audi actual.
Talvez o PositionSelect não tenha sido feito imediatamente antes da chamada - é por isso que devolve dados antigos.
Escrevi ao SD, mas penso que vai demorar muito tempo a obter uma resposta.
Alguém poderia, por favor, verificar um tema deste tipo no seu testador?
Faz com que os objectos no renderizador dancem.
Talvez seja só eu...
Boa tarde. Pode aconselhar-me, escrevi um indicador simples... e quando chega uma nova barra, é assim que a linha indicadora se comporta. Qual poderá ser o problema?
O código indicador:
//+------------------------------------------------------------------+
//| Liniya_Trenda.mq5 |
//| Второй индикатор |
//+------------------------------------------------------------------+
#property copyright "Линейный график цен баров, двух выбранных валютных пар"
#property version "1.00"
#property description "Пользователь может выбрать по какой цене строить линию графика"
#property indicator_separate_window // Отображение в новом окне
#property indicator_buffers 2 // Количество буферов (1 линия - 1 буфер)
#property indicator_plots 2 // Количество массивов (1 линия - 1 массив)
//--- Укажем тип линий
#property indicator_label1 "FirstAktiv" // Название линии индикатора
#property indicator_type1 DRAW_LINE // Тип линии - линия
#property indicator_style1 STYLE_SOLID // Стиль линии - сплошная
#property indicator_color1 clrMediumBlue // Цвет линии
#property indicator_width1 2 // Толщина линии
#property indicator_label2 "SecondAktiv" // Название линии индикатора
#property indicator_type2 DRAW_LINE // Тип линии - линия
#property indicator_style2 STYLE_SOLID // Стиль линии - сплошная
#property indicator_color2 clrRed // Цвет линии
#property indicator_width2 2 // Толщина линии
enum ChangePrice{Open, High, Low, Close}; // Предоставим пользователю выбор цены по которой будет строиться график
//--- Входные параметры
input string FirstAktiv ="EURUSD"; // Тикер первого актива, по которому будем строить график цен
input string SecondAktiv ="GBPUSD"; // Тикер второго актива, по которому будем строить график цен
input ChangePrice WantPrice = Close; // Цена построения по умолчанию
//--- Глобальные переменные
double LinePriceBuffer1[]; // Массив для хранения данных линейного графика
double LinePriceBuffer2[]; // Массив для хранения данных линейного графика
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SetIndexBuffer(0,LinePriceBuffer1,INDICATOR_DATA); // Указывает, что массив будет являться буфером индикатора
IndicatorSetString(INDICATOR_SHORTNAME,FirstAktiv);
SetIndexBuffer(1,LinePriceBuffer2,INDICATOR_DATA); // Указывает, что массив будет являться буфером индикатора
IndicatorSetString(INDICATOR_SHORTNAME,SecondAktiv);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total, // Передаем общее количество баров на текущем графике
const int prev_calculated, // Количество баров для которых уже рассчитаны значения индикатора
const int begin, // номер начала достоверного отсчёта баров
const double &price[])
{
// Расчёт стартового номера first для цикла пересчёта баров
int first;
// Проверка на первый старт расчёта индикатора
if(prev_calculated == 0)
{
first = begin; // стартовый номер для расчёта всех баров
}
else
{
first = prev_calculated - 1; // стартовый номер для расчёта новых баров
}
// Объявим массив который будет содержать цены, объемы и спред для каждого бара
MqlRates mrate1[];
MqlRates mrate2[];
// Копируем данные по барам в массив
CopyRates(FirstAktiv,PERIOD_CURRENT,0,rates_total,mrate1);
CopyRates(SecondAktiv,PERIOD_CURRENT,0,rates_total,mrate2);
for(int i = first; i < rates_total; i++)
{
if(WantPrice == Open)
{
LinePriceBuffer1[i] = mrate1[i].open;
LinePriceBuffer2[i] = mrate2[i].open;
}
if(WantPrice == High)
{
LinePriceBuffer1[i] = mrate1[i].high;
LinePriceBuffer2[i] = mrate2[i].high;
}
if(WantPrice == Low)
{
LinePriceBuffer1[i] = mrate1[i].low;
LinePriceBuffer2[i] = mrate2[i].low;
}
if(WantPrice == Close)
{
LinePriceBuffer1[i] = mrate1[i].close;
LinePriceBuffer2[i] = mrate2[i].close;
}
}
//--- return value of prev_calculated for next call
return(rates_total);
}
Boa tarde. Pode aconselhar-me, escrevi um indicador simples... e quando chega uma nova barra, é assim que a linha indicadora se comporta. Qual poderá ser o problema?
O código indicador:
// Объявим массив который будет содержать цены, объемы и спред для каждого бара
MqlRates mrate1[];
MqlRates mrate2[];
Escrevi ao SD, mas penso que vai demorar muito tempo a obter uma resposta.
Alguém poderia, por favor, verificar um tema deste tipo no seu testador?
Faz com que os objectos no renderizador dancem.
Talvez seja só eu...
ilunga:
Ну для начала стоит указать размеры массивов..
Obrigado.
Apontei-o, mas não ajudou.
Esqueci-me de mencionar que a construção do indicador se torna novamente normal(as linhas indicadoras correspondem aos valores de preço a que são desenhadas) se a área do ecrã for ligeiramente deslocada para a esquerda.
Por outras palavras, se "remover" as primeiras barras do ecrã, o indicador é bem desenhado. Assim que o indicador é deslocado todo para a direita, acontece que se trata de um erro.
Já fixado. Esperar pela construção.
Os servidores MC estão a funcionar bem?
Audi actual.
A julgar pelo USDLFX - este é o problema da Lyforex, não da MQ
Observador ))))
Expert.Connected on MK.On lite foi muito bom.