Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 862

 
Добрый вечер!
Помогите пожалуйста дописать простой индикатор (советник) пробоя горизонтальных уровней.
Всё написал, но не могу найти ошибки. Алерты не срабатывают.

Идея индикатора:
- установка двух горизонтальных уровней (можно передвигать вручную на нужный уровень).
- при пересечении ценой верхнего уровня снизу-вверх срабатывает алерт.
- при пересечении ценой нижнего уровня сверху-вниз срабатывает алерт.
Файлы:
 
Вам интереснее дописать индикатор, или суметь сделать следующий? 
 

Всем доброго времени суток. Нужен алгоритм расчёта. Подскажите, каким образом считать среднюю скорость поступления тиков в терминал по заданному инструменту?

Например, средняя скорость поступления тиков считается исходя из 15 их количества для расчёта.

При запуске индикатора (пишу индикатор), в нём считаются поступающие тики и время их поступления. Как только число тиков = 15, это кол-во делится на секунды, за которые они поступили. В итоге получается ПЕРВОЕ значение средней скорости поступления тиков в секунду.

Далее тики продолжают поступать и секунды идти. Каким алгоритмом можно учитывать количество САМЫХ_ свежих  15 тиков и время_их_поступления в секундах для нахождения среднего значения скорости "САМЫХ_ свежих/время_их_поступления " (тики/секунды)  для  построения кривой  по этой средней скорости.

За рекламу не считать.

Вот по ссылке - индикаторы в исполняемых файлах и ТС на их основе.

http://fintraders.ru/index.php?option=com_content&view=article&id=88&Itemid=95

Кому не в лом и есть время - гляньте и подскажите, плиз, по моему вопросу.

 
Sancho77:

При оптимизации в тестере часто выскакивает в журнале такое сообщение

"2015.03.05 11:04:55.924    Memory handler: cannot allocate 343699140 bytes of memory"

Уважаемые, подскажите какую такую память не может обнаружить терминал? Как лечится?


Если выскакивает когда тестите по опен баров, попробуйте по контрольным точкам
 
_Roman:

Всем доброго времени суток. Нужен алгоритм расчёта. Подскажите, каким образом считать среднюю скорость поступления тиков в терминал по заданному инструменту?

Например, средняя скорость поступления тиков считается исходя из 15 их количества для расчёта.

При запуске индикатора (пишу индикатор), в нём считаются поступающие тики и время их поступления. Как только число тиков = 15, это кол-во делится на секунды, за которые они поступили. В итоге получается ПЕРВОЕ значение средней скорости поступления тиков в секунду.

Далее тики продолжают поступать и секунды идти. Каким алгоритмом можно учитывать количество САМЫХ_ свежих  15 тиков и время_их_поступления в секундах для нахождения среднего значения скорости "САМЫХ_ свежих/время_их_поступления " (тики/секунды)  для  построения кривой  по этой средней скорости.

За рекламу не считать.

Вот по ссылке - индикаторы в исполняемых файлах и ТС на их основе.

http://fintraders.ru/index.php?option=com_content&view=article&id=88&Itemid=95

Кому не в лом и есть время - гляньте и подскажите, плиз, по моему вопросу.



Y[0]=Y[1]+(X[0]-X[15])/15, где: X[i]- время до поступления i-го тика от времени поступления предыдущего (i+1 - го) тика; Y[i]-скользящее среднее этого времени для крайних 15 тиков. 
 
tara:
Y[0]=Y[1]+(X[0]-X[15])/15, где: X[i]- время до поступления i-го тика от времени поступления предыдущего (i+1 - го) тика; Y[i]-скользящее среднее этого времени для крайних 15 тиков. 

Благодарю. Разбираюсь. Получается.

Вышел (выхожу - пока ещё не понял) на более простое решение...


 
Как на этом форуме искать в пределах одной темы? Хочу поискать информацию по функциям Copy* в пределах конкретно этого топика. Тот поиск, что справа вверху, ищет либо по всему сайту, либо по всему форуму, не подходит ни первое, ни второе.
 

Всем привет! Столкнулся с проблемой.

Использую функцию OrderSelect для определения прибили/убытка последних 3-х ордеров.

В тесторе GetLastError() выдает ошибку №4051
В чем может быть причина?


for(int i=OrdersHistoryTotal(); i>OrdersHistoryTotal()-3; i--)
   {   
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==false)    
         {
         Print("motherfucker ERROR.....",GetLastError());
         continue;
         }
    if ((OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true) && (OrderSymbol()==Symbol()) && OrderMagicNumber()==Magic)                    
      {
 
void CalculateSimpleMA(int rates_total,int prev_calculated,const double &price[])
  {
   int i,limit;
//--- first calculation or number of bars was changed
   if(prev_calculated==0)
   
     {
      limit=InpMAPeriod;
      //--- calculate first visible value
      double firstValue=0;
      for(i=0; i<limit; i++)
         firstValue+=price[i];
      firstValue/=InpMAPeriod;
      ExtLineBuffer[limit-1]=firstValue;
      ExtLineBufferFid[1]=(firstValue*InpMAPeriod-price[i-InpMAPeriod])/i-1; Добрый человек предоставил вот такую реализацию(sma99[i]=(sma100[i]*100-d[i-100])/99;), но что то не выходит!

 Здравствуйте, знатоки подкиньте решение!)

КАК рассчитать:

Имея период Скользящей (например-16) рассчитать период 15, отталкиваясь от периода 16.

 
Top2n:

 Здравствуйте, знатоки подкиньте решение!)

КАК рассчитать:

Имея период Скользящей (например-16) рассчитать период 15, отталкиваясь от периода 16.

Фарш невозможно провернуть назад и мясо из котлет не восстановишь...
Причина обращения: