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

 
AlexeyVik:

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

Но по теме слип в индикаторах, думаю можно создать свой собственный слип посредством зацикленной функции GetTickCount()

Тот индикатор, который готовит данные, вешает флаг готовности через глобальную переменную ( или, через файл). Другой индикатор, по готовности, сбрасывает флаг и читает данные.

В тестере, также, правильно работать не будет. 

 
Vinin:
Лучше время проверять 
В некоторых случаях - Да, лучше. Но если надо притормозить на пол секунды... увы уже не поможет. Я-же не говорил о том что это универсальный вариант. Всего лишь имитация функции Sleep().
 
для Sleep в тестере делал (думаю для индюка тоже подойдёт) цикл в while внутри i++ и подобрать размер  максимальной итерации который будет (приблизительно) соответствовать нужному времени задержки
 
Money_Maker:
для Sleep в тестере делал (думаю для индюка тоже подойдёт) цикл в while внутри i++ и подобрать размер  максимальной итерации который будет (приблизительно) соответствовать нужному времени задержки

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

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

 
nikelodeon:

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

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

Включить GetTickCount() и от него отсчитать 20 секунд.
 
Просто, работайте на каждом тике. Как только поступит сигнал, сделайте что-нибудь :) 
 

Подскажите, как вычислить плечо для конкретного инструмента?

Есть строка:

double minlotmoney= Bid*lotsize*minlot/leverage;       //Стоимость минимального лота  в $

Но она не подходит для некоторых инструментов, по которым у Брокера плечо другое (зашито в AccountLeverage() )

 

Ребята, подскажите как рассчитать корреляцию за последние 100 баров.

Нигде не нашёл вменяемую формулу, дошёл до этого места, и остановился

 int TF = Period();
 int ADR = 100;
 double p1=0;
 double p2=0;
 string Pair1 = "GBPUSD";
 string Pair2 = "EURUSD";
  for (int f = 1; f <= ADR; f++)
   {
     p1 += (iHigh(Pair1, TF, f) - iLow(Pair1, TF, f)) / MarketInfo(Pair1, MODE_POINT); //sum pair1 range (i) 
     p2 += (iHigh(Pair2, TF, f) - iLow(Pair2, TF, f)) / MarketInfo(Pair2, MODE_POINT); //sum pair2 range (i)
   }
 /* Тут неправильно
  double c1 = p1 / ADR;
  double c2 = p2 / ADR;
  double rs = c2 / c1;

  Comment( DoubleToStr(rs, 2) );
 */

 

Заранее спасибо, кто поможет! 

 

Здравствуйте, такой вопрос:

При програмном переборе чартов, их подокон, индикаторов в подокнах можно узнать общее кол-во индикаторов и далее их имена, параметры и т.д.

используя ChartIndicatorsTotal, ChartIndicatorName .. и т.п.

Как узнать так же програмно по ChartID имя запущенного в этом окне советника(эксперта) ?

 
Ну думаю знатоки сейчас опухнут от таких проблем, а тут ещё я со своими :-) Ка сделать чтоб при закрытии сделки выставлялись значки на график как в тестере????? Может быть есть уже готовые функции какие????
Причина обращения: