Перейти к содержанию

Исполнение Buy-Sell ордеров, отложек - тема для программистов


Рекомендуемые сообщения

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано (изменено)
[Обсуждение] Исполнение Buy-Sell ордеров, отложек: общие вопросы



Здравствуйте!
Вопрос: Как можно получить значение типа последнего закрытого ордера в коде? Изменено пользователем Pavel888
Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 71
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Дури не хватит одновременно послать ордера с разных советников. Они всяко будут работать по очереди.

Перейти

Хранить данные в комментарии можно но лучше воздерживать или дублировать во внешней БД. Для компрессии строк можно применять base64 кодирование. Если есть подозрения на то что сторонний скрипт или со

Перейти

Длина строки комментариев к ордеру 31 или 33 символа (точно не помню, но точно больше 30). На комментарии никогда не опираюсь когда пишу советники. В основном если нужно записывать информацию, то пишу

Перейти
Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано
int t,i,hstTotal=OrdersHistoryTotal();
for(i=0;iif (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
t = OrderType();
if ( (t == OP_BUY || t == OP_SELL) && OrderCloseTime( ) != 0 ) {

break; // Найден последний закрытый ордер
}
}
}


Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

Здравствуйте!
А как можно ограничить количество открываемых ордеров за период?

Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

Количество знаков после запятой в лоте (мини/микро лоты):

Цитата

int LotDecimals = NormalizeDouble(MathAbs(MathLog(MarketInfo(Symbol(),MODE_LOTSTEP))/MathLog(10)),0);

Ссылка на сообщение
Поделиться на другие сайты

  • 3 weeks later...
Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

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

Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

с точки зрения производительности лучше вот так искать последний закрытый ордер:

int i;
for(i=OrdersHistoryTotal()-1; i >= 0;i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderCloseTime( ) != 0 ) {
break; // Найден последний закрытый ордер
}
}
}

ибо если в истории 1кк ордеров, то какой смысл просматривать историю с самого начала.
сравнивать тип ордера нет смысла также, потому что "Open and pending orders close time is equal to 0."

p.s. не могу вставить code тэг, получаю ошибку "Sorry, you are not allowed to post external links. "

Ссылка на сообщение
Поделиться на другие сайты

  • 1 month later...
Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

Как ставить отложки выше и ниже хаев и лоев предыдущей свечи ?

Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано


Как ставить отложки выше и ниже хаев и лоев предыдущей свечи ?


double PriceHigh = High[1]; // Уровень хайда предыдущей свечи
double PriceLow = Low[1]; // Уровень лоу предыдущей свечи

OrderSend(Symbol(), OP_BUYSTOP, 0.01, PriceHigh, slippage, sl, tp, Comment, Magic, 0, Blue); //Байстоп
OrderSend(Symbol(), OP_SELLSTOP, 0.01, PriceLow, slippage, sl, tp, Comment, Magic, 0, Red); //Селстоп


Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

Здравствуйте. Напишите, пожалуйста, индикатор: если терминальное время равно заданному, то появляется вертикальная линия. Как разделитель периодов.

Ссылка на сообщение
Поделиться на другие сайты

  • 3 weeks later...
Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

Как привязать советнику фильтр по спреду, и функцию удаления отложек при превышении спред лимита? :) спс

Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

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

Ссылка на сообщение
Поделиться на другие сайты

  • 3 years later...
Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано (изменено)

Вопрос у меня вот какой к уважаемым программистам. Делаю советник, планирую использовать его на разных парах. Советник открывает сделки на открытии свечи. Проблема заключается в том что если открывается ордер по какой-нибудь паре, то открытие ордеров на других парах должно быть запрещено. Меня пугает вот какая возможность, бар открылся на одной паре, условия сошлись советник отправил ордер, он пока не появился в терминале, в это время открылся новый бар на другой паре условия тоже сходятся, и советник пуляет ордер по другой паре, в итоге имеем 2 ордера, хотя по плану должен быть один. Возможна такая ситуация? Если да, то как ее избежать - сделать паузы разной длительности для каждой пары после открытия свечи?

Изменено пользователем Pavel888
Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

Конечно можно использовать паузу, а еще присмотритесь к соседней теме, вот пост - http://tlap.com/forum/ugolok-programmista/13/obuchenie-yazyku-mql4-pod-metatrader-4/4034/?do=findComment&comment=241960.
На днях написал с помощью форумчан функцию, считающую количество пар в работе (с открытыми ордерами). С помощью нее можно ограничивать открытие ордеров на других парах.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано


Конечно можно использовать паузу, а еще присмотритесь к соседней теме, вот пост - http://tlap.com/forum/ugolok-programmista/13/obuchenie-yazyku-mql4-pod-metatrader-4/4034/?do=findComment&comment=241960.
На днях написал с помощью форумчан функцию, считающую количество пар в работе (с открытыми ордерами). С помощью нее можно ограничивать открытие ордеров на других парах.


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

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

Так это тоже не сложно. Нужна обычная функция, считающая "наши" открытые ордера в рынке. Если они уже есть, то запрет. Кстати ту функцию тоже можно подобным образом использовать.

Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано


Если они уже есть, то запрет.


А если они есть, но еще не появились в терминале. Приказ был послан, но ответ еще не получен...
Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

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

Иначе на открытии новой свечи несколько копий легко могут открыть ордера одновременно, не зная о намерениях друг друга.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

Просто интересно, что за ТС такая, подразумевающая частое совпадение сигналов с одновременным открытием на разных парах...

Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано


Просто интересно, что за ТС такая, подразумевающая частое совпадение сигналов с одновременным открытием на разных парах...


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

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано


Вопрос у меня вот какой к уважаемым программистам. Делаю советник, планирую использовать его на разных парах. Советник открывает сделки на открытии свечи. Проблема заключается в том что если открывается ордер по какой-нибудь паре, то открытие ордеров на других парах должно быть запрещено. Меня пугает вот какая возможность, бар открылся на одной паре, условия сошлись советник отправил ордер, он пока не появился в терминале, в это время открылся новый бар на другой паре условия тоже сходятся, и советник пуляет ордер по другой паре, в итоге имеем 2 ордера, хотя по плану должен быть один. Возможна такая ситуация? Если да, то как ее избежать - сделать паузы разной длительности для каждой пары после открытия свечи?


Вы по идее можете воспользоваться глобальными переменным.
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

Ф-ция ордерсенд должна вернуть тикет или ошибку. Сова зависает в ожидании исполнения функции, а МТ4 - однопоточный (пока), т.е. пока ордер не встанет и 1 сова не отработает код онТик, 2 сова не запустится.
Но для страховки можно и семафор на глобальных переменных как подсказал Qj

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

Дури не хватит одновременно послать ордера с разных советников. Они всяко будут работать по очереди.

  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано

Не смотря в безоговорочную веру в nixxer и 0ll, я бы задержки влепил...
и пусть меня называют параноиком. :)

Ссылка на сообщение
Поделиться на другие сайты

Исполнение Buy-Sell ордеров, отложек - тема для програм… Опубликовано


Не смотря в безоговорочную веру в nixxer и 0ll, я бы задержки влепил...
и пусть меня называют параноиком. :)


Тогда уж для верности вставить блок удаления одиночных ордеров с не совпадающими символами, пока две сети не выросли. :)Была у меня такая мысль. Лучшее средство от головной боли - гильотина.
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...