Ответить
08.11.2014, 18:45
Аватар для сергей киров
сергей киров сергей киров вне форума Почётный гражданин
Регистрация: 09.01.2011 / Сообщений: 1,299
Поблагодарили 383 раз(а) / Репутация: 379
учусь вот разбиратьтся как что работает в граалях
и хочу чтобы помогли мне привернуть время торговли
в советник ниже
тоесть время в которое сделки открываются
а закрытие всегда

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

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

На будущее, для доработки советников и индикаторов есть соответствующая ветка.
http://forexsystemsru.com/yazyk-prog...v-vol-2-a.html

Последний раз редактировалось NSerega; 08.11.2014 в 20:46.
ctmcn , NSerega 
08.11.2014, 19:51
Аватар для ctmcn
ctmcn ctmcn вне форума Новичок форума
Регистрация: 02.04.2011 / Сообщений: 35
Поблагодарили 6 раз(а) / Репутация: 7
AlexeyVik
Так в тестере шаблон на автомате прогоняется - там это не актуально.
При реальных котировках надо - использую как "квакер" - есть сигнал - смотрим где, потому и спрашивал. Потому что Тестер от реала отличается однако - для динамических уровней надо мне это смотреть.
Опция была очень нужная, зачем убрали в новых билдах непонятно.
Теперь очень неудобно стало, как и многое другое...
P.S. А для закрытия ордеров по аналогии добавить ?
10.11.2014, 06:18
Аватар для hollydiger
hollydiger hollydiger вне форума Интересующийся
Регистрация: 05.11.2014 / Сообщений: 3
Поблагодарили 0 раз(а) / Репутация: 1
Код:
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 секунд... Может это можно как-нибудь решить?
10.11.2014, 11:54
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Это никто не решит.
Смотрим время открытия предидущего бара и соответственно вычисляем в таймере, когда должен закрыться текущий.
Или я не понял задачи?
13.11.2014, 11:24
Аватар для gince
gince gince на форуме Местный знаток
Регистрация: 09.09.2008 / Адрес: Литва / Сообщений: 434
Поблагодарили 792 раз(а) / Репутация: 792
  • Отправить сообщение для gince с помощью Skype™
Привет всем.
Кто может написать условие (можно в функцию засунуть) по индикатору.
Условия
Появилась первая синяя точка выше белой линии (перед тем на прошлом баре была ниже) и, если нет голубой, открываемся по направлению от других индикаторов.
Если есть голубая, ждем следующей синей точки и открываемся по направлению от других индикаторов.
Картинки и индикатор ниже.
Гинтарас
13.11.2014, 17:25
Аватар для ansol
ansol ansol на форуме Местный знаток
За призовое место в конкурсе 

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

Регистрация: 22.04.2010 / Сообщений: 2,026
Поблагодарили 862 раз(а) / Репутация: 848
Никаких.
Ну если страшно, сделай отдельную функцию и вызывай из init или deinit ну и соответственно из OnTick()
Да не страшно и вроде бы уже работает. Глупо как-то два одинаковых куска кода вставлять в OnDeinit() и еще куда-то.
Вызвал деинит с кодом 5
PHP код:
OnDeinit(5); 
И всех делов
13.11.2014, 22:34
Аватар для egorr007
egorr007 egorr007 вне форума Новичок форума
Регистрация: 31.08.2012 / Сообщений: 45
Поблагодарили 14 раз(а) / Репутация: 15
Привет всем.
Кто может написать условие (можно в функцию засунуть) по индикатору.
Условия
Появилась первая синяя точка выше белой линии (перед тем на прошлом баре была ниже) и, если нет голубой, открываемся по направлению от других индикаторов.
Если есть голубая, ждем следующей синей точки и открываемся по направлению от других индикаторов.
Картинки и индикатор ниже.
Код 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)// голубая точка  
//----------------------------------------------------------------+
gince 
13.11.2014, 23:21
Аватар для egorr007
egorr007 egorr007 вне форума Новичок форума
Регистрация: 31.08.2012 / Сообщений: 45
Поблагодарили 14 раз(а) / Репутация: 15
Код HTML:
учусь вот разбиратьтся как что работает в граалях
и хочу чтобы помогли мне привернуть время торговли 
в советник ниже
тоесть время в которое сделки открываются


а закрытие всегда
14.11.2014, 11:08
Аватар для Дмитрий007
Дмитрий007 Дмитрий007 на форуме Элитный участник
За первое место в конкурсе За призовое место в конкурсе 

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

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

Например, значения RSI на рассматриваемой свече упало, при этом нам нужно к этому значению еще добавить количество пунктов закрытой свечи. Если долго, объяснять не надо...
Два оператора - "+" - для добавления, "-" - для "отнимания"
Добрею прямо на глазах
15.11.2014, 15:19
Аватар для mogul
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 ... и т.п.
получаю новые данные, цифры там естественно другие, как мне сравнить новые со старыми, к примеру отнять от большего нового, меньшее старое или наоборот.

прошу, не откажите в просьбе.
15.11.2014, 17:23
Регистрация: 13.03.2009 / Сообщений: 2,329
Поблагодарили 1,950 раз(а) / Репутация: 2027
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
Чужие программы не переделываю!
15.11.2014, 17:50
Аватар для mogul
mogul mogul вне форума Активный участник
Регистрация: 20.04.2009 / Сообщений: 12
Поблагодарили 0 раз(а) / Репутация: 0
спасибо огромное, но .. опять lo не нашел, 0 выдает по lo, hi прекрасно находит.
15.11.2014, 17:55
Аватар для ansol
ansol ansol на форуме Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,026
Поблагодарили 862 раз(а) / Репутация: 848
спасибо огромное, но .. опять lo не нашел, 0 выдает по lo, hi прекрасно находит.
Либо где-то встречается цена нулевая "0.0" или "0", либо где-то попадается так: ";;", что то же самое по смыслу.
mogul 
15.11.2014, 18:02
Аватар для mogul
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;
15.11.2014, 18:42
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
так все выглядит, двойных ;; точно нет, эту болезнь поборол

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

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


Опции темы

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

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



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


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