Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
MK sunucuları yaramaz mı?
Mevcut Audi.
Belki PositionSelect çağrıdan hemen önce yapılmamıştır - bu eski verilerdir ve geri döner.
SD'ye yazdım, ancak cevap vermenin uzun zaman alacağını hissediyorum.
Lütfen birisi test cihazınızda bu konuyu kontrol etsin:
Bu nedenle, oluşturucudaki nesneler dans eder.
Belki sadece benim...
Güzel gün. Söyle bana basit bir gösterge yazdım.. ve yeni bir çubuk geldiğinde gösterge satırının bu davranışı ortaya çıkıyor. Sorun ne olabilir?
Gösterge kodu:
//+------------------------------------------------------------------+
//| 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);
}
Güzel gün. Söyle bana basit bir gösterge yazdım.. ve yeni bir çubuk oluştuğunda gösterge satırının bu davranışı ortaya çıkıyor. Sorun ne olabilir?
Gösterge kodu:
// Объявим массив который будет содержать цены, объемы и спред для каждого бара
MqlRates mrate1[];
MqlRates mrate2[];
SD'ye yazdım, ancak cevap vermenin uzun zaman alacağını hissediyorum.
Lütfen test cihazınızda bu konuyu kontrol edin:
Bu nedenle, oluşturucudaki nesneler dans eder.
Belki sadece benim...
ilunga :
Ну для начала стоит указать размеры массивов..
Teşekkür ederim.
İşaret etti, ancak yardımcı olmadı.
Ekran alanı biraz sola kaydırılırsa, göstergenin yapısının tekrar normale döndüğünü ( gösterge çizgileri çizildikleri fiyat değerlerine karşılık gelir) belirtmeyi unuttum.
Onlar. ilk çubukları ekrandan "kaldırırsanız", gösterge iyi çizilir. Tüm yolu sağa kaydırdığımız anda, böyle bir hata alıyoruz.
Zaten çözüldü. Yapıyı bekleyin.
MK sunucuları yaramaz mı?
Mevcut Audi.
USDLFX'e göre, bu MQ değil, bir lifeforex sorunudur.
gözlemci)))
Bir uzmanın peşindeyim.MK'ya bağlı.Işıkta bir düzen vardı.