Ответ
 
Опции темы
Старый 08.11.2014, 18:45   #3141 (permalink)
Почётный гражданин
 
Аватар для сергей киров
 
Регистрация: 09.01.2011
Сообщений: 1,297
Репутация: 376
сергей киров - сергей киров - сергей киров - сергей киров -
Сказал(а) спасибо: 42
Поблагодарили 380 раз(а) в 216 сообщениях
Поинты: 123
учусь вот разбиратьтся как что работает в граалях
и хочу чтобы помогли мне привернуть время торговли
в советник ниже
тоесть время в которое сделки открываются
а закрытие всегда
Вложения:
Тип файла: mq4 Kirov.mq4 (6.0 Кб, 10 просмотров)

Последний раз редактировалось сергей киров; 08.11.2014 в 18:55.
сергей киров вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 08.11.2014, 18:52   #3142 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,523
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Сообщение от 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   #3143 (permalink)
Новичок форума
 
Аватар для ctmcn
 
Регистрация: 02.04.2011
Сообщений: 31
Репутация: 7
ctmcn
Сказал(а) спасибо: 11
Поблагодарили 6 раз(а) в 6 сообщениях
Поинты: 36
AlexeyVik
Так в тестере шаблон на автомате прогоняется - там это не актуально.
При реальных котировках надо - использую как "квакер" - есть сигнал - смотрим где, потому и спрашивал. Потому что Тестер от реала отличается однако - для динамических уровней надо мне это смотреть.
Опция была очень нужная, зачем убрали в новых билдах непонятно.
Теперь очень неудобно стало, как и многое другое...
P.S. А для закрытия ордеров по аналогии добавить ?
ctmcn вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 10.11.2014, 06:18   #3144 (permalink)
Интересующийся
 
Аватар для hollydiger
 
Регистрация: 05.11.2014
Сообщений: 3
Репутация: 1
hollydiger
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 4
Сообщение от 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   #3145 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
Это никто не решит.
Смотрим время открытия предидущего бара и соответственно вычисляем в таймере, когда должен закрыться текущий.
Или я не понял задачи?
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 13.11.2014, 11:24   #3146 (permalink)
Местный знаток
 
Аватар для gince
 
Регистрация: 09.09.2008
Адрес: Литва
Сообщений: 396
Репутация: 733
gince - gince - gince - gince - gince - gince - gince -
Сказал(а) спасибо: 178
Поблагодарили 733 раз(а) в 189 сообщениях
Поинты: 192
Отправить сообщение для 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   #3147 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Можно ли из основного куска программы, которая OnTick() вызывать специальные подпрограммы, типа OnInit() и OnDeinit() ?
Как бы, логика подсказывает, что можно, а реально там никаких подводных камней не заложено?
ansol вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 13.11.2014, 17:37   #3148 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,523
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Сообщение от ansol Посмотреть сообщение
Можно ли из основного куска программы, которая OnTick() вызывать специальные подпрограммы, типа OnInit() и OnDeinit() ?
Как бы, логика подсказывает, что можно, а реально там никаких подводных камней не заложено?
Никаких.
Ну если страшно, сделай отдельную функцию и вызывай из init или deinit ну и соответственно из OnTick()
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ansol (13.11.2014)
Старый 13.11.2014, 17:52   #3149 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от AlexeyVik Посмотреть сообщение
Никаких.
Ну если страшно, сделай отдельную функцию и вызывай из init или deinit ну и соответственно из OnTick()
Да не страшно и вроде бы уже работает. Глупо как-то два одинаковых куска кода вставлять в OnDeinit() и еще куда-то.
Вызвал деинит с кодом 5
PHP код:
OnDeinit(5); 
И всех делов
ansol вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 13.11.2014, 22:34   #3150 (permalink)
Новичок форума
 
Аватар для egorr007
 
Регистрация: 31.08.2012
Сообщений: 45
Репутация: 15
egorr007
Сказал(а) спасибо: 13
Поблагодарили 14 раз(а) в 6 сообщениях
Поинты: 40
Сообщение от 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   #3151 (permalink)
Новичок форума
 
Аватар для egorr007
 
Регистрация: 31.08.2012
Сообщений: 45
Репутация: 15
egorr007
Сказал(а) спасибо: 13
Поблагодарили 14 раз(а) в 6 сообщениях
Поинты: 40
Код HTML:
учусь вот разбиратьтся как что работает в граалях
и хочу чтобы помогли мне привернуть время торговли 
в советник ниже
тоесть время в которое сделки открываются


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

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

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

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

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

Получаю из внешнего .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   #3155 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,254
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1274
Отправить сообщение для Ugar с помощью ICQ
Сообщение от 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   #3156 (permalink)
Активный участник
 
Аватар для mogul
 
Регистрация: 20.04.2009
Сообщений: 12
Репутация: 0
mogul
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 20
спасибо огромное, но .. опять lo не нашел, 0 выдает по lo, hi прекрасно находит.
mogul вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 15.11.2014, 17:55   #3157 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от mogul Посмотреть сообщение
спасибо огромное, но .. опять lo не нашел, 0 выдает по lo, hi прекрасно находит.
Либо где-то встречается цена нулевая "0.0" или "0", либо где-то попадается так: ";;", что то же самое по смыслу.
ansol вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
mogul (15.11.2014)
Старый 15.11.2014, 18:02   #3158 (permalink)
Активный участник
 
Аватар для mogul
 
Регистрация: 20.04.2009
Сообщений: 12
Репутация: 0
mogul
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 20
так все выглядит, двойных ;; точно нет, эту болезнь поборол

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   #3159 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,523
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Сообщение от 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   #3160 (permalink)
Активный участник
 
Аватар для mogul
 
Регистрация: 20.04.2009
Сообщений: 12
Репутация: 0
mogul
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 20
может и подошли бы, но не выщло прикрутить, не разобрался с ними, в прочем как с массивами всеми. пока еще трудны для понимания. читаю, смотрю коды, пока туго
Если знаете как и не в тягость, подскажите, на конкретном рабочем примере может и понимание быстрее придет
mogul вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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