Скачать MetaTrader 5

iCustom что изменилось в новом билде?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Отслеживай все платежи в профиле. Это просто!
Farkhat Guzairov
909
Farkhat Guzairov 2014.03.01 14:47 

Всем доброго!

Есть индикатор, в билде 610 при размещении его на график проблем не вызывает но при вызове его через эксперта получаю фигню, заметил что строковые значения не передаются, что изменилось в это направлении?

string _F = "Строка 1", _P = "Строка 2";

CodeRun = iCustom(NULL, iTimeframe,iName,_F,iFraime,_P,iPeriod,false,....);

Буду признателен за помощь!

Farkhat Guzairov
909
Farkhat Guzairov 2014.03.01 16:00  
Млин, хоть убейся не передаются строки и все (((.
Vitalie Postolache
12145
Vitalie Postolache 2014.03.01 16:18  
gfm73:
Млин, хоть убейся не передаются строки и все (((.

А в виде "Строка 1","Строка 2" тоже не передаются?
Alexey Viktorov
6945
Alexey Viktorov 2014.03.01 16:21  

А ты не поленись и выложи extern переменные из индикатора и полную строку iCustom


ps; А как определил что не передаётся?

Farkhat Guzairov
909
Farkhat Guzairov 2014.03.01 16:41  

Ну что же начнем!

Вызов в боте:

void OnTick()
  {
//---
   string IndicatorName1 = "Indcator.07h-1";
   string _F = "1";
   string _P = "2";
   string _B = "3";
   string _L = "4";
   string ListPairs = "EUR,USD";
   double CodeRun = iCustom(NULL, 0,IndicatorName1,_F,15,_P,0,false,5,MODE_SMA,true,5,MODE_SMA,true,5,MODE_SMA, false,_B,301,_L,ListPairs, 7, 0);// 
   //double CodeRun = iCustom(NULL, 0,IndicatorName1,_F, 7, 0);// 
   
  }

В самом индикаторе проверяю получил ли я что-то или нет:

input string _F = "Количество фреймов";
input int sFraime = 60;
input string _P = "Период(времени)";
input int sPeriod = EMPTY;//PERIOD_M1;
input bool ShowL0 = false;//true;
input int L0PeriodMA = 13;
input int L0MethodMA = MODE_SMA;
input bool ShowL1 = true;
input int L1PeriodMA = 13;
input int L1MethodMA = MODE_SMA;
input bool ShowL2 = true;
input int L2PeriodMA = 13;
input int L2MethodMA = MODE_SMA;

input bool DrawOnlyMiddle = false;
input string _B = "Количество баров";
input int sBars = 300;
input string _L = "Список валют.";
input string ListPairs = "EUR,JPY,CAD,USD,GBP,AUD,CHF,NZD,OIL,CNY,TWD,KRW,INR,CNH,TRY,SGD,HKD,MXN,XAU,XAG";

int init()
  {
//---- indicators
   BaseSymbol = GetBasePairs(0, 3);
   SecondSymbol = GetBasePairs(3, 3);
   Print("Индюк -- ",ListPairs);

В журнале тестера данная строка пустая, при вызове индикатора через бот:

2014.03.01 20:31:19.804 DashBoardV0.07h-1 EURUSD,M1: Индюк -- 

Та же срока если я кидаю индикатор на график:

2014.03.01 20:25:16.866 DashBoardV0.07h-1 EURUSD,H1: Индюк -- EUR,JPY,CAD,USD,GBP,AUD,CHF,NZD,OIL,CNY,TWD,KRW,INR,CNH,TRY,SGD,HKD,MXN,XAU,XAG

И так повторяю вопрос, почему не получается передать строковые переменные через бот в индикатор????

Неужели ни у какого не возникало подобной проблемы?

Farkhat Guzairov
909
Farkhat Guzairov 2014.03.01 16:44  
AlexeyVik:

А ты не поленись и выложи extern переменные из индикатора и полную строку iCustom


ps; А как определил что не передаётся?


Ну как вы думаете как.... Да же не знаю как ответить на вопрос разве что так:

Индикатор

Alexey Viktorov
6945
Alexey Viktorov 2014.03.01 16:59  
gfm73:


Ну как вы думаете как.... Да же не знаю как ответить на вопрос разве что так:

Не совсем понимаю, ты вызываешь индикатор самого из себя?

Внешние переменные менять в коде, хоть и не желательно, но всё-же можно. Но вот значение на закладке "Входные параметры" изменить из вне невозможно.


Назначение функции iCustom() не для изменения этих параметров. Я что-то не понимаю...

Farkhat Guzairov
909
Farkhat Guzairov 2014.03.01 17:04  
AlexeyVik:
Не совсем понимаю, ты вызываешь индикатор самого из себя?

Внешние переменные менять в коде, хоть и не желательно, но всё-же можно. Но вот значение на закладке "Входные параметры" изменить из вне невозможно.


Назначение функции iCustom() не для изменения этих параметров. Я что-то не понимаю...

Где именно я указал что вызываю индикатор из самого себя?

Смотри пост выше, вызов индикатора из бота.

AlexeyVik, а можно не просто писать бред, а конструктивно и самое главное правильно задавать вопросы не путая себя и меня.

Farkhat Guzairov
909
Farkhat Guzairov 2014.03.01 17:06  

Всегда работала данная конструкция:

int start()
  {
//---
   string IndicatorName1 = "Indcator.07h-1";
   string _F = "1";
   string _P = "2";
   string _B = "3";
   string _L = "4";
   string ListPairs = "EUR,USD";
   double CodeRun = iCustom(NULL, 0,IndicatorName1,_F,15,_P,0,false,5,MODE_SMA,true,5,MODE_SMA,true,5,MODE_SMA, false,_B,301,_L,ListPairs, 7, 0);// 
   //double CodeRun = iCustom(NULL, 0,IndicatorName1,_F, 7, 0);// 
   
  }

В билде 610 это не работает!

Все переменные кроме строковых передаются нормально!!!

Alexey Viktorov
6945
Alexey Viktorov 2014.03.01 17:13  
gfm73:

Где именно я указал что вызываю индикатор сам себя?

Смотри пост выше, вызов из бота индикатора.

AlexeyVik, а можно не просто писать бред, а конструктивно и самое главное правильно задавать вопросы не путая себя и меня.

1. Ты не правильно понял, это не утверждение а вопрос с удивлением.

2. Тем не-менее скрин больше похож на свойства индикатора, чем на свойства советника.

3. Можно вообще не участвовать. Прежде чем нести бред, я пытаюсь понять что ты делаешь и что должен получить.

К телепатам тебя пошлют другие, я воздержусь.

Farkhat Guzairov
909
Farkhat Guzairov 2014.03.01 17:24  
AlexeyVik:

А ты не поленись и выложи extern переменные из индикатора и полную строку iCustom


ps; А как определил что не передаётся?


Помните этот вопрос? На него был ответ в виде скрина, соответственно на нем Вы видите окно индикатора, после вызова его через бот(тестер). Как видно переменные в нем пустые, хотя я передаю данные через бот!!!!

Надеюсь сейчас мне удалось ответить на Ваш вопрос?

Еще выше я подробно расписал все мои шаги и даже логи по результатам работы бота.

И главное :

Всегда работала данная конструкция:

int start()
  {
//---
   string IndicatorName1 = "Indcator.07h-1";
   string _F = "1";
   string _P = "2";
   string _B = "3";
   string _L = "4";
   string ListPairs = "EUR,USD";
   double CodeRun = iCustom(NULL, 0,IndicatorName1,_F,15,_P,0,false,5,MODE_SMA,true,5,MODE_SMA,true,5,MODE_SMA, false,_B,301,_L,ListPairs, 7, 0);// 
   //double CodeRun = iCustom(NULL, 0,IndicatorName1,_F, 7, 0);// 
   
  }
В билде 610 это не работает!

Все переменные кроме строковых передаются нормально!!!
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий