Guten Tag zusammen. Bitte helfen Sie mir, das folgende Problem zu lösen.
Auf der virtuellen Maschine befinden sich zwei MT5-Terminals. Einer arbeitet mit Broker A, der andere mit Broker B. Auf beiden Terminals läuft derselbe Bot. Bis gestern, als ich auf Version 2615 aktualisiert habe, war alles in Ordnung.
Das Terminal mit Makler A funktionierte und funktioniert immer noch, aber das Terminal mit Makler B hängt sich auf. Das heißt, nach dem Start funktioniert es für einige Zeit normal und hängt sich dann auf. In den Protokollen nach dem Aufhängen der folgende Eintrag:
PJ 1 11:18:36.886 Network '67003410': connection to RoboForex-ECN lost
MP 0 11:18:37.656 Network '67003410': authorized on RoboForex-ECN through Europe #2 (ping: 98.08 ms, build 2560)
RN 0 11:18:37.656 Network '67003410': previous successful authorization performed from 91.217.110.2 on 2020.09.22 07:16:34
DR 0 11:18:37.768 Network '67003410': terminal synchronized with RoboMarkets Ltd: 2 positions, 0 orders, 121 symbols, 0 spreads
IM 0 11:18:37.768 Network '67003410': trading has been enabled - hedging mode
EK 1 11:20:38.099 Network '67003410': connection to RoboForex-ECN lost
ES 0 11:20:38.674 Network '67003410': authorized on RoboForex-ECN through Europe #2 (ping: 98.08 ms, build 2560)
FQ 0 11:20:38.674 Network '67003410': previous successful authorization performed from 91.217.110.2 on 2020.09.22 07:18:36
FM 0 11:20:38.784 Network '67003410': terminal synchronized with RoboMarkets Ltd: 2 positions, 0 orders, 121 symbols, 0 spreads
GR 0 11:20:38.784 Network '67003410': trading has been enabled - hedging mode
OH 1 11:22:39.328 Network '67003410': connection to RoboForex-ECN lost
CR 3 11:22:55.243 NetDispatcher thread timeout reached possible deadlock [15]
Sagen Sie mir, haben die Entwickler von Metatrader 5 die Indikatorpuffer im letzten Update kaputt gemacht? Oder ist etwas mit meinem Kopf nicht in Ordnung?
Der Punkt ist, dass alle Pfeil-Indikatoren, die nicht über eine vollständige Neuberechnung auf einen neuen Balken haben begonnen, die gleiche Störung produzieren. Die Pfeile beginnen, sich wie Kaninchen auf den benachbarten Balken des neuen Balkens zu vermehren. Beispiel im Anhang.
Nur eine vollständige Neuberechnung des Indikators bei einem neuen Balken hilft.
//+------------------------------------------------------------------+//| test_arrow.mq5 |//| Efremov Konstantin |//| https://www.mql5.com/ru/users/leonardo4 |//+------------------------------------------------------------------+#property copyright"Efremov Konstantin"#property link"https://www.mql5.com/ru/users/leonardo4"#property version"1.00"#property indicator_chart_window//--- init indicator buffers#property indicator_buffers1#property indicator_plots1#property indicator_label1"Arrows"#property indicator_type1DRAW_ARROW#property indicator_color1clrLawnGreen#property indicator_style1STYLE_SOLID#property indicator_width11inputint History = 10; // История, дней double Arrows[];
int cnt_bars;
int HistoryCandle;
bool FirstStartFlag;
int bar, limit;
datetime counted_bar;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- indicator buffers mappingSetIndexBuffer (0,Arrows,INDICATOR_DATA);
ArraySetAsSeries (Arrows,true);
PlotIndexSetInteger (0,PLOT_DRAW_TYPE,DRAW_ARROW);
PlotIndexSetInteger (0,PLOT_LINE_COLOR,clrDodgerBlue);
PlotIndexSetString (0,PLOT_LABEL,"Arrows");
PlotIndexSetInteger (0,PLOT_ARROW,233);
IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
//--- Рассчитываем количество свечей истории текущего таймфрейма от настройки "дней"
HistoryCandle = History*24*60*60/PeriodSeconds(PERIOD_CURRENT);
cnt_bars = HistoryCandle; // Кол-во баров для подсчета сигналов
FirstStartFlag = true;
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
ChartRedraw(0);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
//---ArraySetAsSeries(close,true);
ArraySetAsSeries(open,true);
ArraySetAsSeries(low,true);
if(HistoryCandle>=rates_total) cnt_bars=rates_total-1;
else cnt_bars=HistoryCandle;
//----+ проверка количества баров на достаточность для корректного расчёта индикатораif(rates_total<=cnt_bars)
{
Print("Недостаточно истории. Есть "+IntegerToString(rates_total-1)+" надо "+IntegerToString(cnt_bars));
return(0);
}
//--- инициализация индикаторного буфера if(FirstStartFlag)
{
//--- обнулим все буферы стрелок и времени от мусора for(int x=cnt_bars; x>=0 && !IsStopped(); x--) Arrows[x] = EMPTY_VALUE;
FirstStartFlag = false;
ChartRedraw(0);
}
if(prev_calculated>rates_total || prev_calculated<=0) // проверка на первый старт расчёта индикатора
{
limit=cnt_bars-1; // стартовый номер для расчёта всех баров
}
else limit=rates_total-prev_calculated; // стартовый номер для расчёта новых баровif(rates_total != prev_calculated) Arrows[0] = EMPTY_VALUE;
for(bar=limit; bar>=0 && !IsStopped(); bar--)
{
if(close[bar+1]>open[bar]+5*_Point) {Arrows[bar]=NormalizeDouble(low[bar]-5*_Point,_Digits);}
}
MqlRates rates[];
MqlTick tick;
SymbolInfoTick(Symbol(),tick);
CopyRates(Symbol(),PERIOD_CURRENT,0,1,rates);
double i;
long m,s;
m=rates[0].time+GetMinute()*60-tick.time;
i=m/60.0;
s=m%60;
m=(m-m%60)/60;
Comment(" Candle: "+IntegerToString(m,0,' ')+" m "+IntegerToString(s,0,' ')+" s left");
if(iTime( _Symbol, PERIOD_M1, 0 ) > counted_bar )
{
counted_bar = iTime( _Symbol, PERIOD_M1, 0 );
ChartRedraw(0);
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+int GetMinute()
{
switch(Period())
{
casePERIOD_M1: return(1);
casePERIOD_M2: return(2);
casePERIOD_M3: return(3);
casePERIOD_M4: return(4);
casePERIOD_M5: return(5);
casePERIOD_M6: return(6);
casePERIOD_M10: return(10);
casePERIOD_M12: return(12);
casePERIOD_M15: return(15);
casePERIOD_M20: return(20);
casePERIOD_M30: return(30);
casePERIOD_H1: return(60);
casePERIOD_H2: return(120);
casePERIOD_H3: return(180);
casePERIOD_H4: return(240);
casePERIOD_H6: return(360);
casePERIOD_H8: return(480);
casePERIOD_H12: return(720);
casePERIOD_D1: return(1440);
casePERIOD_W1: return(10080);
casePERIOD_MN1: return(43200);
}
return(1);
}
Sagen Sie mir, haben die Entwickler von Metatrader 5 die Indikatorpuffer im letzten Update kaputt gemacht? Oder ist etwas mit meinem Kopf nicht in Ordnung?
Der Punkt ist, dass alle Pfeil-Indikatoren, die nicht über eine vollständige Neuberechnung auf einen neuen Balken haben begonnen, die gleiche Störung produzieren. Die Pfeile beginnen, sich wie Kaninchen auf den benachbarten Balken des neuen Balkens zu vermehren. Beispiel im Anhang.
Nur eine vollständige Neuberechnung des Indikators bei einem neuen Balken hilft.
Ersetzen Sie diesen Unsinn
//--- инициализация индикаторного буфера if(FirstStartFlag)
{
//--- обнулим все буферы стрелок и времени от мусора for(int x=cnt_bars; x>=0 && !IsStopped(); x--) Arrows[x] = EMPTY_VALUE;
FirstStartFlag = false;
ChartRedraw(0);
}
>>Esgibt zwei MT5-Terminals auf dervirtuellen Maschine.Einer arbeitet mit Broker A, der andere mit Broker B. Auf beiden Terminals läuft >>derselbe Bot. Bis gestern war alles in Ordnung, bis ich auf Version 2615 aktualisiert habe.
Ich habe Version 2560 zurückbekommen, alles funktioniert einwandfrei, keine Hänger oder Deadlocks.
Reagieren die Entwickler überhaupt auf Nachrichten?
Виртуальный хостинг для MetaTrader 4/5 является лучшим VPS-решением для Форекса. Оно не требует настройки, дает минимальные задержки до сервера и отличается низкими ценами. Всего за 15 USD в месяц вы получите виртуальную платформу, которая работает круглые сутки, экономит вашу прибыль и даже окупает себя. Создать удаленную копию приложения...
>>Esgibt zwei MT5-Terminals auf dervirtuellen Maschine.Einer arbeitet mit Broker A, der andere mit Broker B. Auf beiden Terminals läuft >>derselbe Bot. Bis gestern war alles in Ordnung, bis ich auf Version 2615 aktualisiert habe.
Ich habe die Version 2560 zurück, alles funktioniert einwandfrei, kein Einfrieren oder Deadlocks.
Reagieren die Entwickler überhaupt auf Nachrichten?
Haben Sie technische Details gemeldet, die zu verstehen oder zu reproduzieren sind?
Fragen ohne Details bleiben fast immer unbeachtet.
Guten Tag zusammen. Bitte helfen Sie mir, das folgende Problem zu lösen.
Auf der virtuellen Maschine befinden sich zwei MT5-Terminals. Einer arbeitet mit Broker A, der andere mit Broker B. Auf beiden Terminals läuft derselbe Bot. Bis gestern, als ich auf Version 2615 aktualisiert habe, war alles in Ordnung.
Das Terminal mit Makler A funktionierte und funktioniert immer noch, aber das Terminal mit Makler B hängt sich auf. Das heißt, nach dem Start funktioniert es für einige Zeit normal und hängt sich dann auf. In den Protokollen nach dem Aufhängen der folgende Eintrag:
PJ 1 11:18:36.886 Network '67003410': connection to RoboForex-ECN lost MP 0 11:18:37.656 Network '67003410': authorized on RoboForex-ECN through Europe #2 (ping: 98.08 ms, build 2560) RN 0 11:18:37.656 Network '67003410': previous successful authorization performed from 91.217.110.2 on 2020.09.22 07:16:34 DR 0 11:18:37.768 Network '67003410': terminal synchronized with RoboMarkets Ltd: 2 positions, 0 orders, 121 symbols, 0 spreads IM 0 11:18:37.768 Network '67003410': trading has been enabled - hedging mode EK 1 11:20:38.099 Network '67003410': connection to RoboForex-ECN lost ES 0 11:20:38.674 Network '67003410': authorized on RoboForex-ECN through Europe #2 (ping: 98.08 ms, build 2560) FQ 0 11:20:38.674 Network '67003410': previous successful authorization performed from 91.217.110.2 on 2020.09.22 07:18:36 FM 0 11:20:38.784 Network '67003410': terminal synchronized with RoboMarkets Ltd: 2 positions, 0 orders, 121 symbols, 0 spreads GR 0 11:20:38.784 Network '67003410': trading has been enabled - hedging mode OH 1 11:22:39.328 Network '67003410': connection to RoboForex-ECN lost CR 3 11:22:55.243 NetDispatcher thread timeout reached possible deadlock [15]Warum tritt ein Kompilierungsfehler auf?
Warum tritt ein Kompilierzeitfehler auf?
doppelt
doppelt
Okay, danke.
Geprüft ist sie.
Sagen Sie mir, haben die Entwickler von Metatrader 5 die Indikatorpuffer im letzten Update kaputt gemacht? Oder ist etwas mit meinem Kopf nicht in Ordnung?
Der Punkt ist, dass alle Pfeil-Indikatoren, die nicht über eine vollständige Neuberechnung auf einen neuen Balken haben begonnen, die gleiche Störung produzieren. Die Pfeile beginnen, sich wie Kaninchen auf den benachbarten Balken des neuen Balkens zu vermehren. Beispiel im Anhang.
Nur eine vollständige Neuberechnung des Indikators bei einem neuen Balken hilft.
Sagen Sie mir, haben die Entwickler von Metatrader 5 die Indikatorpuffer im letzten Update kaputt gemacht? Oder ist etwas mit meinem Kopf nicht in Ordnung?
Der Punkt ist, dass alle Pfeil-Indikatoren, die nicht über eine vollständige Neuberechnung auf einen neuen Balken haben begonnen, die gleiche Störung produzieren. Die Pfeile beginnen, sich wie Kaninchen auf den benachbarten Balken des neuen Balkens zu vermehren. Beispiel im Anhang.
Nur eine vollständige Neuberechnung des Indikators bei einem neuen Balken hilft.
Ersetzen Sie diesen Unsinn
mit diesem Unfug.
>>Esgibt zwei MT5-Terminals auf dervirtuellen Maschine.Einer arbeitet mit Broker A, der andere mit Broker B. Auf beiden Terminals läuft >>derselbe Bot. Bis gestern war alles in Ordnung, bis ich auf Version 2615 aktualisiert habe.
Ich habe Version 2560 zurückbekommen, alles funktioniert einwandfrei, keine Hänger oder Deadlocks.
Reagieren die Entwickler überhaupt auf Nachrichten?
>>Esgibt zwei MT5-Terminals auf dervirtuellen Maschine.Einer arbeitet mit Broker A, der andere mit Broker B. Auf beiden Terminals läuft >>derselbe Bot. Bis gestern war alles in Ordnung, bis ich auf Version 2615 aktualisiert habe.
Ich habe die Version 2560 zurück, alles funktioniert einwandfrei, kein Einfrieren oder Deadlocks.
Reagieren die Entwickler überhaupt auf Nachrichten?
Haben Sie technische Details gemeldet, die zu verstehen oder zu reproduzieren sind?
Fragen ohne Details bleiben fast immer unbeachtet.