Здравствуйте, гость ( Вход | Регистрация )

8 страниц V « < 4 5 6 7 8 >  
Ответить в эту темуОткрыть новую тему
> Советник Ray Tactic Advisor, Советник на основе индикатора ZUP
Sergey_n
сообщение 13.7.2007, 7:03
Сообщение #51





Группа: Активный участник
Сообщений: 22
Регистрация: 5.7.2007
Пользователь №: 1 414
Спасибо сказали: 0 раз(а)



Цитата(NoName @ 13.7.2007, 5:53) *

Цитата(Sergey_n @ 12.7.2007, 20:24) *

Помогите пожалуйста.
Тут такая делема: Допустим, открывается ордер на покупку и одновременно ставится отложенный ордер на продажу, как сделать так чтобы если по ордеру сработал Тейкпрофит, удалить отложенный ордер? Проблема в том, что там еще могут быть сделки нужно что-то с номером ордера поколдовать, так чтобы отложенный ордер закрывался тока тот, который был открыт именно тем ордером, который по профиту закрылся.
Может вы знаете, как вести точный учет номеров ордера?
С уважение Сергей.


Это вопрос весьма обширный. Данные статьи помогут Вам понять принцип построения системы учёта ордеров в советнике:

http://articles.mql4.com/ru/126 - Управление ордерами – это просто
http://articles.mql4.com/ru/114 - Учёт ордеров в большой программе
http://articles.mql4.com/ru/105 - MagicNumber – "магический" идентификатор ордера

Кроме того, статьи Rosh'а:
http://old.alpari.org/ru/experts/articles/8.html - 7. Ордера в MetaTrader4
http://old.alpari.org/ru/experts/articles/9.html - 8. Закрытие и удаление ордеров

На мой взгляд, это необходимый минимум, который нужно усвоить, для того что бы решать Вашу задачу.


Спасибо огромное.

int start()
{
…..
//тут операторы(1)

if (iCustom(NULL, 0, "ZUP_v49mod", minPercent, minSize, minBars, 0, 0)==0) return(0);
// и тут операторы(2)
……..
return(0);
}

Я так про return и не понял, вот в этом примере return в функции Custom куда отсылает. Будут ли выполнятся операторы(1), пока условие истинно?


Сообщение отредактировал Sergey_n - 13.7.2007, 7:21
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 13.7.2007, 8:13
Сообщение #52





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Давайте я приведу другой пример, более наглядный.

Код
int start()
{
int A,B,C;

A=3;
B=5;

return(0);
[code]
C=A+B; // эта строка не выполнится никогда!
return(0);
}


Код
int start()
{
int A,B,C;

A=3;
B=5;

if (true)
{
// ... какие-то действия
return(0);
}
C=A+B; // эта строка  не выполнится никогда!
return(0);
}


Цитата
Я так про return и не понял, вот в этом примере return в функции Custom куда отсылает. Будут ли выполнятся операторы(1), пока условие истинно?

В вашем примере операторы (1) будут выполняться всегда, не зависимо от того истинно условие или ложно. А вот операторы (2) будут выполняться только тогда когда условие будет ложно.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergey_n
сообщение 13.7.2007, 10:11
Сообщение #53





Группа: Активный участник
Сообщений: 22
Регистрация: 5.7.2007
Пользователь №: 1 414
Спасибо сказали: 0 раз(а)



Цитата(NoName @ 13.7.2007, 8:13) *

Давайте я приведу другой пример, более наглядный.

Код
int start()
{
int A,B,C;

A=3;
B=5;

return(0);
[code]
C=A+B; // эта строка не выполнится никогда!
return(0);
}


Код
int start()
{
int A,B,C;

A=3;
B=5;

if (true)
{
// ... какие-то действия
return(0);
}
C=A+B; // эта строка  не выполнится никогда!
return(0);
}


Цитата
Я так про return и не понял, вот в этом примере return в функции Custom куда отсылает. Будут ли выполнятся операторы(1), пока условие истинно?

В вашем примере операторы (1) будут выполняться всегда, не зависимо от того истинно условие или ложно. А вот операторы (2) будут выполняться только тогда когда условие будет ложно.


Спасибо вроде понял)
С уважением Сергей.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 13.7.2007, 10:49
Сообщение #54





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Вот здесь вроде-бы есть примеры на что-то подобное -
Vector94, post 26.02.2007 И там дальше посмотрите...
http://forum.liteforex.net/viewtopic.php?f...&sd=a&start=270
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 13.7.2007, 15:43
Сообщение #55





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Цитата(Sergey_n @ 11.7.2007, 22:15) *

2) какие индикаторы лучше всего показывают выход из хеджирования, и может быть видели готовые блоки или советники работающие по такому принципу?


Вот, похоже, ответ на Ваш вопрос появился сегодня:
http://articles.mql4.com/ru/428 - Основы создания хеджирующего эксперта
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergey_n
сообщение 13.7.2007, 17:25
Сообщение #56





Группа: Активный участник
Сообщений: 22
Регистрация: 5.7.2007
Пользователь №: 1 414
Спасибо сказали: 0 раз(а)



Цитата(NoName @ 13.7.2007, 15:43) *

Цитата(Sergey_n @ 11.7.2007, 22:15) *

2) какие индикаторы лучше всего показывают выход из хеджирования, и может быть видели готовые блоки или советники работающие по такому принципу?


Вот, похоже, ответ на Ваш вопрос появился сегодня:
http://articles.mql4.com/ru/428 - Основы создания хеджирующего эксперта


Вот спасибо, я вроде весь сайт перерыл, а тут)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergey_n
сообщение 14.7.2007, 17:57
Сообщение #57





Группа: Активный участник
Сообщений: 22
Регистрация: 5.7.2007
Пользователь №: 1 414
Спасибо сказали: 0 раз(а)



Добрый вечер.
Есть вопрос: Нужно с помощью функции OrderSend выбрать последнюю из закрытых сделок по данному валютному инструменту, я себе это представляю так
Цикл -> выбор ордера в соответствие с параметрами цикла (из закрытых - MODE_HISTORY) -> проверка валюты -> а вот как проверить что эта сделка последняя?
Поделитесь мыслями, или код подкиньте.
С уважением Сергей.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 14.7.2007, 18:15
Сообщение #58





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



"Нужно с помощью функции OrderSend выбрать ...."
Не совсем "OrderSend"...

RickD :
Получить тикет последнего закрытого ордера из истории.
Если тип ордера не указан, берется самый последний ордер любого типа.
Если ордеров, отвечающих указанным критерию не найдено, возвращает -1.

Код
int GetLastOrderHist(int type = -1)
{
  int ticket = -1;
  datetime dt = 0;
  int cnt = HistoryTotal();
    
  for (int i=0; i < cnt; i++) {
    if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;

    //Опционально
    if (OrderSymbol() != Symbol()) continue;
    //Опционально
    if (OrderMagicNumber() != Magic) continue;
    
    if (type != -1 && OrderType() != type) continue;
    
    if (OrderCloseTime() > dt) {
      dt = OrderCloseTime();
      ticket = OrderTicket();
    }
  }
  
  return (ticket);
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergey_n
сообщение 14.7.2007, 18:48
Сообщение #59





Группа: Активный участник
Сообщений: 22
Регистрация: 5.7.2007
Пользователь №: 1 414
Спасибо сказали: 0 раз(а)



Почему все так сложно=(, написать бы, ну ка выдай последний закрытый ордер, или грааль делай деньги =))
Кстати у меня в советнике не используется магикнумбер.
А за код, большое спасибо.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergey_n
сообщение 14.7.2007, 18:59
Сообщение #60





Группа: Активный участник
Сообщений: 22
Регистрация: 5.7.2007
Пользователь №: 1 414
Спасибо сказали: 0 раз(а)



Я так и не понял, как он выбирает тикет именно последнего ордера, какой функцией?

Спасибо еще раз, я алгоритм пару раз глянул и понял как работает.

Сообщение отредактировал Sergey_n - 14.7.2007, 19:21
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

8 страниц V « < 4 5 6 7 8 >
Ответить в эту темуОткрыть новую тему

 



- Текстовая версия Сейчас: 19.3.2026, 16:48