Ответить
21.02.2015, 17:36
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
VPS - это удаленный комп, на котором работает MT.
Мой сов при инициализации пробегает по ордерам и присваивает рабочим переменным нужные значения. Тем самым приводя свои настройки в подходящее состояние.
Далее обновляю их при изминении кол-ва ордеров, например.
Ваш способ тоже интересный. Не пользовался глобальными переменными.
Как они ведут себя в тестере?
И как быть в такой ситуации: робот не работал, а ситуация с ордерами изменилась (закрылись по стопам, открылись отложки и т.д.), после этого робот снова был включен. Причины перерыва в работе можно додумать.
21.02.2015, 18:12
Аватар для vladradon
vladradon vladradon вне форума Местный житель
Регистрация: 12.02.2015 / Сообщений: 401
Поблагодарили 198 раз(а) / Репутация: 205
VPS - это удаленный комп, на котором работает MT.
Мой сов при инициализации пробегает по ордерам и присваивает рабочим переменным нужные значения. Тем самым приводя свои настройки в подходящее состояние.
Далее обновляю их при изминении кол-ва ордеров, например.
Ваш способ тоже интересный. Не пользовался глобальными переменными.
Как они ведут себя в тестере?
И как быть в такой ситуации: робот не работал, а ситуация с ордерами изменилась (закрылись по стопам, открылись отложки и т.д.), после этого робот снова был включен. Причины перерыва в работе можно додумать.
Что такое VPS я знаю. Мой чемпионатовский сов 2012-го года занял почетное 50-е место среди более 3500 заявок из 112 стран мира по-моему (давно было).
Можно сочетать те функции, которые будут правильно восстанавливать инфу без сохранения во внешних файлах с теми, которые нужны при тех обстоятельствах, когда либо поднять по истории невозможно, либо это наоборот не нужно. Глобалки работают без проблем - это основные функции обоих языков. Только в некоторых случаях бывает необходимо их удалять - это касается тестов и оптимизации - просто в функции OnDeinit нужно прописать функции удаления ненужных переменных либо сразу всех. Это зависит от того, сколько сов параллельно используют глобалки. А вообще - пиши в скайп - ник тот же - так будет быстрее и без офиширования всех подробностей.
22.02.2015, 14:25
Аватар для Игoрь
Игoрь Игoрь вне форума Новичок форума
Регистрация: 05.08.2012 / Сообщений: 48
Поблагодарили 6 раз(а) / Репутация: 7
подскажите как сделать чтобы индикаторы так не перегружали советника

int IndicatorSignal()
{
int Signal=0;
double k=iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,1);
double k1=iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,2);
double k2=iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,3);
//Указываем Сигналы:

if (k2<k1&&k1<k)Signal=1; // Если МА ниже цены БИД - открываемся в бай
if (k2>k1&&k1>k)Signal=2; // Если МА выше цены БИД - открываемся в селл



// 1 - бай 2 - селл
return(Signal);
}
22.02.2015, 20:17
Аватар для vladradon
vladradon vladradon вне форума Местный житель
Регистрация: 12.02.2015 / Сообщений: 401
Поблагодарили 198 раз(а) / Репутация: 205
подскажите как сделать чтобы индикаторы так не перегружали советника

int IndicatorSignal()
{
int Signal=0;
double k=iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,1);
double k1=iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,2);
double k2=iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,3);
//Указываем Сигналы:

if (k2<k1&&k1<k)Signal=1; // Если МА ниже цены БИД - открываемся в бай
if (k2>k1&&k1>k)Signal=2; // Если МА выше цены БИД - открываемся в селл



// 1 - бай 2 - селл
return(Signal);
}
А почему в подвале (нижнем окне) столько однотипных индикаторов на скрине? По коду все правильно и проще не придумаешь, но эта функция расчетов индикатора не должна даже выводить индикатор на график, а просто брать с него инфу. Может в коде сова что-то не так? А в подвале запущенные индикаторы только грузить терминал будут - это если нужно для наглядности их выводить, - тогда другое дело и ничего не поделаешь. Но если для наглядности только и в этом нет необходимости, то и незачем их отдельно запускать - только лишняя нагрузка на терминал.

