Есть пачка отложек в обе стороны. Если какая-то отложка сработала, то с другой стороны отложка крайняя сносится. На скрине я показал случай, который будет если сработала отложка в бай, и удалится крайняя отложка шортовая.
Это я сделал если сработала одна отложка. Но если сработает не одна а сразу 3? Т.е. нужно как-то вычислить количество сработанных отложек, и исходя из этого закрывать отложки противоположного сигнала.
Как это лучше сделать? Может кто-н. уже реализовывал данный момент? В отдельную ветку не решил переносить вопрос, возможно он покажется очень простых для понимающих этот момент лучше.
Если б нужно было снести только самую нижнюю одну отложку, то можно было бы в цикле найти отложку открытую по самой низкой цене и её снести, но если отложек несколько, тогда как быть? В общем, буду рад выслушать мнения тех, кто уже имеет опыт работы с сетками ордеров.
Виктор, когда удалена нижняя, по этому же условию удалится и следущая, ставшая самой нижней. Быстрота для тебя, а для программы главное, чтобы не на одном и том же тике, а так нормально! Пробуй!
borilunad: Виктор, когда удалена нижняя, по этому же условию удалится и следущая, ставшая самой нижней. Быстрота для тебя, а для программы главное, чтобы не на одном и том же тике, а так нормально! Пробуй!
Борис, так то оно понятно. Я просто вот что думал. По ходу тут нужно сделать цикл от 0 до некоторой переменной, хранящей значение сработавших отложек и на каждом проходе по циклу запускать функцию нахождения требуемого нам ордера и потом его закрытие. Только как фиксануть, что в текущий момент данная процедура выполнена не совсем ясно представляю.
И, кстати, поиск самых крайних отложек лучше произвести через стандартную функцию поиска, а потом значение времени открытия ордера и цену передать в функцию закрытия отложек, верно?
Есть пачка отложек в обе стороны. Если какая-то отложка сработала, то с другой стороны отложка крайняя сносится. На скрине я показал случай, который будет если сработала отложка в бай, и удалится крайняя отложка шортовая.
Это я сделал если сработала одна отложка. Но если сработает не одна а сразу 3? Т.е. нужно как-то вычислить количество сработанных отложек, и исходя из этого закрывать отложки противоположного сигнала.
Как это лучше сделать? Может кто-н. уже реализовывал данный момент? В отдельную ветку не решил переносить вопрос, возможно он покажется очень простых для понимающих этот момент лучше.
Если б нужно было снести только самую нижнюю одну отложку, то можно было бы в цикле найти отложку открытую по самой низкой цене и её снести, но если отложек несколько, тогда как быть? В общем, буду рад выслушать мнения тех, кто уже имеет опыт работы с сетками ордеров
я в таких случаях маркирую пары отложек через одинаковый меджик (по времени установки), ну или коммент.
алгоритм удаления :
1) роемся в списке открытых позиций и пишем (запоминаем) их меджики.
2) роемся в списке установленных отложенников , проверяем на совпадение меджика из списка поз, если совпало - удаляем отложку.
ВСЕ. и никаких мучений.
я вот читая в последнее время форум начинаю беспокоится - то ли я стал сильно старым и в програминге ниче не сображаю, то ли нынче модно все делать через Ж... ??? а ?
Вот исходники индикаторов,Просьба помочь с выводом значений (к примеру через comment)(в цифрах) равных цене по каждому индикатору в реальном времени.(icustom знаю,но не могу понять какие параметры надо указывать чтобы выводились точные значения,выводятся то 0,то число больше 2млн)
Есть такой вопрос - проводилось ли кем-нибудь тестирование различных процессоров на скорость работы тестера МТ-5?
Если да, то дайте ссылку, плиз. Или хотя бы скажите, что лучше по скорости из топовых АМД и ИНТЕЛ?
Ессно, речь идет о десктопах, а не о ноутбуках или суперкомпах. :-)
На пятере используйте облака для тестирования и забудьте о своем процессоре, даже если он многоядерный и скоростной. Реально во много раз убыстряет. Но копейку придётся заплатить. А вообще вот тут когда-то обсуждалось
Вопрос мой, видимо, простой, но я перелопатил все статьи, но так и не смог найти на него ответ - как работает оператор return(-1). Куда он передает управление? Вот в этом коде, например:
intstart(){//---- Запоминаем значения индикатора для дальнейшего анализа//---- Обратите внимание - используем 1-й и 2-й бары. Это даёт задержку в 1 бар //---- (т.е. сигнал появится позже), но защищает от многочисленных открытий и закрытий//---- позиций в течении бараdoubleMACD_1 = iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1);
doubleMACD_2 = iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 2);
int_GetLastError = 0, _OrdersTotal = OrdersTotal();
//---- перебираем все открытые позицииfor(intz = _OrdersTotal - 1; z >= 0; z -- ){//---- если при выборе позиции возникла ошибка, переходим к следующейif( !OrderSelect(z, SELECT_BY_POS)){_GetLastError = GetLastError();
Print("OrderSelect( ", z, ", SELECT_BY_POS ) - Error #", _GetLastError);
continue;
}//---- если позиция открыта не по текущему инструменту, пропускаем еёif(OrderSymbol() != Symbol())continue;
//---- если MagicNumber не равен _MagicNumber, пропускаем эту позициюif(OrderMagicNumber() != _MagicNumber)continue;
//---- если открыта БАЙ-позиция,if(OrderType() == OP_BUY){//---- если МАКД пересёк 0-ю линию вниз,if(NormalizeDouble(MACD_1, Digits + 1) < 0.0 &&
NormalizeDouble(MACD_2, Digits + 1) >= 0.0){//---- закрываем позициюif( !OrderClose(OrderTicket(), OrderLots(), Bid, 5, Green)){_GetLastError = GetLastError();
Alert("Ошибка OrderClose № ", _GetLastError);
return(-1);
}}//---- если сигнал не изменился, выходим - пока рано открывать новую позицию
elsereturn(0);
С нулем в скобках, без скобок - вроде все ясно. А вот (-1)?
Борис, так то оно понятно. Я просто вот что думал. По ходу тут нужно сделать цикл от 0 до некоторой переменной, хранящей значение сработавших отложек и на каждом проходе по циклу запускать функцию нахождения требуемого нам ордера и потом его закрытие. Только как фиксануть, что в текущий момент данная процедура выполнена не совсем ясно представляю.
И, кстати, поиск самых крайних отложек лучше произвести через стандартную функцию поиска, а потом значение времени открытия ордера и цену передать в функцию закрытия отложек, верно?
Виктор, я имел ввиду, когда отложка удалилась, она уже в истории, а когда открывается другая позиция, так также другая отложка удаляется по тому же условию, т.к. проверка проводится по позицияи, которые есть! А как всё работает, просматривай логи! Тогда увидишь, верно или нет!
Привет всем. Дело серьезное и неотложное и я как говорится весь инет облазил... В общем решил я перейти на МТ4 попользовался им довольно долго, вот уже 3 дня. И тут в доме вырубили свет, включаю позже комп и он как будто первый раз меня видит настройки программ сбились и браузер забыл посещенные сайты! Ниче серьезного подумал я, а тут бы неожиданно захожу в мт, там открыты 4 графика Н4 с набросаннной системой причем вообще показывающий неправильную всегда одну цену сверял со StartFX 2, хочу открыть временной интервал Н1 и Д1 и жду... Час жду, второй а он не по дням а по годам обновлятся собрался, в общем не в какую обновление не случается. "Ну че переустанови и все" - скажите вы, а я вам отвечу "Хрен бы там". "Ну так скачай индикатор какого то програмного обновления с фиг знает какого сайта" - спросите вы, а я вам отвечу "Хрен бы там дважды". Очень хочу продолжить делать деньги и задушить комп помогите с 1 а там посмотрим :-)
Есть пачка отложек в обе стороны. Если какая-то отложка сработала, то с другой стороны отложка крайняя сносится. На скрине я показал случай, который будет если сработала отложка в бай, и удалится крайняя отложка шортовая.
Это я сделал если сработала одна отложка. Но если сработает не одна а сразу 3? Т.е. нужно как-то вычислить количество сработанных отложек, и исходя из этого закрывать отложки противоположного сигнала.
Как это лучше сделать? Может кто-н. уже реализовывал данный момент? В отдельную ветку не решил переносить вопрос, возможно он покажется очень простых для понимающих этот момент лучше.
Если б нужно было снести только самую нижнюю одну отложку, то можно было бы в цикле найти отложку открытую по самой низкой цене и её снести, но если отложек несколько, тогда как быть? В общем, буду рад выслушать мнения тех, кто уже имеет опыт работы с сетками ордеров.
Есть такой вопрос - проводилось ли кем-нибудь тестирование различных процессоров на скорость работы тестера МТ-5?
Если да, то дайте ссылку, плиз. Или хотя бы скажите, что лучше по скорости из топовых АМД и ИНТЕЛ?
Ессно, речь идет о десктопах, а не о ноутбуках или суперкомпах. :-)
Есть такой вопрос - проводилось ли кем-нибудь тестирование различных процессоров на скорость работы тестера МТ-5?
Если да, то дайте ссылку, плиз. Или хотя бы скажите, что лучше по скорости из топовых АМД и ИНТЕЛ?
Ессно, речь идет о десктопах, а не о ноутбуках или суперкомпах. :-)
по пятере все здесь : https://www.mql5.com/ru/forum
Виктор, когда удалена нижняя, по этому же условию удалится и следущая, ставшая самой нижней. Быстрота для тебя, а для программы главное, чтобы не на одном и том же тике, а так нормально! Пробуй!
Борис, так то оно понятно. Я просто вот что думал. По ходу тут нужно сделать цикл от 0 до некоторой переменной, хранящей значение сработавших отложек и на каждом проходе по циклу запускать функцию нахождения требуемого нам ордера и потом его закрытие. Только как фиксануть, что в текущий момент данная процедура выполнена не совсем ясно представляю.
И, кстати, поиск самых крайних отложек лучше произвести через стандартную функцию поиска, а потом значение времени открытия ордера и цену передать в функцию закрытия отложек, верно?
Есть пачка отложек в обе стороны. Если какая-то отложка сработала, то с другой стороны отложка крайняя сносится. На скрине я показал случай, который будет если сработала отложка в бай, и удалится крайняя отложка шортовая.
Это я сделал если сработала одна отложка. Но если сработает не одна а сразу 3? Т.е. нужно как-то вычислить количество сработанных отложек, и исходя из этого закрывать отложки противоположного сигнала.
Как это лучше сделать? Может кто-н. уже реализовывал данный момент? В отдельную ветку не решил переносить вопрос, возможно он покажется очень простых для понимающих этот момент лучше.
Если б нужно было снести только самую нижнюю одну отложку, то можно было бы в цикле найти отложку открытую по самой низкой цене и её снести, но если отложек несколько, тогда как быть? В общем, буду рад выслушать мнения тех, кто уже имеет опыт работы с сетками ордеров
я в таких случаях маркирую пары отложек через одинаковый меджик (по времени установки), ну или коммент.
алгоритм удаления :
1) роемся в списке открытых позиций и пишем (запоминаем) их меджики.
2) роемся в списке установленных отложенников , проверяем на совпадение меджика из списка поз, если совпало - удаляем отложку.
ВСЕ. и никаких мучений.
я вот читая в последнее время форум начинаю беспокоится - то ли я стал сильно старым и в програминге ниче не сображаю, то ли нынче модно все делать через Ж... ??? а ?
Есть такой вопрос - проводилось ли кем-нибудь тестирование различных процессоров на скорость работы тестера МТ-5?
Если да, то дайте ссылку, плиз. Или хотя бы скажите, что лучше по скорости из топовых АМД и ИНТЕЛ?
Ессно, речь идет о десктопах, а не о ноутбуках или суперкомпах. :-)
На пятере используйте облака для тестирования и забудьте о своем процессоре, даже если он многоядерный и скоростной. Реально во много раз убыстряет. Но копейку придётся заплатить. А вообще вот тут когда-то обсуждалось
Всем доброго дня!
Вопрос мой, видимо, простой, но я перелопатил все статьи, но так и не смог найти на него ответ - как работает оператор return(-1). Куда он передает управление? Вот в этом коде, например:
else return(0);
С нулем в скобках, без скобок - вроде все ясно. А вот (-1)?
Спасибо за ответ. :)
Борис, так то оно понятно. Я просто вот что думал. По ходу тут нужно сделать цикл от 0 до некоторой переменной, хранящей значение сработавших отложек и на каждом проходе по циклу запускать функцию нахождения требуемого нам ордера и потом его закрытие. Только как фиксануть, что в текущий момент данная процедура выполнена не совсем ясно представляю.
И, кстати, поиск самых крайних отложек лучше произвести через стандартную функцию поиска, а потом значение времени открытия ордера и цену передать в функцию закрытия отложек, верно?