Ваши вопросы по языку MQL4

ansol

Местный знаток
Когда выставляешь - запоминай время. Потом сравнивай со временем текущей свечи.

Это очень печально, потому что ордеров может быть не один, тогда придется объявить массив и в нем хранить время ордеров, причем, удаленные ордера придется "выкуривать" из массива. Т.е. все как-то сложно получается.
 

matro3

Почетный гражданин
Наверняка можно по тикету все это сделать
 

ansol

Местный знаток
Наверняка можно по тикету все это сделать

По тикету - это как? Он же OrderOpenTime() не показывает, а номера тикетов произвольно назначаются. Я, конечно, вижу, что номера растут по времени выставления, но... В тестере оно сработает, а в реале?
 

AlexeyVik

Программист mql4 mql5
Как узнать время выставления отложенного ордера?
OrderOpenTime() для отложенника не работает. Или я что-то не понял? :(
Задача - удалять ордер по открытию новой свечи, а у всех ДЦ, с которыми я имел дело, меньше 10 минут отложенники не дает ставить.
Как это не работает??? Такого быть не может...
А время экспирации 10 минут это примочки МТ, а не ДЦ. Или совместно принятое решение.
 

matro3

Почетный гражданин
OrderSend
Возвращаемое значение
Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
 

Ugar

Гуру форума
Как узнать время выставления отложенного ордера?
OrderOpenTime() для отложенника не работает. Или я что-то не понял?
Что то не понял!
Решил проверить, мало ли вдуг косяк в новом языке. Проверил, работает.
Точно как в старых билдах.
 

ctmcn

Новичок форума
Здравствуйте !
Подскажите пожалуйста, есть ли возможность добавить блок построений для минутных таймфреймов, что бы было так:

if(Period()<=PERIOD_M30){WriteGM();} (добавить)
if(Period()==PERIOD_H1){WriteGH1();}
if(Period()==PERIOD_H4){WriteGH4();}
if(Period()==PERIOD_D1){WriteGD1();}
if(Period()>=PERIOD_W1){WriteGW1();}

надо, чтобы на минутных таймфреймах расчет выполнялся для 4-х часовых свечей по аналогии с расчетом для таймфрейма Н1 (где расчет выполняется для дней).
И как это сделать (прописать 4-х часовые свечи) ?
С уважением.
 

Вложения

  • ExclusiveForex_v1.mq4
    27,6 КБ · Просмотры: 24

ansol

Местный знаток
Что то не понял!
Решил проверить, мало ли вдуг косяк в новом языке. Проверил, работает.
Точно как в старых билдах.

Вот так заработало:
PHP:
if(OrderType() == OP_BUYLIMIT && fOpenBuy && iTime(sSymbol, iTF, 0) < OrderOpenTime()) return(false);
А до этого было всегда "true" и ордера шпарили в тестере каждым тиком.
Ну, бывает, что-то не так написал наверное.
Ну, т.е. время открытия ордера больше времени открытия текущей свечи может быть только до ее окончания, а на новой свече уже можно новый ордер ставить с удалением старого(или без оного) ;)
 

hoz

Активный участник
Вот так заработало:
PHP:
if(OrderType() == OP_BUYLIMIT && fOpenBuy && iTime(sSymbol, iTF, 0) < OrderOpenTime()) return(false);
А до этого было всегда "true" и ордера шпарили в тестере каждым тиком.
Ну, бывает, что-то не так написал наверное.
Ну, т.е. время открытия ордера больше времени открытия текущей свечи может быть только до ее окончания, а на новой свече уже можно новый ордер ставить с удалением старого(или без оного) ;)

Чё та слишком замудрено. Думайте проще:facepalm:
 

hoz

Активный участник
Читаю тут _http://docs.mql4.com/ru/basis/oop/staticmembers
"Метод с модификатором const называется постоянным и не может модифицировать неявные члены своего класса."
Как понять не может модифицировать неявные члены ? Чё та у меня мозг не сразу воспринимает в последнее время теорию.
И вообще, если переменная с модификатором const тут всё понятно. Переменной получено значение один раз, и больше значение данной переменной не изменится в будущем. Но хотя б один раз переменная получит значение. Тут всё понятно.
А как понять метод с модификтором const ?
Ведь в методе то может быть несколько функций. Есть у кого-нить примеры из практики употребления?
 
Последнее редактирование модератором:

sergey1989

Интересующийся
Добрый вечер, подскажите пожалуйста, как прописать функцию по очистке истории от ордеров, допустим у меня закрылась сетка по профиту и вся история стерлась, а то моя функция открывает последний ордер с предыдущей сетки) и еще добавить паузу, чтобы успел очистить, заранее спасибо
 

sergey1989

Интересующийся
парни, или может можно прописать в советнике, чтобы он записывал историю своих закрытых и открытых ордеров в каком нибудь фаиле, например ТХТ, и пользовался только этим фаилом для поиска ордеров в истории, а при определенных условиях очищал его, такое возможно?
 

ansol

Местный знаток
Что то не понял!
Решил проверить, мало ли вдуг косяк в новом языке. Проверил, работает.
Точно как в старых билдах.

Теперь у меня ерунда с OrderOpenPrice() для отложенников.
Пытаюсь его сравнить с Bid на предмет, если ушел далеко, то открыть новый.
P.S. А я ХЗ, чё там в старых билдах, я только счас маркеты на лимитники стал менять с целью заюзать полезности ECN.
 

AlexeyVik

Программист mql4 mql5
Теперь у меня ерунда с OrderOpenPrice() для отложенников.
Пытаюсь его сравнить с Bid на предмет, если ушел далеко, то открыть новый.
P.S. А я ХЗ, чё там в старых билдах, я только счас маркеты на лимитники стал менять с целью заюзать полезности ECN.
Может ты забываешь выбрать ордер перед определением цены открытия ордера?
 

hoz

Активный участник
Добрый вечер, подскажите пожалуйста, как прописать функцию по очистке истории от ордеров, допустим у меня закрылась сетка по профиту и вся история стерлась, а то моя функция открывает последний ордер с предыдущей сетки) и еще добавить паузу, чтобы успел очистить, заранее спасибо

Моя твоя не понимать.
 

hoz

Активный участник
Теперь у меня ерунда с OrderOpenPrice() для отложенников.
Пытаюсь его сравнить с Bid на предмет, если ушел далеко, то открыть новый.
P.S. А я ХЗ, чё там в старых билдах, я только счас маркеты на лимитники стал менять с целью заюзать полезности ECN.

А чё там может не получаться? Пробегаете в цикле по всем ордерам рыночным, в нём же при определённых условиях сравниваете OrderOpenPrice() каждого выбранного ордера в БИДОМ и если разница между ними больше некоторого значения.. посылаете новый..
 

hoz

Активный участник
Неужели этот вопрос неподъёмный такой и никто не сталкивался с подобными модификаторами?
 

sergey1989

Интересующийся
Добрый вечер, я наверное не правильно выразился, возможно ли удалять из истории закрытые ордера, допустим при каких-то условиях история по данному символу стирается, если да, то как это прописать?
 

Олег75

Активный участник
Всем доброго дня ,подскажите как вернуть время открытия открытого ордера и время закрытия предыдущего ордера, а затем сравнить это время между собой?
 
Верх