Последний раз редактировалось vladradon; 22.02.2015 в 20:29.
22.02.2015, 20:54
Аватар для Игoрь
Игoрь Игoрь вне форума Новичок форума
Регистрация: 05.08.2012 / Сообщений: 48
Поблагодарили 6 раз(а) / Репутация: 7
почему в подвале (нижнем окне) столько однотипных индикаторов на скрине?
Это и есть мой вопрос. Почему-то это происходит когда использую пользовательский индикатор. Когда не пользовательский - всё нормально. в подвале один индикатор.Меняю iWPR на iCustom -начинается проблема.
22.02.2015, 21:39
Аватар для vladradon
vladradon vladradon вне форума Местный житель
Регистрация: 12.02.2015 / Сообщений: 401
Поблагодарили 198 раз(а) / Репутация: 205
почему в подвале (нижнем окне) столько однотипных индикаторов на скрине?
Это и есть мой вопрос. Почему-то это происходит когда использую пользовательский индикатор. Когда не пользовательский - всё нормально. в подвале один индикатор.Меняю iWPR на iCustom -начинается проблема.
Может стоит для начала попробовать через iCustom запустить стандартный индюк (скопировав его из стандартных в пользовательские предварительно) и если проблема пропадет, то уже код самого пользовательского индюка анализировать?
22.02.2015, 22:25
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,989
Поблагодарили 9,994 раз(а) / Репутация: 10007
почему в подвале (нижнем окне) столько однотипных индикаторов на скрине?
Это и есть мой вопрос. Почему-то это происходит когда использую пользовательский индикатор. Когда не пользовательский - всё нормально. в подвале один индикатор.Меняю iWPR на iCustom -начинается проблема.
А значение ТФ самого индюка почему не передаете в iCustom? Работаете с текущим ТФ, установите "0".

PHP код:
double k=iCustom(NULL,0,"! MY Coppock curve",0,ROCPeriod1,ROCPeriod2,Smooth,0,1); 
22.02.2015, 22:48
Аватар для vladradon
vladradon vladradon вне форума Местный житель
Регистрация: 12.02.2015 / Сообщений: 401
Поблагодарили 198 раз(а) / Репутация: 205
А значение ТФ самого индюка почему не передаете в iCustom? Работаете с текущим ТФ, установите "0".

PHP код:
double k=iCustom(NULL,0,"! MY Coppock curve",0,ROCPeriod1,ROCPeriod2,Smooth,0,1); 
Так он и передается - 0 - второе значение в скобках означает использование ТФ, на котором сов стоит. А для сова не важен тот ТФ, на котором индюк запущен - индюк отрабатывает по тому ТФ, который задается в сове независимо больше ни от чего. Если индюк запущен отдельно со своим ТФ, то инфу сов все равно получит ту, которая задается при запросе, а не на котором сам индюк работает на графике. Это касательно функции iCustom или других технических индикаторов. Или я что-то недопонял?)))
22.02.2015, 23:23
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,989
Поблагодарили 9,994 раз(а) / Репутация: 10007
Или я что-то недопонял?)))
Сам индюк МТФ-ный, вот его ввод параметров:

PHP код:
extern string TimeFrame      "Current time frame";
extern int    ROCPeriod1     14;
extern int    ROCPeriod2     11;
extern int    Smooth         10

индюк здесь: http://forexsystemsru.com/963857-post2399.html
Корректно будет так:


PHP код:
double k=iCustom(NULL,0,"! MY Coppock curve",TimeFrame,ROCPeriod1,ROCPeriod2,Smooth,0,1); 

Можно в самом индюке, если предполагается работа на текущем ТФ, убрать extern из строки: extern string TimeFrame, что б не перегружать параметрами ввода в самом советнике. То, что советовал установить вместо TimeFrame - "0" в ф-ции iCustom - может не пройти.

