Ошибки 4001 и 4102. Вызовы из OnCalculate. - страница 2

 
Rashid Umarov:

Ну хоть бы один привел детали - в каком месте вызывается и при каких условиях. Вижу у Victor Ziborov

То есть индикатор висел на графике, потом терминал перезагрузили. Верно?

В функции OnInit() кроме прочих обязательных строк...

   colors[0] = (color)ChartGetInteger(0, CHART_COLOR_CANDLE_BEAR, 0);
   PlotIndexSetInteger(0, PLOT_LINE_COLOR, 0, colors[0]);
   colors[1] = (color)ChartGetInteger(0, CHART_COLOR_CANDLE_BULL, 0);
   PlotIndexSetInteger(0, PLOT_LINE_COLOR, 1, colors[1]);
   colors[2] = (color)ChartGetInteger(0, CHART_COLOR_CHART_LINE, 0);
   PlotIndexSetInteger(0, PLOT_LINE_COLOR, 2, colors[2]);
   ChartGetInteger(0, CHART_COLOR_CHART_UP, 0, colorUP);
   ChartGetInteger(0, CHART_COLOR_CHART_DOWN, 0, colorDN);
   if(!ChartGetInteger(0, CHART_COLOR_BACKGROUND, 0, result))
    Print(__FUNCTION__, ", Error Code = ", GetLastError(), ", result=", result);
   if(!ChartSetInteger(0, CHART_COLOR_BACKGROUND, 0, colorUP))
    Print(__FUNCTION__, ", Error Code = ", GetLastError(), ", result=", colorDN);

Выделенное добавлено для проверки.

В функции OnDeinit()

void OnDeinit(const int reason)
{
 if(reason != 2 && reason != 3 && reason != 5)
  {
   ChartSetInteger(0, CHART_COLOR_CANDLE_BEAR, 0, colors[0]);
   ChartSetInteger(0, CHART_COLOR_CANDLE_BULL, 0, colors[1]);
   ChartSetInteger(0, CHART_COLOR_CHART_LINE, 0, colors[2]);
   ChartSetInteger(0, CHART_COLOR_CHART_UP, 0, colorUP);
   ChartSetInteger(0, CHART_COLOR_CHART_DOWN, 0, colorDN);
   if(!ChartSetInteger(0, CHART_COLOR_BACKGROUND, 0, result))
    Print(__FUNCTION__, ", Error Code = ", GetLastError(), ", result=", result);
  }
}/*******************************************************************/


Каюсь, распечатку ошибки добавил только сегодня. Но это ни о чём не говорит.

И, простите повторю, индикатора нет, но график свойства которого читаются или назначаются есть... Хотя работу с другим графиком, не тем на который брошен индикатор, не проверял. У Виктора в коде

ChartGetInteger(chart_ID,CHART_COLOR_BACKGROUND,0,result);

текущий график или нет???

 

Hello.

You have other account, but seller status in that account has been revoked.

Therefore we have registered your current account as a seller.

 
Customer:

Hi Hooshang


Regarding 2.11, 

7. Not opening new trade after closing existing is still not working according to my check. I inserted few images to show. 

This is one peculiar example which I've not been able to find any answer. I attached set file for check.

In this testing, working TF filters set to false. First signal was opened after D1 confirmed. But after this trade is closed, EA didn't open new trade when D1 is still valid. 

look at image below, it shows ea entered 3 trades for same filter tf signal, in my tests there is no signal on nzdusd for that period your image shows


8. Can you allow to display TAW1 BUY/SELL  and TAW2 BUY/SELL text under/above candles immediately after filter timeframe confirms this signal? I realised that this text only appears when a trade is opened in workingTF. 

in new version it shows filter tf signals as they happen (it will not show old signals in history)


9. Reactivation of trade: When drag in EA, is it possible show a message or an indication that a buy or sell condition is met in D1 filter timeframe and EA is currently looking for a trade. Simplest would be to show TAW 1/2 Buy/Sell when drag in

no, it is not possible

10. Two arrows found; it seems to suggest that second arrow is a valid signal  and this second arrow didn't result in a trade because there could be only one active trade at one time

2 arrows happens to TAW1 and TAW 2 pattern

what is wrong with these arrows? we agreed to not enter new trade while old one is open


11. Recheck stochastic rule in both workingTF and filterTF

Strategy tester didn't reveal this as a valid buy signal for filterTF. I suspect it has to do with stochastic filter. 

In red font, please recheck this rule. 

it is not a valid signal


Customer:

12. For EA stopped looking for buy/sell trade in working TF, can I have an alert and a marking on chart to show that current buy/ sell in filterTF is stopped. 

At this moment, I don't know when current D1 filterTF has stopped looking for trade in a certain direction. So it's difficult for me to check. 

Message/Alert:    TAW Warning: Previous (Pair) D1 (bullish/ bearish) on date not valid. Stopped looking for (buy/sell) entry in H1. 

E.g. TAW Warning: Previous EURUSD D1 bullish on 22. 01.2018 not valid. Stopped looking for buy entry in H1. 

Plot a X mark in D1 chart. This X mark will also be shown in working TF. 

Therefore, once a buy/sell signal confirmed in D1 filter TF, it will write TAW 1/2 Buy/Sell. Once current signal is stopped, it will mark X. 

no it is not possible


v2.12

 

Moving slope rate of change - Extended:

Расширенная версия индикатора MSROC.

Автор: Mladen Rakic

 
Необходима консультация по проведению максимально качественной оптимизации советника и автоматизации процесса оптимизации настроек, и составление ТЗ для модификации советника по обсуждаемым параметрам. Нужна только консультация по выполнению работы. Само собой за небольшую стоимость никто это выполнять это не будет
 
 
Alexey Viktorov:

В функции OnInit() кроме прочих обязательных строк...

Выделенное добавлено для проверки.

В функции OnDeinit()

Каюсь, распечатку ошибки добавил только сегодня. Но это ни о чём не говорит.

И, простите повторю, индикатора нет, но график свойства которого читаются или назначаются есть... Хотя работу с другим графиком, не тем на который брошен индикатор, не проверял. У Виктора в коде

текущий график или нет???

Я вижу, был сбой в базе данных сайта: все посты удалились. Чтобы была какая-то логика в этой ветке, повторю свой ответ Алексею: да, текущий график, то есть chart_ID=0.
И повторю вывод, который я для себя сделал. Ошибка "Error Code = 4102" в моём случае происходила потому, что я обращался к свойствам чарта при инициализации индикатора OnInit().
То есть индикатор прикреплён к чарту, а затем происходит перезапуск терминала. Но при инициализации индикатор создаётся без привязки к конкретному чарту, поэтому во время инициализации нельзя обращаться к свойствам чарта.
К свойствам чарта следует обращаться в функции OnCalculate().

 
Victor Ziborov:
Я вижу, был сбой в базе данных сайта: все посты удалились. Чтобы была какая-то логика в этой ветке, повторю свой ответ Алексею: да, текущий график, то есть chart_ID=0.
И повторю вывод, который я для себя сделал. Ошибка "Error Code = 4102" в моём случае происходила потому, что я обращался к свойствам чарта при инициализации индикатора OnInit().
То есть индикатор прикреплён к чарту, а затем происходит перезапуск терминала. Но при инициализации индикатор создаётся без привязки к конкретному чарту, поэтому во время инициализации нельзя обращаться к свойствам чарта.
К свойствам чарта следует обращаться в функции OnCalculate().

Та не, там наверное маты были, и модератор почистил)
 
Vitaly Muzichenko:
Та не, там наверное маты были, и модератор почистил)
Не совсем. В то время как писали те посты, делали модернизацию сайта mql5.com. Теперь мы получили новый интерфейс (редактор) написания постов. Однако при модернизации сайта погибли те самые посты.