Скачать MetaTrader 5

Несколько вопросов по новым функциям работы с сигналами.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Запусти агентов на свободном компьютере. Это принесет доход!
Alexandr Bryzgalov
27421
Alexandr Bryzgalov 2014.07.06 16:42 
1. Как часто обновляются данные?

2. Все ли сигналы видят функции, среди тех которые есть в базе?

3. Почему нет возможности получить валюту счёта в свойствах сигнала? Тут в принципе сам отвечу: "потому что не сделали". А когда сделаете?

4. Если дали возможность автоматической подписки на сигналы, то почему не дали возможность самостоятельно получать и обрабатывать историю сделок? Тут в принципе тоже понятно, но блин, "хотелось бы".

5. Какое значение вернёт функция SignalInfoGetInteger(SIGNAL_INFO_SUBSCRIBTION_ENABLED), если подписка не разрешена? (в справке почему-то не указано) (ну и все остальные свойства связанные с флагами)

  кстати ошибочка где-то(компилятор принимает SIGNAL_INFO_SUBSCRIPTION_ENABLED, а в справке SIGNAL_INFO_SUBSCRIBTION_ENABLED)

6. Как программно узнать разрешена ли подписка на сигнал?

Речь идёт об этих функциях:

  • SignalBase*() — функции доступа к базе сигналов.
  • SignalInfo*() — функции получения настроек сигнала.
  • SignalSubscribe() и SignalUnsubscribe() — функции управления подпиской.
Automated-Trading
Админ
99100
Automated-Trading 2014.07.08 11:09  

sanyooooook:

  кстати ошибочка где-то(компилятор принимает SIGNAL_INFO_SUBSCRIPTION_ENABLED, а в справке SIGNAL_INFO_SUBSCRIBTION_ENABLED)

Спасибо за сообщение, справку скорректируем.
Alexandr Bryzgalov
27421
Alexandr Bryzgalov 2014.07.08 11:46  

Что ж если никто не знает попробую сам:

1. Как часто?

Поставил скрипт:

double LastEquity=0;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   while(!IsStopped())
     {
      RefreshRates();
      WindowRedraw();

      if(SignalBaseSelect(0))
        {
           {
            Comment(TimeCurrent()," ",SignalBaseGetString(SIGNAL_BASE_NAME)," ",SignalBaseGetDouble(SIGNAL_BASE_EQUITY));
            if(MathAbs(SignalBaseGetDouble(SIGNAL_BASE_EQUITY)-LastEquity)>0)Alert("Обновление");
            LastEquity=SignalBaseGetDouble(SIGNAL_BASE_EQUITY);
           }
        }
      else PrintFormat("Ошибка выбора сигнала. Код ошибки=%d",GetLastError());
     }
   Sleep(500);
  }
//+------------------------------------------------------------------+

минут 5 висит ни одного сигнала, на сигнале эквити обновилось несколько раз.