Последний раз редактировалось mobidik; 22.02.2015 в 23:35.
22.02.2015, 23:54
Аватар для Gruler
Gruler Gruler вне форума Новичок форума
Регистрация: 13.10.2013 / Сообщений: 12
Поблагодарили 9 раз(а) / Репутация: 10
Что нужно ввести, что бы советник прекратил свою работу, при достижении суммарной дневной прибыли указанной в деньгах в параметрах. А с нового дня он снова начал торговать до этого дэйпрофита?
22.02.2015, 23:59
Аватар для STELS37
STELS37 STELS37 вне форума Новичок форума
Регистрация: 19.08.2014 / Адрес: Санкт-Петербург / Сообщений: 15
Поблагодарили 5 раз(а) / Репутация: 6
Всем доброй ночи!
Я только начал изучать язык MQL4 // Все с помощью видио уроков да и справки в МетоИдитере))
Вот написал своего первого сова, основанного на двух машках да и мартине ... Стандарт вобщем))
Но тут я столкнулся с проблемой (по своей не грамотности в этом вопросе)
Судя по всему в сове не присваивается Магик (как я только не вертел его)
да ++ еще вставил трал и он не хочет не как запускаться (((( Может есть кто смог бы помочь?
Заранее спасибо!!!)
23.02.2015, 02:15
Аватар для vladradon
vladradon vladradon вне форума Местный житель
Регистрация: 12.02.2015 / Сообщений: 401
Поблагодарили 198 раз(а) / Репутация: 205
Сам индюк МТФ-ный, вот его ввод параметров:

PHP код:
extern string TimeFrame      "Current time frame";
extern int    ROCPeriod1     14;
extern int    ROCPeriod2     11;
extern int    Smooth         10

индюк здесь: http://forexsystemsru.com/963857-post2399.html
Корректно будет так:


PHP код:
double k=iCustom(NULL,0,"! MY Coppock curve",TimeFrame,ROCPeriod1,ROCPeriod2,Smooth,0,1); 

Можно в самом индюке, если предполагается работа на текущем ТФ, убрать extern из строки: extern string TimeFrame, что б не перегружать параметрами ввода в самом советнике. То, что советовал установить вместо TimeFrame - "0" в ф-ции iCustom - может не пройти.
В самом индюке в коде зацикленно на сова, который никак уже не влияет на тот расчет, который производится. Эту зацикленность непонятную я заремарил и индикация не изменилась. Сов работает без проблем.
23.02.2015, 02:27
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,989
Поблагодарили 9,994 раз(а) / Репутация: 10007
В самом индюке в коде зацикленно на сова, который никак уже не влияет на тот расчет, который производится. Эту зацикленность непонятную я заремарил и индикация не изменилась. Сов работает без проблем.
И что? Теперь режим МТФ в индюке не работает.

PS.
Вот, что дает справочник по iCustom: input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию.

vladradon, Вы тут даже сову писали, затем удалили свое сообщение... Вот Вам простая сова на этом индюке. Есть три варианта вызова индюка, переключаться между ними можно с настроек совы:

Скрытый текст

PHP код:
//----------------------------------------------------------------------------------------------------
 
if(TimeFrame_0 && !Not_TimeFrame)
 {
   
double Tr1  iCustom(NULL,0,"! MY Coppock curve",TimeFrame,ROCPeriod1,ROCPeriod2,Smooth,0,1);
   
double Tr2  iCustom(NULL,0,"! MY Coppock curve",TimeFrame,ROCPeriod1,ROCPeriod2,Smooth,0,2);
 }
//----------------------------------------------------------------------------------------------------
 
if(!TimeFrame_0 && !Not_TimeFrame)
 {   
   
Tr1  iCustom(NULL,0,"! MY Coppock curve",0,ROCPeriod1,ROCPeriod2,Smooth,0,1);
   
Tr2  iCustom(NULL,0,"! MY Coppock curve",0,ROCPeriod1,ROCPeriod2,Smooth,0,2);
 }
//----------------------------------------------------------------------------------------------------  
 
if(Not_TimeFrame)
 {   
   
Tr1  iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,1);
   
Tr2  iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,2);
 }
//---------------------------------------------------------------------------------------------------- 
[свернуть]


Второй и третий варианты не верны, т.к. не соблюдается условие: Тип и порядок следования параметров должен соответствовать.
Проверяйте.

Последний раз редактировалось mobidik; 23.02.2015 в 02:42.
23.02.2015, 02:38
Аватар для vladradon
vladradon vladradon вне форума Местный житель
Регистрация: 12.02.2015 / Сообщений: 401
Поблагодарили 198 раз(а) / Репутация: 205
Всем доброй ночи!
Я только начал изучать язык MQL4 // Все с помощью видио уроков да и справки в МетоИдитере))
Вот написал своего первого сова, основанного на двух машках да и мартине ... Стандарт вобщем))
Но тут я столкнулся с проблемой (по своей не грамотности в этом вопросе)
Судя по всему в сове не присваивается Магик (как я только не вертел его)
да ++ еще вставил трал и он не хочет не как запускаться (((( Может есть кто смог бы помочь?
Заранее спасибо!!!)
Ну... ошибок там у тебя куча - это надо вместе по тобой задуманной стратегии в режиме реального времени корректировать - просто даже не совсем понятно, по какой стратегии ты собираешься торговать. Сразу скажу: Внешние переменные не могут меняться в коде - ошибка в строке 83 и получать информацию функциями типа OrderMagicNumber() можно только после выбора открытого ордера после его выбора по номерам позиции или тикета.
23.02.2015, 02:52
Аватар для vladradon
vladradon vladradon вне форума Местный житель
Регистрация: 12.02.2015 / Сообщений: 401
Поблагодарили 198 раз(а) / Репутация: 205
И что? Теперь режим МТФ в индюке не работает.

PS.
Вот, что дает справочник по iCustom: input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию.

vladradon, Вы тут даже сову писали, затем удалили свое сообщение... Вот Вам простая сова на этом индюке. Есть три варианта вызова индюка, переключаться между ними можно с настроек совы:

Скрытый текст

PHP код:
//----------------------------------------------------------------------------------------------------
 
if(TimeFrame_0 && !Not_TimeFrame)
 {
   
double Tr1  iCustom(NULL,0,"! MY Coppock curve",TimeFrame,ROCPeriod1,ROCPeriod2,Smooth,0,1);
   
double Tr2  iCustom(NULL,0,"! MY Coppock curve",TimeFrame,ROCPeriod1,ROCPeriod2,Smooth,0,2);
 }
//----------------------------------------------------------------------------------------------------
 
if(!TimeFrame_0 && !Not_TimeFrame)
 {   
   
Tr1  iCustom(NULL,0,"! MY Coppock curve",0,ROCPeriod1,ROCPeriod2,Smooth,0,1);
   
Tr2  iCustom(NULL,0,"! MY Coppock curve",0,ROCPeriod1,ROCPeriod2,Smooth,0,2);
 }
//----------------------------------------------------------------------------------------------------  
 
if(Not_TimeFrame)
 {   
   
Tr1  iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,1);
   
Tr2  iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,2);
 }
//---------------------------------------------------------------------------------------------------- 
[свернуть]


Второй и третий варианты не верны, т.к. не соблюдается условие: Тип и порядок следования параметров должен соответствовать.
Проверяйте.
Что за режим МТФ и как он завязан с совом? У меня по вышеизложенной функции, с которой начали, все правильно считывает и мой сов с индюком работает.
23.02.2015, 07:34
Аватар для Игoрь
Игoрь Игoрь вне форума Новичок форума
Регистрация: 05.08.2012 / Сообщений: 48
Поблагодарили 6 раз(а) / Репутация: 7
И что? Теперь режим МТФ в индюке не работает.

PS.
Вот, что дает справочник по iCustom: input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию.

vladradon, Вы тут даже сову писали, затем удалили свое сообщение... Вот Вам простая сова на этом индюке. Есть три варианта вызова индюка, переключаться между ними можно с настроек совы:

Скрытый текст

PHP код:
//----------------------------------------------------------------------------------------------------
 
if(TimeFrame_0 && !Not_TimeFrame)
 {
   
double Tr1  iCustom(NULL,0,"! MY Coppock curve",TimeFrame,ROCPeriod1,ROCPeriod2,Smooth,0,1);
   
double Tr2  iCustom(NULL,0,"! MY Coppock curve",TimeFrame,ROCPeriod1,ROCPeriod2,Smooth,0,2);
 }
//----------------------------------------------------------------------------------------------------
 
if(!TimeFrame_0 && !Not_TimeFrame)
 {   
   
Tr1  iCustom(NULL,0,"! MY Coppock curve",0,ROCPeriod1,ROCPeriod2,Smooth,0,1);
   
Tr2  iCustom(NULL,0,"! MY Coppock curve",0,ROCPeriod1,ROCPeriod2,Smooth,0,2);
 }
//----------------------------------------------------------------------------------------------------  
 
if(Not_TimeFrame)
 {   
   
Tr1  iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,1);
   
Tr2  iCustom(NULL,0,"! MY Coppock curve",ROCPeriod1,ROCPeriod2,Smooth,0,2);
 }
