[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 343

 
hoz:

Есть пачка отложек в обе стороны. Если какая-то отложка сработала, то с другой стороны отложка крайняя сносится. На скрине я показал случай, который будет если сработала отложка в бай, и удалится крайняя отложка шортовая.

 

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

 Как это лучше сделать? Может кто-н. уже реализовывал данный момент? В отдельную ветку не решил переносить вопрос, возможно он покажется очень простых для понимающих этот момент лучше. 

Если б нужно было снести только самую нижнюю одну отложку, то можно было бы в цикле найти отложку открытую по самой низкой цене и её снести, но если отложек несколько, тогда как быть? В общем, буду рад выслушать мнения тех, кто уже имеет опыт работы с сетками ордеров. 

Виктор, когда удалена нижняя, по этому же условию удалится и следущая, ставшая самой нижней. Быстрота для тебя, а для программы главное, чтобы не на одном и том же тике, а так нормально! Пробуй!
 

Есть такой вопрос - проводилось ли кем-нибудь тестирование различных процессоров на скорость работы тестера МТ-5?

Если да, то дайте ссылку, плиз. Или хотя бы скажите, что лучше по скорости из топовых АМД и ИНТЕЛ?

Ессно, речь идет о десктопах, а не о ноутбуках или суперкомпах. :-) 

 
DruZhban:

Есть такой вопрос - проводилось ли кем-нибудь тестирование различных процессоров на скорость работы тестера МТ-5?

Если да, то дайте ссылку, плиз. Или хотя бы скажите, что лучше по скорости из топовых АМД и ИНТЕЛ?

Ессно, речь идет о десктопах, а не о ноутбуках или суперкомпах. :-) 


  по пятере все здесь : https://www.mql5.com/ru/forum
 
borilunad:
Виктор, когда удалена нижняя, по этому же условию удалится и следущая, ставшая самой нижней. Быстрота для тебя, а для программы главное, чтобы не на одном и том же тике, а так нормально! Пробуй!


Борис, так то оно понятно. Я просто вот что думал. По ходу тут нужно сделать цикл от 0 до некоторой переменной, хранящей значение сработавших отложек и на каждом проходе по циклу запускать функцию нахождения требуемого нам ордера и потом его закрытие. Только как фиксануть, что в текущий момент данная процедура выполнена не совсем ясно представляю.

И, кстати, поиск самых крайних отложек лучше произвести через стандартную функцию поиска, а потом значение времени открытия ордера и цену передать в функцию закрытия отложек, верно? 

 
hoz:

Есть пачка отложек в обе стороны. Если какая-то отложка сработала, то с другой стороны отложка крайняя сносится. На скрине я показал случай, который будет если сработала отложка в бай, и удалится крайняя отложка шортовая.

 

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

 Как это лучше сделать? Может кто-н. уже реализовывал данный момент? В отдельную ветку не решил переносить вопрос, возможно он покажется очень простых для понимающих этот момент лучше. 

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


  я в таких случаях маркирую пары отложек через одинаковый меджик (по времени установки), ну или коммент.

  алгоритм удаления :

  1) роемся в списке открытых позиций и пишем (запоминаем) их меджики.

  2) роемся в списке установленных отложенников , проверяем на совпадение меджика из списка поз, если совпало - удаляем отложку.

  ВСЕ. и никаких мучений.

  я вот читая в последнее время форум начинаю беспокоится - то ли я стал сильно старым и в програминге ниче не сображаю, то ли нынче модно все делать через Ж... ??? а ? 

 
Вот исходники индикаторов,Просьба помочь с выводом значений (к примеру через comment)(в цифрах) равных цене по каждому индикатору в реальном времени.(icustom знаю,но не могу понять какие параметры надо указывать чтобы выводились точные значения,выводятся то 0,то число больше 2млн)
Файлы:
zigzag.zip  4 kb
 
DruZhban:

Есть такой вопрос - проводилось ли кем-нибудь тестирование различных процессоров на скорость работы тестера МТ-5?

Если да, то дайте ссылку, плиз. Или хотя бы скажите, что лучше по скорости из топовых АМД и ИНТЕЛ?

Ессно, речь идет о десктопах, а не о ноутбуках или суперкомпах. :-) 



На пятере используйте облака для тестирования и забудьте о своем процессоре, даже если он многоядерный и скоростной. Реально во много раз убыстряет. Но копейку придётся заплатить. А вообще вот тут когда-то обсуждалось
 

Всем доброго дня!

Вопрос мой, видимо, простой, но я перелопатил все статьи, но так и не смог найти на него ответ - как работает оператор return(-1). Куда он передает управление? Вот в этом коде, например:

int start()
{
    //---- Запоминаем значения индикатора для дальнейшего анализа
    //---- Обратите внимание - используем 1-й и 2-й бары. Это даёт задержку в 1 бар 
    //---- (т.е. сигнал появится позже), но защищает от многочисленных открытий и закрытий
    //---- позиций в течении бара
    double MACD_1 = iMACD( Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1 );
    double MACD_2 = iMACD( Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 2 );
 
    int _GetLastError = 0, _OrdersTotal = OrdersTotal();
    //---- перебираем все открытые позиции
    for ( int z = _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);
                }
            }
            //---- если сигнал не изменился, выходим - пока рано открывать новую позицию 

else return(0);

С нулем в скобках, без скобок - вроде все ясно. А вот (-1)?

Спасибо за ответ. :) 

 
hoz:


Борис, так то оно понятно. Я просто вот что думал. По ходу тут нужно сделать цикл от 0 до некоторой переменной, хранящей значение сработавших отложек и на каждом проходе по циклу запускать функцию нахождения требуемого нам ордера и потом его закрытие. Только как фиксануть, что в текущий момент данная процедура выполнена не совсем ясно представляю.

И, кстати, поиск самых крайних отложек лучше произвести через стандартную функцию поиска, а потом значение времени открытия ордера и цену передать в функцию закрытия отложек, верно? 

Виктор, я имел ввиду, когда отложка удалилась, она уже в истории, а когда открывается другая позиция, так также другая отложка удаляется по тому же условию, т.к. проверка проводится по позицияи, которые есть! А как всё работает, просматривай логи! Тогда увидишь, верно или нет!
 
Привет всем. Дело серьезное и неотложное и я как говорится весь инет облазил... В общем решил я перейти на МТ4 попользовался им довольно долго, вот уже 3 дня. И тут в доме вырубили свет, включаю позже комп и он как будто первый раз меня видит настройки программ сбились и браузер забыл посещенные сайты! Ниче серьезного подумал я, а тут бы неожиданно захожу в мт, там открыты 4 графика Н4 с набросаннной системой причем вообще показывающий неправильную всегда одну цену сверял со StartFX 2, хочу открыть временной интервал Н1 и Д1 и жду... Час жду, второй а он не по дням а по годам обновлятся собрался, в общем не в какую обновление не случается. "Ну че переустанови и все" - скажите вы, а я вам отвечу "Хрен бы там". "Ну так скачай индикатор какого то програмного обновления с фиг знает какого сайта" - спросите вы, а я вам отвечу "Хрен бы там дважды". Очень хочу продолжить делать деньги и задушить комп помогите с 1 а там посмотрим :-)