Как узнать, что индикатор используется режиме Тестирования - страница 3

 
Integer:


Ответ неверный.

.....

WIN API! :) Есть другой гораздо более простой (до смешного) способ узнать, работает ли индикатор на графике при визуальном тестировании, или на нормальном графике. И знаете ли, не родился со знанием этого способа. Могу поделиться секретом сопособности обучаться. Это смирение.

ну так может перестанем трепаться и просто расскажем о "гораздо более простом способе"? ;)

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

 
ForexTools:

ну так может перестанем трепаться и просто расскажем о "гораздо более простом способе"? ;)

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

Что-то не хочется проверять работу функций IsTesting() и IsVisualMode() в индикаторах, судя по обсуждению их уже проверили :)

Косвенно можно судить о работе в режиме тестирования:

a) по равенству TimeLocal() и TimeCurrent()

b) по равенству TimeLocal() и TimeLocal() после Sleep(1000)

 
PapaYozh:

Что-то не хочется проверять работу функций IsTesting() и IsVisualMode() в индикаторах, судя по обсуждению их уже проверили :)

У меня почему-то другое впечатление, что никто не проверял, но все рассуждают.

 
PapaYozh:

b) по равенству TimeLocal() и TimeLocal() после Sleep(1000)

Sleep в индикаторах не работает.
 
ForexTools:
Sleep в индикаторах не работает.

Вот и здОрово.
 
Integer:

У меня почему-то другое впечатление, что никто не проверял, но все рассуждают.

я проверял. в небезызвестной ветке об тиках в тестере я писал об результатах своего изучения тестерных тиков. там я пользовал свой индюк который рисует тиковый график. и обнаружил что то, что работает на счете в тестере не пашет. Там нужно тики забирать не из Bid/Ask а из Close[0]. Чтобы узнать откуда нужно брать циферку для графика индикатора мне пришлось выяснять где работает индюк (тестер или реал). IsTesting не отработал, других способов не нашел (возможно не глубоко рыл и не там искал), но в результате плюнул и завел параметр индикатора и запуская в тестере индюка принудительно задавал нужное мне значение. так что вопрос (для меня во всяком случае) до сих пор актуален
 
vedroid:

Добрый день.

Функция IsTesting() и IsVisualMode(), вроде как не должны работать в индикаторах.

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

Так как при Тестировочном режиме Время субботы и воскресенья в окне графика нет - уже вырезанные дырки выходных. А при обычной торговле, время отображается линейно, поэтому например можно установить ТрендЛинию в точку со временем например в субботе.


Вместо функций IsTesting() и IsVisualMode() используйте функцию IsTestingOpt() из прилагаемого файла.

Integer:

Для начала надо определиться, о каком тестировании идет разговор.

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

Вам не понятно о каком тестировании идет разговор?!

Если ухо жжет бред, скорее - скорее тушите вкладку вашего браузера и настанет благодать (субъективно).

...

Файлы:
 
costy_:

используйте функцию IsTestingOpt() из прилагаемого файла.

блеск! отличный пример как недостаток (отсутствие мультивалютного тестирования) можно превратить в достоинство: раз нельзя получить правильные/синхронные данные по другому инструменту - значит это тестирование.

за рабочую идею огромадное спасибо! только одно маленькое замечание: у некоторых ДЦ к "стандартным" названиям пар приписывается свой суфикс. например я знаю такие EURUSD_A, EURUSD- и т.п. так что для пущей надежности надо брать два первых символа из окна обзора рынка.

 
[isTestingOpt_2.mq4]

bool IsTestingOpt(){
  if(Symbol()=="EURUSD")   string Symbol_="GBPUSD";  else   Symbol_="EURUSD";
  while(true&&IsConnected())  if(iClose(Symbol_,0,0)!=0) break;//подкачка данных 0 бара
  if(iTime(Symbol_,0,0)>Time[0])    return(1);
  return(0); 
}

Мамачки:) 

 

Определение того, что индикатор находится на графике визуального тестирования:

 MarketInfo(Symbol(),MODE_TIME)>Time[0]+Period()*60

При вызове индикатора из эксперта при тестировании, функции IsTesting() и IsVisualMode() работаю в индикаторе правильно.

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