//---------------------------------------------------------------------------------------------------- 
[свернуть]


Второй и третий варианты не верны, т.к. не соблюдается условие: Тип и порядок следования параметров должен соответствовать.
Проверяйте.
Спасибо! Всё заработало.
23.02.2015, 13:25
Аватар для vladradon
vladradon vladradon вне форума Местный житель
Регистрация: 12.02.2015 / Сообщений: 401
Поблагодарили 198 раз(а) / Репутация: 205
Спасибо! Всё заработало.
С праздником!!! Спасибо кому? Просто спор так и не завершен. Те исправления в индикатор, которые я внес, у меня работают без проблем. А то, о чем писал mobidik - тоже правильно в плане обращения к индюку, но не действует на зацикленность самого индюка, о чем изначально и была просьба в редактировании кода. У меня индюк и изначальный и мной доработанный показывают обсолютно индентичные расчеты на графике, только мой вариант не уходит в цикличность ни просто при постановке на график, ни при использовании его из сова.
23.02.2015, 14:50
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,989
Поблагодарили 9,994 раз(а) / Репутация: 10007
Просто спор так и не завершен...
Т.е., ты по прежнему считаешь, что лучше изменить индюк, убрав режим МТФ, а не устранив зацикленность, чем поступить так как правильно, как по документации? На ровном месте создать проблему, а потом решать её через одно место? А как быть, когда нет открытого кода? Или все ж таки, поступить так как указано в документации и не искать себе приключений на свою голову? Впрочем, ты в своих работах вправе поступать так, как считаешь нужным.
23.02.2015, 15:44
Аватар для vladradon
vladradon vladradon вне форума Местный житель
Регистрация: 12.02.2015 / Сообщений: 401
Поблагодарили 198 раз(а) / Репутация: 205
Т.е., ты по прежнему считаешь, что лучше изменить индюк, убрав режим МТФ, а не устранив зацикленность, чем поступить так как правильно, как по документации? На ровном месте создать проблему, а потом решать её через одно место? А как быть, когда нет открытого кода? Или все ж таки, поступить так как указано в документации и не искать себе приключений на свою голову? Впрочем, ты в своих работах вправе поступать так, как считаешь нужным.
Я поспорю с тобой - запусти индюка из сова (можешь своего) и посмотри в журнале что пишет. И с твоей корректировкой, и без нее у меня идет цикл, который автоматом запускает автоцикл индюка. И это не зависит от функции обращения к индюку!
28.02.2015, 17:51
Аватар для Petr888
Petr888 Petr888 вне форума Заблокирован
Регистрация: 31.08.2014 / Сообщений: 219
Поблагодарили 202 раз(а) / Репутация: 199
Приветствую всех!

Вопрос такой: для быстрого тестирования и оптимизации (по ценам открытия) советник должен использовать PRICE_OPEN или PRICE_CLOSE в коде ???
Сова не использует TP и SL. Закрытие происходит по общему профиту (усреднение).

p.s. простите, запутался с инфой немного, только учусь))
Ответить

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 05:38. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO