Заработай до
50000$
на приглашении друзей
получить StartUp Bonus
от ИнстаФорекс
Вложений не требуется!
Начни торговлю
без вложений и риска
С новым STARTUP бонусом 1000$
Получи бонус
55%
от ИнстаФорекс
на каждое пополнение
Ответить в теме
Страница 2 из 2
Первая 1 Последняя

Показаны сообщения: с 21 по 26 из 26

Тема: MQL5: Некоторые полезные функции

 Перейти в классический вид темы
     
  1. ТОП сообщений
    2019-02-25   00:45
    Лучший ответ #1
    Накопленные выплаты 11431 RUB

    Цитата Сообщение от RND Посмотреть сообщение
    В МТ5 можно сделать синтетический инструмент и там рисовать ренко.
    Так же можно рисовать графическими объектами.
    Возможно уже есть подобные решения, попробуйте поискать в кодобазе.
    Да, синтетику можно там делать, только это не то. На синтетику нельзя повесить советник - точнее, повесить можно, но торговать он этим инструментом не сможет. Синтетический график воспринимается терминалом как новый инструмент, а так как его фактически в рынке не существует, то и торговля роботом по нему невозможна. (вот руками почему-то, как ни странно, сделки открывались нормально). В скотобазе искал. Там жалкие поделки пока что, к сожалению. Ну и один мой индикатор - можете поискать - Blue renko bars - называется. Но он строит ренки в подвальном окне под ценовым графиком, ни больше ни меньше. Находил в маркете вроде более-менее полноценные решения. Но отваливать денег за индикатор без исходного кода...ну чет такое себе.

    2019-02-20   21:05
    Лучший ответ #2
    Накопленные выплаты 11431 RUB

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

    2019-02-25   11:42
    Лучший ответ #3
    Накопленные выплаты 169750 RUB

    Цитата Сообщение от RND Посмотреть сообщение
    По Renko всегда интересовал такой вопрос.
    Стартовый бокс Renko строится от точки отсчета индикатора. Т.е. тот же самый график запущенный в другое время терминал рисует с новой точки.
    Имеем погрешность в отрисовки бокса на величину бокса.
    Грамотный индикатор начало отсчета будет брать либо кратно размеру бокса, либо согласно параметру в настройках. Тем самым погрешность отрисовки исключается.

    2014-09-22   00:26
    Лучший ответ #4
     

    MQL-Код:
    <code><span style="color: #000000">
    <span style="color: #0000BB"></span><span style="color: #FF8000">//+------------------------------------------------------------------+//| Объем всех открытых позиций                                      |//+------------------------------------------------------------------+</span><span style="color: #0000BB">double OpenPositionTotalVolume</span><span style="color: #007700">(){</span><span style="color: #0000BB">double volume </span><span style="color: #007700">= </span><span style="color: #0000BB">0.0</span><span style="color: #007700">;</span><span style="color: #FF8000">//Если хеджинговый счет</span><span style="color: #007700">if(</span><span style="color: #0000BB">AccountInfoInteger</span><span style="color: #007700">(</span><span style="color: #0000BB">ACCOUNT_MARGIN_MODE</span><span style="color: #007700">)==</span><span style="color: #0000BB">ACCOUN  T_MARGIN_MODE_RETAIL_HEDGING</span><span style="color: #007700">){for(</span><span style="color: #0000BB">int i</span><span style="color: #007700">=</span><span style="color: #0000BB">PositionsTotal</span><span style="color: #007700">()-</span><span style="color: #0000BB">1</span><span style="color: #007700">;</span><span style="color: #0000BB">i</span><span style="color: #007700">&gt;=</span><span style="color: #0000BB">0</span><span style="color: #007700">;</span><span style="color: #0000BB">i</span><span style="color: #007700">--){if(</span><span style="color: #0000BB">PositionSelectByTicket</span><span style="color: #007700">(</span><span style="color: #0000BB">PositionGetTicket</span><span style="color: #007700">(</span><span style="color: #0000BB">i</span><span style="color: #007700">))){</span><span style="color: #0000BB">volume </span><span style="color: #007700">+= </span><span style="color: #0000BB">PositionGetDouble</span><span style="color: #007700">(</span><span style="color: #0000BB">POSITION_VOLUME</span><span style="color: #007700">);}}}</span><span style="color: #FF8000">//Если неттинговый счет</span><span style="color: #007700">if(</span><span style="color: #0000BB">AccountInfoInteger</span><span style="color: #007700">(</span><span style="color: #0000BB">ACCOUNT_MARGIN_MODE</span><span style="color: #007700">)==</span><span style="color: #0000BB">ACCOUN  T_MARGIN_MODE_RETAIL_NETTING </span><span style="color: #007700">|| </span><span style="color: #0000BB">AccountInfoInteger</span><span style="color: #007700">(</span><span style="color: #0000BB">ACCOUNT_MARGIN_MODE</span><span style="color: #007700">)==</span><span style="color: #0000BB">ACCOUNT_M  ARGIN_MODE_EXCHANGE</span><span style="color: #007700">){for(</span><span style="color: #0000BB">int i</span><span style="color: #007700">=</span><span style="color: #0000BB">PositionsTotal</span><span style="color: #007700">()-</span><span style="color: #0000BB">1</span><span style="color: #007700">;</span><span style="color: #0000BB">i</span><span style="color: #007700">&gt;=</span><span style="color: #0000BB">0</span><span style="color: #007700">;</span><span style="color: #0000BB">i</span><span style="color: #007700">--){if(</span><span style="color: #0000BB">PositionSelect</span><span style="color: #007700">(</span><span style="color: #0000BB">PositionGetSymbol</span><span style="color: #007700">(</span><span style="color: #0000BB">i</span><span style="color: #007700">))){</span><span style="color: #0000BB">volume </span><span style="color: #007700">+= </span><span style="color: #0000BB">PositionGetDouble</span><span style="color: #007700">(</span><span style="color: #0000BB">POSITION_VOLUME</span><span style="color: #007700">);}}}return(</span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">(</span><span style="color: #0000BB">volume</span><span style="color: #007700">,</span><span style="color: #0000BB">2</span><span style="color: #007700">));} 
    </span><span style="color: #0000BB"></span>
    </span>
    </code>

    MQL-Код:
    <code><span style="color: #000000">
    <span style="color: #0000BB"></span><span style="color: #FF8000">//+------------------------------------------------------------------+//| Объем всех ордеров выхода из рынка, DEAL_ENTRY_OUT               |//+------------------------------------------------------------------+</span><span style="color: #0000BB">double HistoryDealsTotalVolume</span><span style="color: #007700">(){</span><span style="color: #0000BB">HistorySelect</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">,</span><span style="color: #0000BB">TimeCurrent</span><span style="color: #007700">());</span><span style="color: #0000BB">uint   total  </span><span style="color: #007700">= </span><span style="color: #0000BB">HistoryDealsTotal</span><span style="color: #007700">();</span><span style="color: #0000BB">ulong  ticket </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;</span><span style="color: #0000BB">double volume </span><span style="color: #007700">= </span><span style="color: #0000BB">0.0</span><span style="color: #007700">;for(</span><span style="color: #0000BB">uint i</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #0000BB">i</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">total</span><span style="color: #007700">; </span><span style="color: #0000BB">i</span><span style="color: #007700">++){if((</span><span style="color: #0000BB">ticket </span><span style="color: #007700">= </span><span style="color: #0000BB">HistoryDealGetTicket</span><span style="color: #007700">(</span><span style="color: #0000BB">i</span><span style="color: #007700">)) &gt; </span><span style="color: #0000BB">0</span><span style="color: #007700">){if(</span><span style="color: #0000BB">HistoryDealGetInteger</span><span style="color: #007700">(</span><span style="color: #0000BB">ticket</span><span style="color: #007700">,</span><span style="color: #0000BB">DEAL_ENTRY</span><span style="color: #007700">)==</span><span style="color: #0000BB">DEAL_  ENTRY_OUT</span><span style="color: #007700">){</span><span style="color: #0000BB">volume </span><span style="color: #007700">+= </span><span style="color: #0000BB">HistoryDealGetDouble</span><span style="color: #007700">(</span><span style="color: #0000BB">ticket</span><span style="color: #007700">,</span><span style="color: #0000BB">DEAL_VOLUME</span><span style="color: #007700">);}}}return (</span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">(</span><span style="color: #0000BB">volume</span><span style="color: #007700">,</span><span style="color: #0000BB">2</span><span style="color: #007700">));} 
    </span><span style="color: #0000BB"></span>
    </span>
    </code>

    2014-12-23   19:41
    Лучший ответ #5
     

    Цитата Сообщение от Irina11 Посмотреть сообщение
    Подскажите пожалуйста, "функция int start" так и осталась? Или ее нужно как то по другому прописывать?
    Старые функции поддерживаются для совместимости.
    Цитата Сообщение от Irina11 Посмотреть сообщение
    И где можно ознакомится нывыми возможностями MLQ4? Где можно почитать про функции On Timer, OnChartEvent, On Tester. За ранее большое спасибо!
    Все есть в справке по F1

    2016-04-18   18:42
    Лучший ответ #6
    Накопленные выплаты 1160 RUB

    Цитата Сообщение от Irina11 Посмотреть сообщение
    Подскажите пожалуйста, "функция int start" так и осталась? Или ее нужно как то по другому прописывать? И где можно ознакомится нывыми возможностями MLQ4? Где можно почитать про функции On Timer, OnChartEvent, On Tester. За ранее большое спасибо!
    Mql4 - https://docs.mql4.com/ru
    Mql5 - https://www.mql5.com/ru/docs
    Там всё расписано, ну или в редакторе F1

  2. линк#21
    Модератор
    no
     
    Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Аватар для Gold
    Регистрация:
    21.12.2010
    Пол:
    Мужчина
    Сообщений:
    19,621
    Поставил лайков:
    24,165
    Получено лайков:   20,220
    в 8,988 сообщениях
    103%
    MQL-Код:
    
    //+------------------------------------------------------------------+//| Объем всех открытых позиций                                      |//+------------------------------------------------------------------+double OpenPositionTotalVolume(){   double volume = 0.0;      //Если хеджинговый счет   if(AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUN  T_MARGIN_MODE_RETAIL_HEDGING)   {      for(int i=PositionsTotal()-1;i>=0;i--)      {         if(PositionSelectByTicket(PositionGetTicket(i)))         {            volume += PositionGetDouble(POSITION_VOLUME);         }      }   }      //Если неттинговый счет   if(AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUN  T_MARGIN_MODE_RETAIL_NETTING || AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_M  ARGIN_MODE_EXCHANGE)   {      for(int i=PositionsTotal()-1;i>=0;i--)      {         if(PositionSelect(PositionGetSymbol(i)))         {            volume += PositionGetDouble(POSITION_VOLUME);         }      }   }   return(NormalizeDouble(volume,2));} 
    
    
    


    MQL-Код:
    
    //+------------------------------------------------------------------+//| Объем всех ордеров выхода из рынка, DEAL_ENTRY_OUT               |//+------------------------------------------------------------------+double HistoryDealsTotalVolume(){HistorySelect(0,TimeCurrent());uint   total  = HistoryDealsTotal();ulong  ticket = 0;double volume = 0.0;      for(uint i=0; i<total; i++)     {      if((ticket = HistoryDealGetTicket(i)) > 0)        {           if(HistoryDealGetInteger(ticket,DEAL_ENTRY)==DEAL_  ENTRY_OUT)           {              volume += HistoryDealGetDouble(ticket,DEAL_VOLUME);           }        }     }     return (NormalizeDouble(volume,2));} 
    
    
    


  3. post_thanks Получено лайков: 1

    phozik (23.11.2014)

    ferrari
  4. линк#25
    Свой человек
    Все пучком
     
    SharmuttaDJ хорошая репутация SharmuttaDJ хорошая репутация SharmuttaDJ хорошая репутация SharmuttaDJ хорошая репутация SharmuttaDJ хорошая репутация Аватар для SharmuttaDJ
    Регистрация:
    17.02.2019
    Пол:
    Мужчина
    Сообщений:
    505
    Накопленные выплаты (Подробнее):
    11431 RUB
    Поставил лайков:
    556
    Получено лайков:   483
    в 282 сообщениях
    96%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от RND Посмотреть сообщение
    В МТ5 можно сделать синтетический инструмент и там рисовать ренко.
    Так же можно рисовать графическими объектами.

    Возможно уже есть подобные решения, попробуйте поискать в кодобазе.
    Да, синтетику можно там делать, только это не то. На синтетику нельзя повесить советник - точнее, повесить можно, но торговать он этим инструментом не сможет. Синтетический график воспринимается терминалом как новый инструмент, а так как его фактически в рынке не существует, то и торговля роботом по нему невозможна. (вот руками почему-то, как ни странно, сделки открывались нормально). В скотобазе искал. Там жалкие поделки пока что, к сожалению. Ну и один мой индикатор - можете поискать - Blue renko bars - называется. Но он строит ренки в подвальном окне под ценовым графиком, ни больше ни меньше. Находил в маркете вроде более-менее полноценные решения. Но отваливать денег за индикатор без исходного кода...ну чет такое себе.


  5. post_thanks Получено лайков: 3

    Незарегистрированный (3 пользователя)

  6. линк#26
    отдыхает от форума
    RND приемлемый уровень репутации Аватар для RND
    Регистрация:
    15.03.2012
    Пол:
    Мужчина
    Сообщений:
    277
    Накопленные выплаты (Подробнее):
    7907 RUB
    Поставил лайков:
    7
    Получено лайков:   99
    в 69 сообщениях
    36%
    Советник может торговать не только на том графике на котором весит, он может торговать и по обзору рынка, без графика, а график потом подтянуть.
    Торговать можно и скриптом, если очень надо.
    А если надо еще больше - то и индикатором.

    А если еще больше заморочиться - то и из чужой платформы.
    Некоторые умудряются торговать из Excel.
    Тут главное степень желания.

    Там рядом с маркетом есть фриланс, большая часть работ там с исходным кодом.
    Тут так же можно поиметь исходник, за не очень дорого, посмотрите объявления в рекламе.

    А если умеете писать красивые и интересные технические задания, то есть шанс получить искомое и за бесплатно, но не факт, что с исходниками.


  7. линк#27
    отдыхает от форума
    RND приемлемый уровень репутации Аватар для RND
    Регистрация:
    15.03.2012
    Пол:
    Мужчина
    Сообщений:
    277
    Накопленные выплаты (Подробнее):
    7907 RUB
    Поставил лайков:
    7
    Получено лайков:   99
    в 69 сообщениях
    36%
    Глянул ваш код.
    Я вот с таки конструкциями не знаком
    MQL-Код:
    
    if(down>brickSize) Renko(m1Buffer[i].low);
    
    for(; price>renkoBuffer[0].close+brickSize;  ) 
    
    
    

    И результат их действий мне не известен.
    По ходу вы сами можете все написать.

    У вас присутствует наличие отсутствия желания.


  8. линк#28
    отдыхает от форума
    RND приемлемый уровень репутации Аватар для RND
    Регистрация:
    15.03.2012
    Пол:
    Мужчина
    Сообщений:
    277
    Накопленные выплаты (Подробнее):
    7907 RUB
    Поставил лайков:
    7
    Получено лайков:   99
    в 69 сообщениях
    36%
    По Renko всегда интересовал такой вопрос.
    Стартовый бокс Renko строится от точки отсчета индикатора. Т.е. тот же самый график запущенный в другое время терминал рисует с новой точки.
    Имеем погрешность в отрисовки бокса на величину бокса.
    Если стратегия основана на подсчете коробок, то даже в тестере она будет давать разный результат, в зависимости от стартовой точки.

    У Renko есть индикатор аналог - зигзаг, по нему тоже можно считать коробки.


  9. post_thanks Получено лайков: 1

    Незарегистрированный (1 пользователь)

  10. линк#29
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,292
    Накопленные выплаты (Подробнее):
    169750 RUB
    Поставил(а) лайков:
    932
    Получено лайков:   7,418
    в 3,564 сообщениях
    102%
    ПодписатьсяПодписаться
    Подписано 4
    Цитата Сообщение от RND Посмотреть сообщение
    По Renko всегда интересовал такой вопрос.
    Стартовый бокс Renko строится от точки отсчета индикатора. Т.е. тот же самый график запущенный в другое время терминал рисует с новой точки.
    Имеем погрешность в отрисовки бокса на величину бокса.
    Грамотный индикатор начало отсчета будет брать либо кратно размеру бокса, либо согласно параметру в настройках. Тем самым погрешность отрисовки исключается.


  11. post_thanks Получено лайков: 2

    Незарегистрированный (2 пользователя)

    <title>InstaForex</title><meta name="description" content="InstaForex"><a href="https://instaforex.org/ru/forexcopy_system">InstaForex</a>
  12. линк#30
    отдыхает от форума
    RND приемлемый уровень репутации Аватар для RND
    Регистрация:
    15.03.2012
    Пол:
    Мужчина
    Сообщений:
    277
    Накопленные выплаты (Подробнее):
    7907 RUB
    Поставил лайков:
    7
    Получено лайков:   99
    в 69 сообщениях
    36%
    Да, вероятно, оно так и есть.
    Сам подобным индикатором не пользуюсь, да и на заказ подобного делать не приходилось.
    Посмотрел в имеющимся образце советника для МТ4 - начало отсчета прикручено к размеру бокса и сдвиг есть.
    И данные в реал тайме обновляет.
    Единственный косяк - не любят программисты комментарии писать.
    За 5-10 минут не всегда поймешь, что и где считается.



Страница 2 из 2
Первая 1 Последняя

Подписанные на тему (6)

Похожие темы

  1. Некоторые секреты МТ4
    от Андрей Сырбу в разделе Трейдерский софт, компьютерное оборудование
    Replies: 2384
    Последнее сообщение: 14.02.2021, 23:18
  2. Некоторые психотехники
    от сват в разделе Психология трейдера
    Replies: 2160
    Последнее сообщение: 29.12.2020, 18:21
  3. MQL4: Некоторые полезные функции
    от Nick'Otin в разделе MQL-программирование, АТС
    Replies: 210
    Последнее сообщение: 21.12.2020, 09:06
  4. FAQ: Полезные функции форума (подписка, уведомления, черновики, и др.)
    от Странник_РУ в разделе Вопросы к администрации форума
    Replies: 9
    Последнее сообщение: 16.09.2020, 12:55
  5. Банкомат. Некоторые особенности
    от Volangott в разделе Свободное общение
    Replies: 0
    Последнее сообщение: 27.03.2014, 16:30

Метки этой темы