Ответ
 
Опции темы
08.11.2014, 18:45
Аватар для сергей киров
сергей киров Почётный гражданин
Регистрация: 09.01.2011 / Сообщений: 1,299
Поблагодарили 382 раз(а) / Репутация: 378
учусь вот разбиратьтся как что работает в граалях
и хочу чтобы помогли мне привернуть время торговли
в советник ниже
тоесть время в которое сделки открываются
а закрытие всегда
Вложения:
Тип файла: mq4 Kirov.mq4 (6.0 Кб, 10 просмотров)

Последний раз редактировалось сергей киров; 08.11.2014 в 18:55.
сергей киров вне форума Ответить с цитированиемОтветить с цитированием  
08.11.2014, 18:52
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от ctmcn Посмотреть сообщение
AlexeyVik
Вы тут _http://forum.mql4.com/ru/65341/page29
приводили пример, как доработать код в советнике, чтобы появилась возможность ручного подтверждения открытия ордеров, которая при обновлении с 670 на 745 билд канула в лету...
Я не настолько силен, чтоб понять куда и чего...
Использую простой шаблон, где гоняю условия. Подскажите, плиз, куда и чего, что бы было ручное подтверждение открытия/закрытия ордеров.
С уважением.

P.S. Шаблон прилагаю.
В тестере MessageBox() не работает поэтому не проверял. Проверил только аналогичное применение в скрипте, работает нормально.
Вставил только в открытие ордеров, закрытие осталось как было.

На будущее, для доработки советников и индикаторов есть соответствующая ветка.
Доработка ботов (советников, индикаторов) vol. 2
Вложения:
Тип файла: mq4 A.mq4 (13.9 Кб, 16 просмотров)

Последний раз редактировалось NSerega; 08.11.2014 в 20:46.
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
ctmcn (08.11.2014), NSerega (08.11.2014)
08.11.2014, 19:51
Аватар для ctmcn
ctmcn Новичок форума
Регистрация: 02.04.2011 / Сообщений: 35
Поблагодарили 6 раз(а) / Репутация: 7
AlexeyVik
Так в тестере шаблон на автомате прогоняется - там это не актуально.
При реальных котировках надо - использую как "квакер" - есть сигнал - смотрим где, потому и спрашивал. Потому что Тестер от реала отличается однако - для динамических уровней надо мне это смотреть.
Опция была очень нужная, зачем убрали в новых билдах непонятно.
Теперь очень неудобно стало, как и многое другое...
P.S. А для закрытия ордеров по аналогии добавить ?
ctmcn вне форума Ответить с цитированиемОтветить с цитированием  
10.11.2014, 06:18
Аватар для hollydiger
hollydiger Интересующийся
Регистрация: 05.11.2014 / Сообщений: 3
Поблагодарили 0 раз(а) / Репутация: 1
Сообщение от matro3 Посмотреть сообщение
Код:
input int timerSeconds = 1;

MqlDateTime str1;

int OnInit()
  {
   EventSetTimer(timerSeconds);
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
   EventKillTimer();
   Comment("");
  }
void OnTick()
  {
   
  }
void OnTimer()
  {
   TimeLocal(str1);
   Comment(str1.sec);
  }
Ларчик просто открывался
Спасибо за попытку. Но за таймером замечена особенность, когда время уже таймера обновляется, новый бар открывается только через 10-15 секунд... Может это можно как-нибудь решить?
hollydiger вне форума Ответить с цитированиемОтветить с цитированием  
10.11.2014, 11:54
Аватар для matro3
matro3 Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Это никто не решит.
Смотрим время открытия предидущего бара и соответственно вычисляем в таймере, когда должен закрыться текущий.
Или я не понял задачи?
matro3 вне форума Ответить с цитированиемОтветить с цитированием  
13.11.2014, 11:24
Аватар для gince
gince Местный знаток
Регистрация: 09.09.2008 / Адрес: Литва / Сообщений: 427
Поблагодарили 783 раз(а) / Репутация: 783
  • Отправить сообщение для gince с помощью Skype™
