Эмуляция тиков из советника/индикатора - страница 6

 
IgorM:

неа..., не работает

ошибок в логе нет, даже инет в терминале, по совету Вадима, не отключал - выходной все равно тиков нет


  Игорь, а напишите вашу конфигурацию.
 
FAQ:  Игорь, а напишите вашу конфигурацию.

обычно и сейчас ноут Asus F80C даже не помню, чтобы чтонить не работало на этом ноуте, даже "Call of Duty: Modern Warfare 3" не тормозил, как и OpenCL под МТ5 работает :)

ЗЫ: есть еще копм Core 2 Duo , со встроенной видюхой, но он просто "пылится" в тумбочке под ТВ, иногда мультики по нем смотрят - выкинуть жалко, а необходимости юзать нету, можно конечно и на нем проверить, но лень :)

 
я имел в виду софтовую конфигурацию, что за винда, сколько бит, права админа, и пр.
 
FAQ:я имел в виду софтовую конфигурацию, что за винда, сколько бит, права админа, и пр.

 

установлены все обновления по сегодняшний день

ЗЫ: в винХР на этом ноуте проблем нет - код работает 

 
да, кстати, кажется последний код немного по другому работает в отличии от предыдущих: если правой мышью "обновить" на графике, то будет два тика
 
Автору спасибо.Использовал код с первой страницы, все сразу заработало, (у меня ХР). Присоединил к своему советнику то-же все работает без проблем. Побольше бы такого кода - проверенного и понятного для не программистов типа меня самоучки ! К стати и на сервере 2003 R2 то же все нормально.
 
expertboss:
Автору спасибо.Использовал код с первой страницы, все сразу заработало, (у меня ХР). Присоединил к своему советнику то-же все работает без проблем. Побольше бы такого кода - проверенного и понятного для не программистов типа меня самоучки ! К стати и на сервере 2003 R2 то же все нормально.
На первой странице там был не совсем корректный вариант, могущий привести к сбою. Возьмите лучше исправленный вариант на пятой странице.
 

В общем вот окончательный вариант функции:

int SetMyTimer(int TimerId, int Interval)
{    
  int hWnd= WindowHandle(Symbol(),Period());
  int MT4InternMsg= RegisterWindowMessageA("MetaTrader4_Internal_Message");
  int PostMsgAddr= GetProcAddress(GetModuleHandleA("user32.dll"),"PostMessageA");
  if (PostMsgAddr==0 || hWnd==0) return(0);
  // push ebp; move ebp,esp; push 01; push 02; push MT4InternMsg; push hWnd; mov eax,PostMsgAddr; call eax; pop ebp; ret 0010;    
  int value[]={ 0x55, 0x8B,0xEC, 0x6A,01, 0x6A,02, 0x68,0000, 0x68,0000, 0xB8,0000, 0xFF,0xD0, 0x5D, 0xC2,0x10 };
  int len[]=  { 1,    1,   1,    1,   1,  1,   1,  1,   4,    1,   4,    1,   4,    1,   1,    1,    1,   2 };
  value[8]=MT4InternMsg;  value[10]=hWnd;  value[12]=PostMsgAddr;
  static int TimerCode[7];  ArrayInitialize(TimerCode,0);
  int byte=0;  
  for (int i=0;  i<ArraySize(value);  i++)
    for (int j=0;  j<len[i];  j++, byte++)
      TimerCode[byte/4] |= value[i]>>(8*j)&0xFF<<(byte%4*8);

  return ( SetTimer(hWnd, TimerId, Interval, TimerCode) );
}
 

Спасибо. Уже около часа ночи прочитал все страницы, досконально. Ваш спор по поводу что лучше а что хуже считаю безпредметным. Есть программеры которым нет ничего разобраться с библиотеками и подгрузить чего там надо или запустить какую нибудь функцию без проблем, тогда те коды с очистителями багов нормально для них пусть пользуются , но есть и такие как я, самоучка, допустим чтобы разобраться и написать собственную работающую функцию прошел не один месяц (я имею ввиду вообще познания в тонкостях) и то чтобы "догнать" как работают функции в том же "автографе" (хотя честь и хвала автору как четко все прописано) тоже трудности. По этому и приходится пользоваться тем что покороче и попонятней - это для таких как я. Этот вариант мне ближе. Конечно я не разберусь каким методом и как работает эта функция, тем более на ассемблере, но она есть! вот она! подсоединяй к своему творению и вперёд.

   По поводу нужности не нужности тиков не понимаю, зачем было вообще спорить НУЖНЫ ! и не только в выходные. к стати чтобы не быть голословным я попробовал оба варианта.Ваш Алексей точно лучше, опять же моё личное мнение. Подитожить  если:  то все хорошо кто понимает с чем работает и кому что ближе. Да и не напрасно же я эту тему нашел потому что без этих самых тиков было тяжеловато двигаться дальше в разработке, потому,что надо было покопаться в истории ордеров и по тому что как они были закрыты и делается дальнейшая стратегия, а чтоб покопаться пока не пришел новый "официальный" тик при помощи эмулированных все и решилось. Вот.  

Честно говоря не за этим пришел сюда а за вопросом, а мыслями поделился на волне прочтенного.  

Вернее даже не вопрос, а разговор писал что на ХР и сервере работает все верно но сервер русский 2003 стандарт, хотел поменять компанию а там только 2008 и 2003 интерпрайзы , пытался запустить не идет, пытался поменять библиотеки на серверах с той версией что работает не тут-то было сервер не дает даже регистраторами dll не пускает видит что не его версия и тут же подгружает свою. Наверно так и задумано. Ладно сегодня уже совсем поздно, завтра допишу что получилось попробую индикатор и последнюю версию функции. 

Александр. 

 

А я вот вообще не понимаюкак можно полезно практически применить генератор тиков и нафиг он нужен?  (кроме спортивного интереса). (а среднее проскальзывание с учетом параметров бара, спреда  и тикового объема любой прикинуть может).   Генератор тиков в тестере ни лучше и ни хуже других генераторов т.к ни тот и ни другой не отражают реального движения в минутном баре.    А если взяться моделировать от балды - то  для реалистичности не помешало бы  учесть и снапшот котировок (будь онпроклят если он велик) - максимальный - треть секунды для львиной доли есн и стп брокеров за редкими всплесками. Но это все равно не поможет а ни как.

  Поднимаю рюмку за тики! 

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