Ответить
08.11.2013, 09:20
Аватар для Andy200577
Andy200577 Andy200577 вне форума Новичок форума
Регистрация: 20.06.2012 / Сообщений: 57
Поблагодарили 8 раз(а) / Репутация: 9
День добрый всем!
Подскажите пожалуйста, как можно передать в код MQL4 общую сумму прибыли или убытка по всем открытым ордерам, которую терминал в списке ордеров всегда показывает жирным шрифтом в самом низу справа? Есть ли специальная функция для этого или нужно отдельную процедуру писать?
Спасибо.
08.11.2013, 09:43
Аватар для Andy200577
Andy200577 Andy200577 вне форума Новичок форума
Регистрация: 20.06.2012 / Сообщений: 57
Поблагодарили 8 раз(а) / Репутация: 9
День добрый всем!
Подскажите пожалуйста, как можно передать в код MQL4 общую сумму прибыли или убытка по всем открытым ордерам, которую терминал в списке ордеров всегда показывает жирным шрифтом в самом низу справа? Есть ли специальная функция для этого или нужно отдельную процедуру писать?
Спасибо.
Извиняюсь, сам нашёл ответ, всё оказалось элементарно:
AccountEquity() - AccountBalance()
08.11.2013, 10:05
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,029 раз(а) / Репутация: 9029
  • Отправить сообщение для eevviill с помощью Skype™
Извиняюсь, сам нашёл ответ, всё оказалось элементарно:
AccountEquity() - AccountBalance()
Гы. Не, это ещё елементарней.
PHP код:
AccountProfit() 
08.11.2013, 10:30
Аватар для Andy200577
Andy200577 Andy200577 вне форума Новичок форума
Регистрация: 20.06.2012 / Сообщений: 57
Поблагодарили 8 раз(а) / Репутация: 9
Гы. Не, это ещё елементарней.
PHP код:
AccountProfit() 
Спасибо. Только тогда ещё один вопрос.
А есть ли подобная функция, только не в валюте депозита, отображение, а в пунктах?
08.11.2013, 10:35
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,029 раз(а) / Репутация: 9029
  • Отправить сообщение для eevviill с помощью Skype™
Спасибо. Только тогда ещё один вопрос.
А есть ли подобная функция, только не в валюте депозита, отображение, а в пунктах?
Нету.

Надо отдельно функцию делать.
08.11.2013, 10:36
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,029 раз(а) / Репутация: 9029
  • Отправить сообщение для eevviill с помощью Skype™
iTime[],iOpen[]...
Являются ли эти переменные предопределёнными?
08.11.2013, 10:54
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Спасибо. Только тогда ещё один вопрос.
А есть ли подобная функция, только не в валюте депозита, отображение, а в пунктах?
Пункты разные у разных пар бывают. Есть ли смысл?
08.11.2013, 10:55
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
iTime[],iOpen[]...
Являются ли эти переменные предопределёнными?
Нет, но они совпадают с предопределенными функциями. Синтаксическая ошибка.
08.11.2013, 10:57
Аватар для Andy200577
Andy200577 Andy200577 вне форума Новичок форума
Регистрация: 20.06.2012 / Сообщений: 57
Поблагодарили 8 раз(а) / Репутация: 9
iTime[],iOpen[]...
Являются ли эти переменные предопределёнными?
Все предопределённые переменные, насколько я понимаю, вот в этом списке- _http://docs.mql4.com/ru/predefined/variables

Последний раз редактировалось NSerega; 08.11.2013 в 13:24.
08.11.2013, 11:01
Аватар для Andy200577
Andy200577 Andy200577 вне форума Новичок форума
Регистрация: 20.06.2012 / Сообщений: 57
Поблагодарили 8 раз(а) / Репутация: 9
Пункты разные у разных пар бывают. Есть ли смысл?
Ну например, хеджирование по разным парам, стоят ордера на обеих парах, как только суммарно по пунктам достигается определенное значение, совершается какое-либо определённое действие.
08.11.2013, 13:59
Аватар для ansol
ansol ansol вне форума
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
Ну например, хеджирование по разным парам, стоят ордера на обеих парах, как только суммарно по пунктам достигается определенное значение, совершается какое-либо определённое действие.
1 пункт на разных парах стОит по-разному - см. MarketInfo(Symbol(), MODE_TICKVALUE)
Так что придется либо суммировать сделки по парам(OrderProfit()) в цикле, либо пункты в валюту депозита переводить/
Имхо, логичнее прибыль считать, а не пункты - ну это от вашей стратегии зависит, конечно.
08.11.2013, 15:50
Аватар для moisei
moisei moisei вне форума Прохожий
Регистрация: 08.11.2013 / Сообщений: 1
Поблагодарили 1 раз в 1 сообщении / Репутация: 2

По умолчанию Подскажите плиииз!

Здравствуйте.Подскажите пожалуйста как можно установить на индикаторе отправку на почту или на ID. Спасибо
08.11.2013, 19:36
Регистрация: 13.03.2009 / Сообщений: 2,329
Поблагодарили 1,949 раз(а) / Репутация: 2026
В справочнике есть SendMail() SendNotification()
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
11.11.2013, 18:29
Аватар для perajok
perajok perajok на форуме Активный участник
Регистрация: 17.10.2013 / Сообщений: 226
Поблагодарили 135 раз(а) / Репутация: 136
можно ли средствами mql4 читать алерты от других индюков и тд? но не на прямую. советник просто должен мониторить алерты.. и читать их, регулярными выражениями находить там определенные слова и должным образом реагировать. есть ли регулярки в mql4 это второй вопрос хотя я смогу и без них. в общем есть ли функции для мониторинга алертов?
11.11.2013, 18:43
Аватар для ansol
ansol ansol вне форума
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
Пытаюсь "обрезать" лишние тики при тестировании:
PHP код:
int start()
  {
// Для теста
         
if(IsTesting() || IsOptimization()) 
            {
             
int spread Point*MarketInfo(Symbol(), MODE_SPREAD)/2;
               if(
Volume[0] == 1) { Rhigh Bid spreadRlow Bid spread; }
                  if(
Bid >= Rlow && Bid <= Rhigh) return(0);
                     if(
Rhigh BidRhigh Bid spread;
                     if(
Rlow BidRlow Bid spread;
             }
...
код совы...
return(
0);

Rhigh и Rlow объявлены "до того как".
Т.е. болтание цены внутри уже пройденного диапазона не должно обрабатываться.
Например, спред в тесте ставим 10, тогда цена внутри ±5 тиков просто завершает обработку по return(0)
Эффекта не вижу, очень долго тестирует, может ошибка вкралась где-то у меня?

Последний раз редактировалось ansol; 11.11.2013 в 18:48.
11.11.2013, 18:55
Аватар для _SERG_
_SERG_ _SERG_ на форуме Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
можно ли средствами mql4 читать алерты от других индюков и тд? но не на прямую. советник просто должен мониторить алерты.. и читать их, регулярными выражениями находить там определенные слова и должным образом реагировать. есть ли регулярки в mql4 это второй вопрос хотя я смогу и без них. в общем есть ли функции для мониторинга алертов?

Читать алерты можно через глобальные переменные, если другие индикаторы или советники, эти переменные обновляют при работе. Но есть одна проблемка, считывать эти переменные индикатор или советник будет, при поступлении только котировки на тот график на котором установлен советник(индикатор).
Иными словами советник придётся зацикливать.

В общем решаемый вопрос.

А вот про "регулярные выражения" я чегото не понял.
11.11.2013, 19:09
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,029 раз(а) / Репутация: 9029
  • Отправить сообщение для eevviill с помощью Skype™
Пытаюсь "обрезать" лишние тики при тестировании:
PHP код:
int start()
  {
// Для теста
         
if(IsTesting() || IsOptimization()) 
            {
             
int spread Point*MarketInfo(Symbol(), MODE_SPREAD)/2;
               if(
Volume[0] == 1) { Rhigh Bid spreadRlow Bid spread; }
                  if(
Bid >= Rlow && Bid <= Rhigh) return(0);
                     if(
Rhigh BidRhigh Bid spread;
                     if(
Rlow BidRlow Bid spread;
             }
...
код совы...
return(
0);

Rhigh и Rlow объявлены "до того как".
Т.е. болтание цены внутри уже пройденного диапазона не должно обрабатываться.
Например, спред в тесте ставим 10, тогда цена внутри ±5 тиков просто завершает обработку по return(0)
Эффекта не вижу, очень долго тестирует, может ошибка вкралась где-то у меня?
PHP код:
Rhigh Bid spreadRlow Bid spread; }
                  if(
Bid >= Rlow && Bid <= Rhigh) return(0); 
допустим бид==4, спред 2
rh=4+2=6
rl=4-2=2
если(4>=2 && 4<=6) return

Вот тебе и ретурнает.
11.11.2013, 19:17
Аватар для ansol
ansol ansol вне форума
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
PHP код:
Rhigh Bid spreadRlow Bid spread; }
                  if(
Bid >= Rlow && Bid <= Rhigh) return(0); 
допустим бид==4, спред 2
rh=4+2=6
rl=4-2=2
если(4>=2 && 4<=6) return

Вот тебе и ретурнает.
Не понял, пардон.
EURUSD Bid=1.30040
Spread я ставлю в тесте 10, половинка от него = 5
имеем rh=1.30045 и rh=1.30035
пока Bid за эти пределы не выползет на текущей свече, то должно пропускать тик по return
Или как? У меня-то похоже не пропускает, а обрабатывает все тики.

Может как-то по другому ускорить обработку? Оптимизация очень долго идет, даже если по часу 1 проход, то всего 24 комбинации в сутки проверяются.
11.11.2013, 19:38
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,029 раз(а) / Репутация: 9029
  • Отправить сообщение для eevviill с помощью Skype™
Не понял, пардон.
EURUSD Bid=1.30040
Spread я ставлю в тесте 10, половинка от него = 5
имеем rh=1.30045 и rh=1.30035
пока Bid за эти пределы не выползет на текущей свече, то должно пропускать тик по return
Или как? У меня-то похоже не пропускает, а обрабатывает все тики.

Может как-то по другому ускорить обработку? Оптимизация очень долго идет, даже если по часу 1 проход, то всего 24 комбинации в сутки проверяются.
Может в этих строках проблема(я не уверен)?
PHP код:
if(Rhigh BidRhigh Bid spread
                     if(
Rlow BidRlow Bid spread
11.11.2013, 19:45
Аватар для ansol
ansol ansol вне форума
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
Может в этих строках проблема(я не уверен)?
PHP код:
if(Rhigh BidRhigh Bid spread
                     if(
Rlow BidRlow Bid spread
В смысле? Фигурными скобками обточить? Счас попробую.
Так-то смысл в том, чтобы "полоса возврата" расширялась до размера всей свечи, т.е. изменение цены внутри свечи сову не интересует. Если цена такая на этой свече уже была, то ее повторно обрабатывать не надо.
На реале-то пофиг, а на тесте как-то надо ускорить процесс, вот я и выдумываю.
Там вот еще:
PHP код:
if(Volume[0] == 1) { Rhigh Bid spreadRlow Bid spread; } 
Я правильно понимаю, что в тесте все тики обрабатываются всегда, т.е. Volume[0] == 1 - это первый тик текущей свечи?
Ответить

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


Опции темы

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

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



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


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