Для события CHARTEVENT_MOUSE_MOVE строковой параметр sparam содержит число, представляющее информацию о состоянии клавиш:
Бит
Описание
1
Состояние левой клавиши мыши
2
Состояние правой клавиши мыши
3
Состояние клавиши SHIFT
4
Состояние клавиши CTRL
5
Состояние средней клавиши мыши
6
Состояние первой дополнительной клавиши мыши
7
Состояние второй дополнительной клавиши мыши
Это будет работать на мт4 !? ведь справка мт5!?
Можно еще кусочек кода пример по нажатию (контрл+А) вывести алерт или принт а то я не вижу или не пойму разницы между моим алертом по нажатию и как сочетание выделить !?
Ваша терминология - поймать, отобрать, отработать. Вот смотрите как иначе. Хочу, чтоб по нажатию Ctrl-A на активном графике появлялись линии Фибоначчи. Повторное нажатие - исчезают. Можно сделать советник с Вашей функцией - но это он должен висеть на графике. Пишу скрипт:
Назначаю ему требуемое сочетание клавиш. Попробуйте!!!
да все замечательно только тогда нужно в советнике и скрипте делать связку по переменным и эмуляцию нажатия в некоторых случаях и как понимаете дополнительный геморой при связке советника и скрипта !
Спасибо об этом варианте назначения скрипту сочетания клавиш я знаю но он мне не подходит !
Можно еще кусочек кода пример по нажатию (контрл+А) вывести алерт или принт а то я не вижу или не пойму разницы между моим алертом по нажатию и как сочетание выделить !?
Ну так граждане кто помогет дасторбайтерам !? такое ощущение что все умерли !
double mZz1[][8];
double mZz2[][8];
double mZz3[][8];
double mZz4[][8];
double mZz5[][8];
for (int a=1;a<6;a++)
{
double mMass[][8]==mZzа[][8];
далее другой код по обработке массивов;
}
Уважаемые понимаю что вот код неправильный подскажите или поправьте код чтобы в mMass[][8] копировались или вставлялись mZz по очереди.
Уважаемые понимаю что вот код неправильный подскажите или поправьте код чтобы в mMass[][8] копировались или вставлялись mZz по очереди.
Попробуйте такой скрипт
//#property strictdouble mMass[16][8]; // Или задать колич-во элементов или использовать ArrayResizedouble mZzа[][8]={3,7,4,9,2,5}; // Для простоты зададим// Если массив описать внутри цикла, то ...void start()
{
for (int a=1;a<6;a++) mMass[0][a]=mZzа[0][a];
// Обработкаstring s;
for (a=1, s="";a<6;a++) s+=" "+(string)mMass[0][a];
Alert(s);
}
case55:{Stat();bar0=0;break;}
}
//+------------------------------------------------------------------+//| Сбор статистики |//+------------------------------------------------------------------+void Stat()
{
for(int a=1;a<6;a++){if(a==2){Statistic(mZz2,namZz2);}if(a==3){Statistic(mZz3,namZz3);}if(a==4){Statistic(mZz4,namZz4);}}
}
//+------------------------------------------------------------------+//| Сбор статистики |//+------------------------------------------------------------------+void Statistic(double &mMass[][],string NameZz)
{
int e,y0,y1,y2,y3,y4,y5,c1,c2,c3,c4,c5,d1,d2,d3,d4,d5,sving;
if((PaintZz2==1)&&(PaintZz3==1)&&(PaintZz4==1))
{if(NameZz==namZz2){printf("Подождите идет расчет статистики");}}
else
{printf("Включите для расчета статистики");}return;}
//----------------------------------------------int handle;
for(e=2; e!=ArrayRange(mMass,0); e++){switch((int)mMass[e][7]){//собираем статистику
Вот выдержка из рабочего кода ! Как собрать это в одной void Statistic без промежуточной void Stat !? То что Вы предлагаете мне нужно весь код перетачивать чтобы все массивы в один собрать и потом оттуда выцарапывать !
Вот выдержка из рабочего кода ! Как собрать это в одной void Statistic без промежуточной void Stat !? То что Вы предлагаете мне нужно весь код перетачивать чтобы все массивы в один собрать и потом оттуда выцарапывать !
Ага!!! Теперь начинаю понимать... В цикле переменная a меняется от 1 до 6. При значениях этой переменной 1, 5 и 6 какие-либо действия отсутствуют. Тогда просто
Теперь Вам надо избавиться от функции Statistic ? Нужно написать ее тело подряд три раза, заменить в каждой из трех частей формальные параметры фактическими и удалить дублирование объявлений переменных. Общий код будет чуть длиннее, но выполнение ускорится. Есть смысл выбросить print() - кто же именно в это время будет журнал сообщений смотреть? - или заменить на Alert(), чтоб на экран вылазило. Еще там переменная namZz2 - ее значение меняется?
Подскажите, пожалуйста, как в индикаторе наладить его работу только на открытии бара, а не на каждом тике и как сделать, чтобы он не бегал каждый раз (на каждом новом баре) по всей истории?
Rost17: Подскажите, пожалуйста, как в индикаторе наладить его работу только на открытии бара, а не на каждом тике и как сделать, чтобы он не бегал каждый раз (на каждом новом баре) по всей истории?
datetime t; Сначала о барах. При формировании нового бара в Time[0] записывается новое значение - время открытия бара. OnCalculate(...) { if(Time[0] == t) return(0); // Если этот БАР обработан --> выход t = Time[0];
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Возможно и для клавиш подойдет.
Для события CHARTEVENT_MOUSE_MOVE строковой параметр sparam содержит число, представляющее информацию о состоянии клавиш:
Бит
Описание
1
Состояние левой клавиши мыши
2
Состояние правой клавиши мыши
3
Состояние клавиши SHIFT
4
Состояние клавиши CTRL
5
Состояние средней клавиши мыши
6
Состояние первой дополнительной клавиши мыши
7
Состояние второй дополнительной клавиши мыши
Это будет работать на мт4 !? ведь справка мт5!?
Можно еще кусочек кода пример по нажатию (контрл+А) вывести алерт или принт а то я не вижу или не пойму разницы между моим алертом по нажатию и как сочетание выделить !?Ваша терминология - поймать, отобрать, отработать. Вот смотрите как иначе. Хочу, чтоб по нажатию Ctrl-A на активном графике появлялись линии Фибоначчи. Повторное нажатие - исчезают. Можно сделать советник с Вашей функцией - но это он должен висеть на графике. Пишу скрипт:
Назначаю ему требуемое сочетание клавиш. Попробуйте!!!
да все замечательно только тогда нужно в советнике и скрипте делать связку по переменным и эмуляцию нажатия в некоторых случаях и как понимаете дополнительный геморой при связке советника и скрипта !
Спасибо об этом варианте назначения скрипту сочетания клавиш я знаю но он мне не подходит !
Спасибо!
Это будет работать на мт4 !? ведь справка мт5!?
Можно еще кусочек кода пример по нажатию (контрл+А) вывести алерт или принт а то я не вижу или не пойму разницы между моим алертом по нажатию и как сочетание выделить !?Ну так граждане кто помогет дасторбайтерам !? такое ощущение что все умерли !
Уважаемые понимаю что вот код неправильный подскажите или поправьте код чтобы в mMass[][8] копировались или вставлялись mZz по очереди.
Уважаемые понимаю что вот код неправильный подскажите или поправьте код чтобы в mMass[][8] копировались или вставлялись mZz по очереди.
Попробуйте такой скрипт
Вот выдержка из рабочего кода ! Как собрать это в одной void Statistic без промежуточной void Stat !? То что Вы предлагаете мне нужно весь код перетачивать чтобы все массивы в один собрать и потом оттуда выцарапывать !
Вот выдержка из рабочего кода ! Как собрать это в одной void Statistic без промежуточной void Stat !? То что Вы предлагаете мне нужно весь код перетачивать чтобы все массивы в один собрать и потом оттуда выцарапывать !
Давайте сначала рассмотрим строку
чтоб мне было понятней переписал так
Ага!!! Теперь начинаю понимать... В цикле переменная a меняется от 1 до 6. При значениях этой переменной 1, 5 и 6 какие-либо действия отсутствуют. Тогда просто
Statistic(mZz2,namZz2); Statistic(mZz3,namZz3); Statistic(mZz4,namZz4);или в Вашем стиле
Результат будет тот же, но выполнится быстрее
Теперь Вам надо избавиться от функции Statistic ? Нужно написать ее тело подряд три раза, заменить в каждой из трех частей формальные параметры фактическими и удалить дублирование объявлений переменных. Общий код будет чуть длиннее, но выполнение ускорится. Есть смысл выбросить print() - кто же именно в это время будет журнал сообщений смотреть? - или заменить на Alert(), чтоб на экран вылазило. Еще там переменная namZz2 - ее значение меняется?
Здравствуйте!
Подскажите, пожалуйста, как в индикаторе наладить его работу только на открытии бара, а не на каждом тике и как сделать, чтобы он не бегал каждый раз (на каждом новом баре) по всей истории?
Заранее благодарю.
Ростислав
Сначала о барах. При формировании нового бара в Time[0] записывается новое значение - время открытия бара.
OnCalculate(...)
{
if(Time[0] == t) return(0); // Если этот БАР обработан --> выход
t = Time[0];
Теперь по всей истории: тормозить будет