[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 339

 
future >>:
Господа, всё мучаюсь над вопросом. Как написать следующее? Если цена в xx.xx текущего дня выше цены в yy.yy того же дня....то...Мне нужно, чтобы эти цены сравнивались каждый день. Я не знаю, как избежать упоминания даты. Пробовал datetime Time 1=D'().().() 12:00 '; но в тестере не получается. Ошибки не пишет, но при тестировании ощущение, что эти данные о времени просто игнорируются.

приблизительно так можно:

int время=iTime(NULL,PERIOD_D1,0)+60*(60*часы+минуты);

double цена=iOpen(NULL,PERIOD_M1,iBarShift(NULL,PERIOD_M1,время));

 


именнно по этой статье и делаю. но, как я писал выше,

channel=ddeinit('MT4','BID'); - все нормально, channel = 7.2920e-304   - соединение устанавливается

но

rc = ddeadv(channel, 'EURUSD','disp(x)','x',[1 1]);   -  ничего не происходит,

несмотря на  rc = 1.

хотя в статье вроде работает. что не так?

 


Здрасьте!

Подскажите пож. как в цикле проследить за тем, когда закроется сделка по стоп-лоссу или профиту?

С помощью какой функции это делается по-правильному?

Спасибо.

 
Klinskih писал(а) >>

Здрасьте!

Подскажите пож. как в цикле проследить за тем, когда закроется сделка по стоп-лоссу или профиту?

С помощью какой функции это делается по-правильному?

Спасибо.

События на закрытие ордера по стопу или тейку нет, но можно отслеживать наличие открытых ордеров

int OrdersTotal( )

Возвращает общее количество открытых и отложенных ордеров.

bool OrderSelect( int index, int select, int pool=MODE_TRADES) 

Функция выбирает ордер для дальнейшей работы с ним. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметр pool игнорируется, если ордер выбирается по номеру тикета. Номер тикета является уникальным идентификатором ордера. Чтобы определить, из какого списка выбран ордер, необходимо проанализировать его время закрытия. Если время закрытия ордера равно 0, то ордер является открытым или отложенным и взят из списка открытых позиций терминала. Отличить открытую позицию от отложенного ордера можно по типу ордера. Если время закрытия ордера не равно 0, то ордер является закрытым или удаленным отложенным и был выбран из истории терминала. Отличить закрытый ордер от удаленного отложенного также можно по типу ордера.

Так же можно посмотреть готовые реализации, например у KimIV - https://www.mql5.com/ru/forum/107476/page2

 
xeon >>:

События на закрытие ордера по стопу или тейку нет, но можно отслеживать наличие открытых ордеров

Возвращает общее количество открытых и отложенных ордеров.

Функция выбирает ордер для дальнейшей работы с ним. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметр pool игнорируется, если ордер выбирается по номеру тикета. Номер тикета является уникальным идентификатором ордера. Чтобы определить, из какого списка выбран ордер, необходимо проанализировать его время закрытия. Если время закрытия ордера равно 0, то ордер является открытым или отложенным и взят из списка открытых позиций терминала. Отличить открытую позицию от отложенного ордера можно по типу ордера. Если время закрытия ордера не равно 0, то ордер является закрытым или удаленным отложенным и был выбран из истории терминала. Отличить закрытый ордер от удаленного отложенного также можно по типу ордера.

Так же можно посмотреть готовые реализации, например у KimIV - https://www.mql5.com/ru/forum/107476/page2

Огромное спасибо за исчерпывающий ответ!

 
xeon >>:

События на закрытие ордера по стопу или тейку нет, но можно отслеживать наличие открытых ордеров

Возвращает общее количество открытых и отложенных ордеров.

Функция выбирает ордер для дальнейшей работы с ним. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметр pool игнорируется, если ордер выбирается по номеру тикета. Номер тикета является уникальным идентификатором ордера. Чтобы определить, из какого списка выбран ордер, необходимо проанализировать его время закрытия. Если время закрытия ордера равно 0, то ордер является открытым или отложенным и взят из списка открытых позиций терминала. Отличить открытую позицию от отложенного ордера можно по типу ордера. Если время закрытия ордера не равно 0, то ордер является закрытым или удаленным отложенным и был выбран из истории терминала. Отличить закрытый ордер от удаленного отложенного также можно по типу ордера.

Так же можно посмотреть готовые реализации, например у KimIV - https://www.mql5.com/ru/forum/107476/page2

Огромное спасибо за исчерпывающий ответ!

 
future >>:
Господа, всё мучаюсь над вопросом. Как написать следующее? Если цена в xx.xx текущего дня выше цены в yy.yy того же дня....то...Мне нужно, чтобы эти цены сравнивались каждый день. Я не знаю, как избежать упоминания даты. Пробовал datetime Time 1=D'().().() 12:00 '; но в тестере не получается. Ошибки не пишет, но при тестировании ощущение, что эти данные о времени просто игнорируются.

Для тестера подойдет

int час=15;час2=20;
int мин=21;мин2=00;

if(Hour()>час-1&&Hour()<час+1&&Minute()>мин-1&&Minute()<мин+1)
double цена_инструмента=Bid;
if(Hour()>час2-1&&Hour()<час2+1&&Minute()>мин2-1&&Minute()<мин2+1)
double цена_инструмента2=Bid;

if(цена_инструмента>цена_инструмента2)....
if(цена_инструмента<цена_инструмента2)....
 

Здравствуйте.

Как узнать факт срабатывания SL или TP. Например, если ордер закрывается по

SL или TP, то выполнить то-то и то-то... Я что-то не нашел такой функции.

 

Допустим, набор Индикаторов был сохранен в Шаблон и Шаблон был загружен для к-л валютной пары.

- Есть ли после этого у Индикаторов в этом окне какая-нибудь связь с параметрами сохраненными в Шаблоне или они становятся совершенно независимыми?

 
chief2000 >>:

Допустим, набор Индикаторов был сохранен в Шаблон и Шаблон был загружен для к-л валютной пары.

- Есть ли после этого у Индикаторов в этом окне какая-нибудь связь с параметрами сохраненными в Шаблоне или они становятся совершенно независимыми?


Сохраненные пар-ры "вбиваются" в индикаторы один раз при инициализации шаблона, потом "они становятся совершенно независимыми"/

Все измененные параметры индик. сохраняются в шаблон, если изменили пар-ры инд. пересохраните шаблон.

Причина обращения: