오류, 버그, 질문 - 페이지 840

 

MK 서버가 장난꾸러기입니까?

현 아우디.

 
kazakov.v :

호출 직전에 PositionSelect가 수행되지 않았을 수 있습니다. 이는 이전 데이터이며 반환됩니다.

아니, 이건 아니야. 호출하기 전에 Refresh()가 필요한지 확인하겠습니다.
 

SD에 글을 썼는데 답변이 오래걸릴 것 같아서요.

누군가 테스터에서 이 주제를 확인하세요.

Бары с одинаковым временем

Errors, MetaTrader 5 Client, Открыта, Начата: 2012.09 . 03 02 : 28 , # 482547 
Версия и битность терминала
Win32, Build 687
Описание проблемы
Встречаются бары с одинаковым временем в визуализаторе тестера
Последовательность действий
При запуске тестирования с 01.08 . 2012 на М 15
Полученный результат
на графике тестера два раза выскакивает бар с датой 2012.08 . 01 00 : 00 : 00
в свое время и между 2012.08 . 01 01 : 00 : 00 и   2012.08 . 01 01 : 15 : 00 
Кстати хай у него тоже не совпадает с экраном 
Дополнительные сведения
В терминале все нормально.
Прикрепленные файлы:

  




이 때문에 렌더러의 개체가 춤을 춥니다.

저만 그럴수도...

 

안녕하세요. 말해봐, 내가 간단한 인디케이터를 썼는데.. 그리고 새로운 바가 오면 인디케이터 라인의 이런 행동이 뜬다. 무엇이 문제가 될 수 있습니까?

표시기 코드:


//+------------------------------------------------------------------+
//| 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);
}

 
faton :

안녕하세요. 말해봐, 내가 간단한 인디케이터를 썼는데.. 그리고 새로운 바가 생겼을 때 인디케이터 라인의 이런 행동이 뜬다. 무엇이 문제가 될 수 있습니까?


표시기 코드:


// Объявим массив который будет содержать цены, объемы и спред для каждого бара
MqlRates mrate1[];
MqlRates mrate2[];


음, 우선 배열의 크기를 지정해야 합니다.
 
pronych :

SD에 글을 썼는데 답변이 오래걸릴 것 같아서요.

누군가 테스터에서 이 주제를 확인하세요.

이 때문에 렌더러의 개체가 춤을 춥니다.

저만 그럴수도...

이미 수정되었습니다. 빌드를 기다립니다.
 

ilunga :
 Ну для начала стоит указать размеры массивов..

고맙습니다.

지적했지만 도움이되지 않았습니다.

화면 영역이 약간 왼쪽으로 이동하면 표시기 구성이 다시 정상화된다는 점을 잊어버렸습니다( 표시기 선은 표시 되는 가격 값에 해당함).

저것들. 화면에서 첫 번째 막대를 "제거"하면 표시기가 잘 그려집니다. 오른쪽으로 끝까지 이동하자마자 이러한 버그가 발생합니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов - Документация по MQL5
 
stringo :
이미 수정되었습니다. 빌드를 기다립니다.
네, 고마워요.
 
Karlson :

MK 서버가 장난꾸러기입니까?

현 아우디.

USDLFX로 판단하면 이것은 MQ가 아니라 LiteForex의 문제입니다.
 
notused :
USDLFX로 판단하면 이것은 MQ가 아니라 lifeforex 문제입니다.

관찰)))

전문가를 쫓는 중이야 MK에 연결돼 있어 방금 신호가 떴어.