Привет всем.
Кто может написать условие (можно в функцию засунуть) по индикатору.
Условия
Появилась первая синяя точка выше белой линии (перед тем на прошлом баре была ниже) и, если нет голубой, открываемся по направлению от других индикаторов.
Если есть голубая, ждем следующей синей точки и открываемся по направлению от других индикаторов.
Картинки и индикатор ниже.
Миниатюры:
Нажмите на изображение для увеличения
Название: std1.PNG
Просмотров: 21
Размер:	24.5 Кб
ID:	184566   Нажмите на изображение для увеличения
Название: std2.PNG
Просмотров: 17
Размер:	21.0 Кб
ID:	184567  
Вложения:
Тип файла: mq4 gi_BB-Width.mq4 (5.0 Кб, 12 просмотров)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Гинтарас
gince на форуме Ответить с цитированиемОтветить с цитированием  
13.11.2014, 17:25
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
Можно ли из основного куска программы, которая OnTick() вызывать специальные подпрограммы, типа OnInit() и OnDeinit() ?
Как бы, логика подсказывает, что можно, а реально там никаких подводных камней не заложено?
ansol вне форума Ответить с цитированиемОтветить с цитированием  
13.11.2014, 17:37
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от ansol Посмотреть сообщение
Можно ли из основного куска программы, которая OnTick() вызывать специальные подпрограммы, типа OnInit() и OnDeinit() ?
Как бы, логика подсказывает, что можно, а реально там никаких подводных камней не заложено?
Никаких.
Ну если страшно, сделай отдельную функцию и вызывай из init или deinit ну и соответственно из OnTick()
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ansol (13.11.2014)
13.11.2014, 17:52
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
Сообщение от AlexeyVik Посмотреть сообщение
Никаких.
Ну если страшно, сделай отдельную функцию и вызывай из init или deinit ну и соответственно из OnTick()
Да не страшно и вроде бы уже работает. Глупо как-то два одинаковых куска кода вставлять в OnDeinit() и еще куда-то.
Вызвал деинит с кодом 5
PHP код:
OnDeinit(5); 
И всех делов
ansol вне форума Ответить с цитированиемОтветить с цитированием  
13.11.2014, 22:34
Аватар для egorr007
egorr007 Новичок форума
Регистрация: 31.08.2012 / Сообщений: 45
Поблагодарили 14 раз(а) / Репутация: 15
Сообщение от gince Посмотреть сообщение
Привет всем.
Кто может написать условие (можно в функцию засунуть) по индикатору.
Условия
Появилась первая синяя точка выше белой линии (перед тем на прошлом баре была ниже) и, если нет голубой, открываемся по направлению от других индикаторов.
Если есть голубая, ждем следующей синей точки и открываемся по направлению от других индикаторов.
Картинки и индикатор ниже.
Код HTML:
//---------------------------------------------------------------+
   double buf2 = iCustom(NULL,0,"i-BB-Width",2,0);// Blue
   double buf4 = iCustom(NULL,0,"i-BB-Width",4,0);// Aqua
   double buf5 = iCustom(NULL,0,"i-BB-Width",5,1);// белая линия
//----------------------------------------------------------------+
//   if(buf2 !=0)// синяя точка 
//   if(buf2 !=0 && buf2 > buf5)// синяя точка над белой линией 
//   if(buf4 !=0)// голубая точка  
//----------------------------------------------------------------+
egorr007 вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
gince (14.11.2014)
13.11.2014, 23:21
Аватар для egorr007
egorr007 Новичок форума
Регистрация: 31.08.2012 / Сообщений: 45
Поблагодарили 14 раз(а) / Репутация: 15
Код HTML:
учусь вот разбиратьтся как что работает в граалях
и хочу чтобы помогли мне привернуть время торговли 
в советник ниже
тоесть время в которое сделки открываются


а закрытие всегда
Вложения:
Тип файла: mq4 Kirov.mq4 (7.7 Кб, 7 просмотров)
egorr007 вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
14.11.2014, 11:08
Аватар для Дмитрий007
Дмитрий007 Элитный участник
За первое место в конкурсе За призовое место в конкурсе 

Регистрация: 25.04.2013 / Адрес: Украина/Сумы / Сообщений: 2,731
Поблагодарили 1,651 раз(а) / Репутация: 1686
  • Отправить сообщение для Дмитрий007 с помощью ICQ
Подскажите, есть такая функция, которая бы добавляла/отнимала количество пунктов последней свечи к значению индикатора?

Например, значения RSI на рассматриваемой свече упало, при этом нам нужно к этому значению еще добавить количество пунктов закрытой свечи. Если долго, объяснять не надо...
Дмитрий007 на форуме Ответить с цитированиемОтветить с цитированием  
14.11.2014, 11:12
Аватар для DiZin
DiZin Почётный гражданин
Регистрация: 06.10.2009 / Адрес: то тут, то там / Сообщений: 734
Поблагодарили 460 раз(а) / Репутация: 465
Сообщение от Дмитрий007 Посмотреть сообщение
Подскажите, есть такая функция, которая бы добавляла/отнимала количество пунктов последней свечи к значению индикатора?

Например, значения RSI на рассматриваемой свече упало, при этом нам нужно к этому значению еще добавить количество пунктов закрытой свечи. Если долго, объяснять не надо...
Два оператора - "+" - для добавления, "-" - для "отнимания"

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Добрею прямо на глазах
DiZin вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Дмитрий007 (14.11.2014)
15.11.2014, 15:19
Аватар для mogul
mogul Активный участник
Регистрация: 20.04.2009 / Сообщений: 12
Поблагодарили 0 раз(а) / Репутация: 0
Здравствуйте все, программисты и учащиеся.
Прошу помощи, долго бьюсь не выходит, или знаний мало или того хуже.

Получаю из внешнего .csv файла с разделителем ";", как я понял последовательно такие данные:
1.2498;1.2517;1.2575;1.2703;1.2971;1.2507;1.2562;1 .2768;1.1977;1.2021;1.2106;1.2321;1.1885;1.2064;1. 2223;1.2414

но не получается найти hi и low среди них, вернее получилось только hi, хотя думаю и то как то неправильно, мног оперепробовал, то hi найдет, то где то в середине, low не выходит никак.
low приходиться сечас руками подставлять и прекомпилировать каждые новые данные.
if (hi <= cena) {hi = cena++;} - тут находит hi
// if (lo<=0) {lo = cena--;} тут закоментировал, т.к. ничего невышло.

ну и второй вопрос, так же из внешнего файла данные: 123, 15, 65, 87, 94 ... и т.п.
получаю новые данные, цифры там естественно другие, как мне сравнить новые со старыми, к примеру отнять от большего нового, меньшее старое или наоборот.

прошу, не откажите в просьбе.
mogul вне форума Ответить с цитированиемОтветить с цитированием  
15.11.2014, 17:23
Регистрация: 13.03.2009 / Сообщений: 2,320
Поблагодарили 1,944 раз(а) / Репутация: 2019
Сообщение от mogul Посмотреть сообщение
if (hi <= cena) {hi = cena++;} - тут находит hi
// if (lo<=0) {lo = cena--;} тут закоментировал, т.к. ничего невышло.
if (hi < cena) hi = cena;
if (lo<0.000001 || lo>cena) lo = cena;

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar вне форума Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (16.11.2014), mogul (15.11.2014)
15.11.2014, 17:50
Аватар для mogul
mogul Активный участник
Регистрация: 20.04.2009 / Сообщений: 12
Поблагодарили 0 раз(а) / Репутация: 0
спасибо огромное, но .. опять lo не нашел, 0 выдает по lo, hi прекрасно находит.
mogul вне форума Ответить с цитированиемОтветить с цитированием  
15.11.2014, 17:55
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
Сообщение от mogul Посмотреть сообщение
спасибо огромное, но .. опять lo не нашел, 0 выдает по lo, hi прекрасно находит.
Либо где-то встречается цена нулевая "0.0" или "0", либо где-то попадается так: ";;", что то же самое по смыслу.
ansol вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
mogul (15.11.2014)
15.11.2014, 18:02
Аватар для mogul
mogul Активный участник
Регистрация: 20.04.2009 / Сообщений: 12
Поблагодарили 0 раз(а) / Репутация: 0
так все выглядит, двойных ;; точно нет, эту болезнь поборол

for ( i = 0; i < 480; i++){
optiontype = FileReadString(hFile);
cena = StrToDouble(FileReadString(hFile));
if (cena < 1) {i--;} вроде тут 0.0. и 0 убирается
--------------- ваш код------------------
if (hi < cena) hi = cena;
if (lo<0.000001 || lo>cena) lo = cena;

}
Comment (" ",hi," ",lo); --- сдесь получаю hi и 0 по lo
------------------------- так данные идут из файла ------------
call;1.2531;
call;1.2656;
call;1.2712;
call;1.2418;
call;1.2544;
put;1.1988;
put;1.2135;
put;1.2399;
put;1.2076;
put;1.2366;
mogul вне форума Ответить с цитированиемОтветить с цитированием  
15.11.2014, 18:42
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от mogul Посмотреть сообщение
так все выглядит, двойных ;; точно нет, эту болезнь поборол

for ( i = 0; i < 480; i++){
optiontype = FileReadString(hFile);
cena = StrToDouble(FileReadString(hFile));
if (cena < 1) {i--;} вроде тут 0.0. и 0 убирается
--------------- ваш код------------------
if (hi < cena) hi = cena;
if (lo<0.000001 || lo>cena) lo = cena;

}
Comment (" ",hi," ",lo); --- сдесь получаю hi и 0 по lo
------------------------- так данные идут из файла ------------
call;1.2531;
call;1.2656;
call;1.2712;
call;1.2418;
call;1.2544;
put;1.1988;
put;1.2135;
put;1.2399;
put;1.2076;
put;1.2366;
А разве ArrayMaximum() _http://docs.mql4.com/ru/array/arraymaximum
и ArrayMinimum() _http://docs.mql4.com/ru/array/arrayminimum
не подходят?

Второй вариант:
В цикле как и хотел ты сделать, только надо чуток поменять весь алгоритм.
Код:
double lo = 0, hi = 0;

for (i = 0; i < 480; i++)
{
    optiontype = FileReadString(hFile);
    cena = StrToDouble(FileReadString(hFile));
   // Как я понял, то при каждой итерации цикла читается следующая строка файла...
    if (cena > hi) hi = cena;
    if (lo > 0.0 && cena < lo) lo = cena;
}
  // После выхода из цикла имеем hi и lo...

Последний раз редактировалось AlexeyVik; 15.11.2014 в 18:54.
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
15.11.2014, 18:45
Аватар для mogul
mogul Активный участник
Регистрация: 20.04.2009 / Сообщений: 12
Поблагодарили 0 раз(а) / Репутация: 0
может и подошли бы, но не выщло прикрутить, не разобрался с ними, в прочем как с массивами всеми. пока еще трудны для понимания. читаю, смотрю коды, пока туго
Если знаете как и не в тягость, подскажите, на конкретном рабочем примере может и понимание быстрее придет
mogul вне форума Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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