Роботы, программы только ФОНДОВЫЙ и FORTS примеры кода ( тема не для форекса ) только MQL5 MetaTrader 5

 

Решил открыть чисто техническую тему посвященную роботам скриптам для фондового и срочного рынка.

Понятно что роботы которые пишутся до фондового отличаются от роботов для форекса.

К сожалению чудесный терминал MT5 с прекрасным языком MQL5 слишком слабо представлен на фондовом рынке.

Попробуем немного исправить это и поднять интерес к фондовому рынку через эту тему.

 

Бесплатный  биржевой индикатор  https://www.mql5.com/ru/code/31706

Отражает объем покупок в течении дня и направление движения на базе расчета индикатора CH%

Так же в индикаторе можно видеть рассчитанные аналитиками предстоящие выплаты по дивидендам.

В версии от 2022.02.12 исправлено отражение цены.

YuraZ_Book_All_PriceCH индикатор для биржи ( изменения от 2022.02.12 )
YuraZ_Book_All_PriceCH индикатор для биржи ( изменения от 2022.02.12 )
  • www.mql5.com
Многофункциональный индикатор для биржи. В описании ниже понятно. Для полноценного функционирования, необходимо предварительно запустить скрипт чтения суммы дивидендов с сайта https://www.dohod.ru страница отвечает за каждый отдельный инструмент например для SBERP https://www.dohod.ru/ik/analytics/dividend/sberp скрипт опубликован ниже. p.s. Изменения от 2022.02.12
 

Для индикатора отстраиваю один чарт, любой , можно самый бодрый SBER

И в окне возникает сразу все акции выбранные в обзоре рынка.


настройка


 
Так то, по идеи, отличие будет лишь в части торговых приказов. И все, остальное все одинаковое - весь технический анализ, все индикаторы и т.д.
 
Stanislav Aksenov #:
Так то, по идеи, отличие будет лишь в части торговых приказов. И все, остальное все одинаковое - весь технический анализ, все индикаторы и т.д.

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

Также, имеют место стратегии, активно работающие со стаканом.

Также, арбитраж между фондой и срочным с получением дивидентов.

Также, гораздо меньшие плечи, если вообще есть.

Также, гораздо меньшая "эффективность" рынка, на чём тоже можно играть.

 

Поправил индикатор

и скрипт к нему

Файлы:
 
Stanislav Aksenov #:
Так то, по идеи, отличие будет лишь в части торговых приказов. И все, остальное все одинаковое - весь технический анализ, все индикаторы и т.д.

если бездумно и технически то да. В плане акций инфы актуальной больше. Поэтому оцифровать и учесть ее проще. Хотя пока все сложно.

 
Stanislav Aksenov #:
Так то, по идеи, отличие будет лишь в части торговых приказов. И все, остальное все одинаковое - весь технический анализ, все индикаторы и т.д.

К цене открытмя позиции вообще привязываться нельзя, считать ее, она меняется. Уже была тема по биржевым трргам и коду. Ссыль выложу тут в течения дня.
Да ни хера ни так. А клиринг вы не забыли? Когда цена открытия позиции переносится на текущую цену. День расчета новый начинается в 19.00 час. Вариационная и расчетная маржа постоянно меняютя. В течение дня на клиринге все пересчиьывается, роботу все это виртуалить надо, если их несколько по символу....
 
Roman Shiredchenko #:

К цене открытмя позиции вообще привязываться нельзя, считать ее, она меняется. Уже была тема по биржевым трргам и коду. Ссыль выложу тут в течения дня.
Да ни хера ни так. А клиринг вы не забыли? Когда цена открытия позиции переносится на текущую цену. День расчета новый начинается в 19.00 час. Вариационная и расчетная маржа постоянно меняютя. В течение дня на клиринге все пересчиьывается, роботу все это виртуалить надо, если их несколько по символу....

Вот кстати да, то, что надо запоминать цену открытия своей позиции, а не брать её из свойств, это для меня давно аксиома, даже не подумал это упомянуть.

 
JRandomTrader #:

Вот кстати да, то, что надо запоминать цену открытия своей позиции, а не брать её из свойств, это для меня давно аксиома, даже не подумал это упомянуть.

Читайте в этом разделе тему:

"ФОРТС. В помощь начинающим"

//+------------------------------------------------------------------+
//| Expert Get position price function                               |
//+------------------------------------------------------------------+
double GetPositionPrice(const string aSymbol)
{
  double price_in = 0;
  double volume_in = 0;
  if(PositionSelect(aSymbol))
  {
    ulong pos_id = ulong(PositionGetInteger(POSITION_IDENTIFIER));
    if(pos_id > 0)
    {
      if(HistorySelectByPosition(pos_id))
      {
        int deals = HistoryDealsTotal();
        for(int i = 0; i < deals; i++)
        {
          ulong deal_ticket = HistoryDealGetTicket(i);
          ulong order_ticket = ulong(HistoryDealGetInteger(deal_ticket, DEAL_ORDER));
          if(order_ticket > 0)
          {
            ENUM_DEAL_ENTRY deal_entry = ENUM_DEAL_ENTRY(HistoryDealGetInteger(deal_ticket, DEAL_ENTRY));
            if(deal_entry == DEAL_ENTRY_IN)
            {
              double price = HistoryDealGetDouble(deal_ticket, DEAL_PRICE);
              double volume = HistoryDealGetDouble(deal_ticket, DEAL_VOLUME);
              price_in += price * volume;
              volume_in += volume;  
            }
          }
        }
        if(volume_in > 0)
        {
          //int digits=int(SymbolInfoInteger(aSymbol, SYMBOL_DIGITS ));
          return(NormalizeDouble(price_in/volume_in, Digits()));
        }  
      }
      else
      {
        Print(__FUNCTION__, ": Невозможно получить историю позиции по символу ", aSymbol);
      }
    }
    else
    {
      Print(__FUNCTION__, ": Невозможно определить идентификатор позиции по символу ", aSymbol);
    }
  }
  return(0);
}
 
prostotrader #:

Читайте в этом разделе тему:

"ФОРТС. В помощь начинающим"

1. Потеряна проверка ORDER_MAGIC, а у нас неттинг и на символе торгуют несколько роботов.

2. Каждый раз выполнять эту кучу кода с циклом вместо того, чтобы взять st.Price

3. А что насчёт работы в тестовом режиме на реальном графике - с имитацией сделок?

Причина обращения: