Ответ
 
Опции темы
21.02.2015, 17:36
Аватар для matro3
matro3 Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
VPS - это удаленный комп, на котором работает MT.
Мой сов при инициализации пробегает по ордерам и присваивает рабочим переменным нужные значения. Тем самым приводя свои настройки в подходящее состояние.
Далее обновляю их при изминении кол-ва ордеров, например.
Ваш способ тоже интересный. Не пользовался глобальными переменными.
Как они ведут себя в тестере?
И как быть в такой ситуации: робот не работал, а ситуация с ордерами изменилась (закрылись по стопам, открылись отложки и т.д.), после этого робот снова был включен. Причины перерыва в работе можно додумать.
matro3 на форуме Ответить с цитированиемОтветить с цитированием  
21.02.2015, 18:12
Аватар для vladradon
vladradon Активный участник
Регистрация: 12.02.2015 / Сообщений: 127
Поблагодарили 52 раз(а) / Репутация: 52
Сообщение от matro3 Посмотреть сообщение
VPS - это удаленный комп, на котором работает MT.
Мой сов при инициализации пробегает по ордерам и присваивает рабочим переменным нужные значения. Тем самым приводя свои настройки в подходящее состояние.
Далее обновляю их при изминении кол-ва ордеров, например.
Ваш способ тоже интересный. Не пользовался глобальными переменными.
Как они ведут себя в тестере?
И как быть в такой ситуации: робот не работал, а ситуация с ордерами изменилась (закрылись по стопам, открылись отложки и т.д.), после этого робот снова был включен. Причины перерыва в работе можно додумать.
Что такое VPS я знаю. Мой чемпионатовский сов 2012-го года занял почетное 50-е место среди более 3500 заявок из 112 стран мира по-моему (давно было).
Можно сочетать те функции, которые будут правильно восстанавливать инфу без сохранения во внешних файлах с теми, которые нужны при тех обстоятельствах, когда либо поднять по истории невозможно, либо это наоборот не нужно. Глобалки работают без проблем - это основные функции обоих языков. Только в некоторых случаях бывает необходимо их удалять - это касается тестов и оптимизации - просто в функции OnDeinit нужно прописать функции удаления ненужных переменных либо сразу всех. Это зависит от того, сколько сов параллельно используют глобалки. А вообще - пиши в скайп - ник тот же - так будет быстрее и без офиширования всех подробностей.
vladradon вне форума Ответить с цитированиемОтветить с цитированием  
22.02.2015, 14:25
Аватар для Игoрь
Игoрь Новичок форума
Регистрация: 05.08.2012 / Сообщений: 46
Поблагодарили 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);
}
Миниатюры:
Нажмите на изображение для увеличения
Название: USDJPYH1.png
Просмотров: 17
Размер:	40.2 Кб
ID:	197099  
Игoрь вне форума Ответить с цитированиемОтветить с цитированием  
22.02.2015, 20:17
Аватар для vladradon
vladradon Активный участник
Регистрация: 12.02.2015 / Сообщений: 127
Поблагодарили 52 раз(а) / Репутация: 52
Сообщение от Игoрь Посмотреть сообщение
подскажите как сделать чтобы индикаторы так не перегружали советника

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.
vladradon вне форума Ответить с цитированиемОтветить с цитированием  
22.02.2015, 20:54
Аватар для Игoрь
Игoрь Новичок форума
Регистрация: 05.08.2012 / Сообщений: 46
Поблагодарили 6 раз(а) / Репутация: 7
почему в подвале (нижнем окне) столько однотипных индикаторов на скрине?
Это и есть мой вопрос. Почему-то это происходит когда использую пользовательский индикатор. Когда не пользовательский - всё нормально. в подвале один индикатор.Меняю iWPR на iCustom -начинается проблема.
Игoрь вне форума Ответить с цитированиемОтветить с цитированием  
22.02.2015, 21:39
Аватар для vladradon
vladradon Активный участник
Регистрация: 12.02.2015 / Сообщений: 127
Поблагодарили 52 раз(а) / Репутация: 52
Сообщение от Игoрь Посмотреть сообщение
почему в подвале (нижнем окне) столько однотипных индикаторов на скрине?
Это и есть мой вопрос. Почему-то это происходит когда использую пользовательский индикатор. Когда не пользовательский - всё нормально. в подвале один индикатор.Меняю iWPR на iCustom -начинается проблема.
Может стоит для начала попробовать через iCustom запустить стандартный индюк (скопировав его из стандартных в пользовательские предварительно) и если проблема пропадет, то уже код самого пользовательского индюка анализировать?
vladradon вне форума Ответить с цитированиемОтветить с цитированием  
22.02.2015, 22:25
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,761
Поблагодарили 9,129 раз(а) / Репутация: 9134
Сообщение от Игoрь Посмотреть сообщение
почему в подвале (нижнем окне) столько однотипных индикаторов на скрине?
Это и есть мой вопрос. Почему-то это происходит когда использую пользовательский индикатор. Когда не пользовательский - всё нормально. в подвале один индикатор.Меняю iWPR на iCustom -начинается проблема.
А значение ТФ самого индюка почему не передаете в iCustom? Работаете с текущим ТФ, установите "0".

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

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

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

индюк здесь: Компиляция индикаторов и экспертов под новые билды MetaTrader 4
Корректно будет так:


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.
mobidik на форуме Ответить с цитированиемОтветить с цитированием  
22.02.2015, 23:54
Аватар для Gruler
Gruler Новичок форума
Регистрация: 13.10.2013 / Сообщений: 12
Поблагодарили 9 раз(а) / Репутация: 10
Что нужно ввести, что бы советник прекратил свою работу, при достижении суммарной дневной прибыли указанной в деньгах в параметрах. А с нового дня он снова начал торговать до этого дэйпрофита?
Gruler вне форума Ответить с цитированиемОтветить с цитированием  
22.02.2015, 23:59
Аватар для STELS37
STELS37 Новичок форума
Регистрация: 19.08.2014 / Адрес: Санкт-Петербург / Сообщений: 15
Поблагодарили 5 раз(а) / Репутация: 6
Всем доброй ночи!
Я только начал изучать язык MQL4 // Все с помощью видио уроков да и справки в МетоИдитере))
Вот написал своего первого сова, основанного на двух машках да и мартине ... Стандарт вобщем))
Но тут я столкнулся с проблемой (по своей не грамотности в этом вопросе)
Судя по всему в сове не присваивается Магик (как я только не вертел его)
да ++ еще вставил трал и он не хочет не как запускаться (((( Может есть кто смог бы помочь?
Заранее спасибо!!!)
Вложения:
Тип файла: mq4 STELS.mq4 (17.5 Кб, 8 просмотров)
STELS37 вне форума Ответить с цитированиемОтветить с цитированием  
23.02.2015, 02:15
Аватар для vladradon
vladradon Активный участник
Регистрация: 12.02.2015 / Сообщений: 127
Поблагодарили 52 раз(а) / Репутация: 52
Сообщение от mobidik Посмотреть сообщение
Сам индюк МТФ-ный, вот его ввод параметров:

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

индюк здесь: Компиляция индикаторов и экспертов под новые билды MetaTrader 4
Корректно будет так:


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

Можно в самом индюке, если предполагается работа на текущем ТФ, убрать extern из строки: extern string TimeFrame, что б не перегружать параметрами ввода в самом советнике. То, что советовал установить вместо TimeFrame - "0" в ф-ции iCustom - может не пройти.
В самом индюке в коде зацикленно на сова, который никак уже не влияет на тот расчет, который производится. Эту зацикленность непонятную я заремарил и индикация не изменилась. Сов работает без проблем.
Вложения:
Тип файла: mq4 ! MY Coppock curve.mq4 (7.1 Кб, 7 просмотров)
vladradon вне форума Ответить с цитированиемОтветить с цитированием  
23.02.2015, 02:27
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,761
Поблагодарили 9,129 раз(а) / Репутация: 9134
Сообщение от vladradon Посмотреть сообщение
В самом индюке в коде зацикленно на сова, который никак уже не влияет на тот расчет, который производится. Эту зацикленность непонятную я заремарил и индикация не изменилась. Сов работает без проблем.
И что? Теперь режим МТФ в индюке не работает.

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);
 }
//---------------------------------------------------------------------------------------------------- 
[свернуть]


Второй и третий варианты не верны, т.к. не соблюдается условие: Тип и порядок следования параметров должен соответствовать.
Проверяйте.
Вложения:
Тип файла: mq4 EA_Proba.mq4 (2.9 Кб, 5 просмотров)

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

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);
 }
//---------------------------------------------------------------------------------------------------- 
[свернуть]


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

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);
 }
//---------------------------------------------------------------------------------------------------- 
[свернуть]


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

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

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

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


Опции темы

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

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



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


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