Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2201

 
Artyom Trishkin #:
Я бы ютуб исключил

Справочник всем хорош.. Но нет в нем одной очень существенной детали - нет кода программы с подробным комментарием смысла и значения каждой строки. А в канале о котором я говорил, все это есть. Причем подробно разбираются и скрипт, и советник, и индикатор и даже мультивалютный советник.  Есть возможность смотреть на код mql5 и его комментарии,   слушать  этот же код и комментарии и тут же обращаться к справочнику или к этому форуму , если в этом возникает необходимость. Возможно к его кодам у кого то есть какие то претензии. Но как мне кажется для новичка, такие тонкости кода , на начальном этапе не очень важны. Главное уловить отличие от четверки и другую специфику пятерки. Чем то напоминает отдаленно учебник Ковалева.... на мой взгляд.

 
Alexandr Vetrov #:

Сделайте вот так, и будет вам счастье!

   for (int pos = 0; pos < PositionsTotal(); pos++)
        {
            o_position.SelectByIndex(pos);
            if (o_position.Symbol() == o_symbol.Name() && o_position.Magic() == Magic)
               {
                 kolpos++;
               }
         } 
    if(kolpos == 0)
      {        

                if(o_trade.Buy(Lot,o_symbol.Name(),0,0,0,coment))
                  {
                    timopen = TimeCurrent();
                  }
      }

Внимательно с переменными!

 
ANDREY #:

1)Но даже при повторе этих закономерностей результаты тестирования отличаются друг от друга при прогонах с одинаковыми параметрами. Поэтому мне оооочень хочется посмотреть на эту закономерность на реальных тиках, что бы было не моделирование , а именно реальные тики. Как я понял моделирование хоть и приближено к реальным ценам внутри минуты .... но доверять моделированию я опасаюсь. 

2)И сейчас мне кажется, что на графике есть еше не одна устойчивая и долговременная  статистическая тенденция, которые не видны простым глазом, но которые нужно искать. Их поиск мне напоминает поиск клада и сокровищ в древние времена... Природа этиих тенденций мне не понятна. Может быть это корреляции , а может что то еще... Возможно объяснение заключается в простом жизненном законе согласно которому ВСЕ В ЖИЗНИ УПОРЯДОЧЕНО ,а не ХАОТИЧНО. А значит и цены на графиках в своем движении подчиняются какому то порядку. И возможно этот порядок РАЗНООБРАЗЕН. Трейдеры уже давно выявили порядок связанный с фигурами теханализа, с новостями. Но наверняка есть еще порядки совсем другой природы. 

1)Думаю, закономерности о которых вы говорите, скорее всего связаны с моделированием. Т.е. моделирование по определенному алгоритму -- приводит к похожим результатам.

2)Я когда начинал, тоже искал кладезь прибыли.)))  Увы, более-менее одинаковые закономерности, есть на таймфрейме H1 и выше. С учетом торговли на рынке акций, барам и свечам -- уже сто лет! До сих пор,  никто не нашел сто процентной прибыли, значит ее там нет...))) Что меньше H1, то хаотично. 

 
Alekseu Fedotov #:

Сделайте вот так, и будет вам счастье!

Внимательно с переменными!

Строчит сделки на каждом тике в тестере.

Попробовал так, проблема остается.

    for (int pos = PositionsTotal()-1; pos >=0; pos--)
        {
            o_position.SelectByIndex(pos);
            if (o_position.Symbol() == o_symbol.Name() && o_position.Magic() == Magic)
               {
                 kolpos++;
               }
         }   
 
JRandomTrader #:

Попробуйте подробно (построчно) объяснить, что, по вашему, делает (должен делать) этот код и как он это делает.

Заменил немного переменных, но проблема появилась и в тестере.

    for (int pos = 0; pos < PositionsTotal(); pos++)
        {
            o_position.SelectByIndex(pos);
            if (o_position.Symbol() == o_symbol.Name() && o_position.Magic() == Magic)
               {
                 kolpos++;
               }
         }   

    if(kolpos == 0)
      {        

                if(o_trade.Buy(Lot,o_symbol.Name(),0,0,0,coment))
                  {
                    timopen = TimeCurrent();
                  }
      }

Объяснение:


Цикл выполняется пока pos меньше чем общее кол-во позиций и при каждой итерации (перебор) pos+1

выбираем ордер c индексом в pos.

проверяем его на символ и магик

если это наш ордер, добавляем kolpos +1 в первой версии он все позиции считал своими, в исправленной даже свои не видит

если kolpos равно нулю (т.е. ордер не наш), то входим, если нет (ордер наш) пишем дату присвоенную при открытии ордера.


Вижу проблему здесь: 

если это наш ордер, добавляем kolpos +1 в первой версии он все позиции считал своими, в исправленной даже свои не видит

но как решить не понятно, возможно и проблема не здесь

 
Putnik #:
1)Думаю, закономерности о которых вы говорите, скорее всего связаны с моделированием. Т.е. моделирование по определенному алгоритму -- приводит к похожим результатам.

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

 
Putnik #:
До сих пор,  никто не нашел сто процентной прибыли, значит ее там нет...)

А откуда Вы знаете что никто не нашел? Что быть уверенным что никто, нужно знать результаты торговли каждого кто торгует на форекс. А это - невозможно.

Я читал на  TradeLikeaPro, что по их наблюдениям ,если советник, который генерирует хорошую прибыль, становится доступным большому количеству людей , то после этого его прибыльность стремится к нулю. Может быть есть небольшое количество людей которые нашили закономерности о которых никому не известно кроме них. И эти люди потихоньку стригут какую то прибыль(возможно и не очень большую)... но что важно .... стригут МОЛЧА.

 
Alexandr Vetrov #:

если kolpos равно нулю (т.е. ордер не наш), то входим, если нет (ордер наш) пишем дату присвоенную при открытии ордера.

Этого в коде не вижу.

Также, не вижу инициализации kolpos, это тоже должно бы быть в начале цикла, возможно, вот так:

 for (int pos = 0, kolpos = 0; pos < PositionsTotal(); pos++)

Также, неплохо бы проверять, что именно вернула функция

o_position.SelectByIndex(pos)

Почему не видит - надо разбираться, что реально в переменных и что в позиции.

Я этими классами не пользуюсь, с ними натыкался на проблемы.

В частности, бывает ситуация, когда рыночный ордер уже отправлен, а позиции ещё не видно - тут возможно задвоение ордеров (на реале, в тестере такого нет).

 
ANDREY #:

А как же тогда брокеры моделируют движение цены внутри минутного бара? Ведь когда я выбираю в тестере метод моделирования ВСЕ ТИКИ  движение этих тиков моделируется и модели этих движений очень похожи на реальные движения цены внутри минуток. Если бы внутри минуток был хаос - моделирование было бы невозможно. Как мне кажется.

https://www.mql5.com/ru/docs/runtime/testing#ticks

Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
  • www.mql5.com
Тестирование торговых стратегий - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Putnik #:
1)Думаю, закономерности о которых вы говорите, скорее всего связаны с моделированием. Т.е. моделирование по определенному алгоритму -- приводит к похожим результатам.

А я правильно понял что Вы имеете в виду моделирование движения тиков между OMCL  внутри минутной свечи  в МТ4 по методу ВСЕ ТИКИ?

Если это так , то для меня это похоже на то что моделирование изучило алгоритм моего советника и подстраивается под него( то есть меняет себя) в нужных моделированию целях.