Похоже что не часто. (

3 часа прошло, обновления нет 

6 часов - обновления инфы по сигналу нет ((

первое обновление в 1:25 по Москве за последние 8-10 часов, не густо ((

Alexandr Bryzgalov
27421
Alexandr Bryzgalov 2014.07.08 11:52  

2. Всё ли видно?

Тут сложно сказать, но однозначно функции видят больше чем видно на сайте в текущий момент.

Если ДЦ перекрыл доступ к сигналам, то функции слепнут.

SignalBaseTotal();

сейчас даёт 996(не знаю все ли это сигналы МТ4 и МТ5 или только для МТ4) сигналов, на сайте видно около 400(Для МТ4)

Alexandr Bryzgalov
27421
Alexandr Bryzgalov 2014.07.08 15:27  

6. Как узнать можно ли подписываться?

Тут видимо только методом проб и ошибок, другого способа не увидел:

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

Alexandr Bryzgalov
27421
Alexandr Bryzgalov 2014.07.08 15:33  

3. Как узнать валюту счёта?

Тут всё понятно: "А на хрена?"

По большей части валюта счёта не нужна, но почему-то таки хочется знать валюту счёта на который собрался подписываться.

Alexandr Bryzgalov
27421
Alexandr Bryzgalov 2014.07.10 16:54  

по обновлению базы:

похоже на то что обновление бывает раз в 12 часов, но с момента запуска терминала

вот лог скрипта:

2014.07.10 18:40:32.671    SignalInfo1 BTCUSD,H1: Alert: Обновление
2014.07.10 18:40:32.468    SigInfo LTCUSD,H1: Alert: Обновление
2014.07.10 06:39:38.718    SignalInfo1 BTCUSD,H1: Alert: Обновление
2014.07.10 06:39:37.734    SigInfo LTCUSD,H1: Alert: Обновление
2014.07.09 18:37:01.718    SignalInfo1 BTCUSD,H1: Alert: Обновление
2014.07.09 18:36:40.687    SigInfo LTCUSD,H1: Alert: Обновление

т.е. перед этим запускал скрипт где-то в 13:30 по Москве следующее обновление прошло через ~12 часов, сейчас так же
Alexandr Bryzgalov
27421
Alexandr Bryzgalov 2014.07.10 17:52  

причём на разных терминалах скрипты запущенные в разное время показывают разные значения для одного и того же сигнала

График BTCUSD, H1, 2014.07.10 15:50 UTC, Distel Enterprise, MetaTrader 4, Real
График BTCUSD, H1, 2014.07.10 15:50 UTC, Distel Enterprise, MetaTrader 4, Real
  • www.mql5.com
Символ: BTCUSD. Период графика: H1. Брокер: Distel Enterprise. Торговая платформа: MetaTrader 4. Режим торговли: Real. Дата: 2014.07.10 15:50 UTC.
Alexandr Bryzgalov
27421
Alexandr Bryzgalov 2014.07.10 17:56  

и ни одно значение не совпадает с текущим значением на сигнале:


Alexandr Bryzgalov
27421
Alexandr Bryzgalov 2014.07.12 20:58  

Почему для терминалов от разных ДЦ предоставляется разная информация по сигналам?

http://joxi.ru/WoTBU4wyTJDrBuHoOpE

http://joxi.ru/t4TBU4wyTJB6aASj5aI

делал вот этим скриптом:

void OnTick()
{
   int total=0;
   string stroka="";
   for(int i=SignalBaseTotal()-1;i>=0;i--)
   {
      if(SignalBaseSelect(i))
      {
         double Balance=SignalBaseGetDouble(SIGNAL_BASE_BALANCE);
         double Equity=SignalBaseGetDouble(SIGNAL_BASE_EQUITY);
         double Drawdown=(Equity-Balance)/Balance;
         if(SignalBaseGetInteger(SIGNAL_BASE_TRADE_MODE)==0)
         {
            if(SignalBaseGetDouble(SIGNAL_BASE_PRICE)<1.0)
            {
               if(SignalBaseGetDouble(SIGNAL_BASE_MAX_DRAWDOWN)>50.0)
               {
                  if(Drawdown<=(-0.01)&&Drawdown>(-0.20))
                  {
                     stroka=stroka+StringConcatenate(SignalBaseGetString(SIGNAL_BASE_NAME),"                              Прирост: ",SignalBaseGetDouble(SIGNAL_BASE_GAIN)," Drawdown:                       ",NormalizeDouble(Drawdown*100,2),"\n");
                     total++;
                  }
               }
            }
         }
      }
      else PrintFormat("Ошибка выбора сигнала. Код ошибки=%d",GetLastError());
   }
   Comment(total,"\n",stroka);
}
Скриншот
Скриншот
  • joxi.ru
сделан при помощи Joxi.ru
Rashid Umarov
Админ
11815
Rashid Umarov 2014.07.16 17:14  
sanyooooook:

Почему для терминалов от разных ДЦ предоставляется разная информация по сигналам?


Что имеется в виду - разный список сигналов? Сейчас вы можете указать своего брокера и получить:

  1. только те сигналы, на которые вы можете подписаться
  2. и эти сигналы будут дополнительно отсортированы на основание рейтинга брокеров - то есть одни сигналы станут для вашего брокера более предпочтительными, другие менее. Корректировака производится за счет учета совпадения различий торговых объемов между подписчиком и провайдером, а также на основании статистики проскальзываний.

Новая система делает более удобным выбор сигналов для копирования. 


123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий