Пишу советник, и столкнулся с проблемой. По ТС советник должен проводить вычисления каждую минуту на протяжении заданного количества минут. После чего, все данные должны обнуляться и расчеты должны проводится с начала.
И так цикл за циклом. Цикл времени задается от 1 до 60 минут. Подскажите как это описать правильно в коде? Как представленный ниже код сделать цикличным и с возможностью задавать размер цикла от 1 до 60 минут?
Пока у меня цикл из 5 минут выглядит так :
Буду благодарен за помощь.
это уже ваш повторный пост.
мне так кажется. что народ просто не понимает о чем вы спрашиваете.
Пишу советник, и столкнулся с проблемой. По ТС советник должен проводить вычисления каждую минуту на протяжении заданного количества минут. После чего, все данные должны обнуляться и расчеты должны проводится с начала.
И так цикл за циклом. Цикл времени задается от 1 до 60 минут. Подскажите как это описать правильно в коде? Как представленный ниже код сделать цикличным и с возможностью задавать размер цикла от 1 до 60 минут?
Вопрос в следующем. В индикаторе поставил переключение по историческим данным через
Я знаю можно сделать через буфферы ввиде линий, НО не хочу, т.к. буфферов только 8 ! Делал это с разбивкой на несколько индюков, но опять не устраивает по многим разным причинам....(:
ВОПРОС №1.
Как можно сделать shift истории через iBarShift .
Т.е. смысл в том, что я ставлю дату в глобальных переменных (например "02.06.2010 07:00"), а затем нажимая горячую клавишу (Cntrl+I) идет прибавление к iBarShift . И значения индикатора сдвигаются, т.е. тестируется))): визуально.
Так же ВОПРОС №2.
Как прописать в коде индекатора "горячую клавишу" (не МТ4 !!!!, а для кода индекатора, например, прибавить или убавить историю).
Через хуки, видимо, особенно если хотите переопределить контрол+I.
ВОПРОС №3
И где можно взять коды ASII для горячих клавишь???
Они Вам, скорее всего, не понадобятся, но коли очень нужно, то здесь.
Через хуки, видимо, особенно если хотите переопределить контрол+I.
Они Вам, скорее всего, не понадобятся, но коли очень нужно, то здесь.
Спасибо! Весело...):
Примерчик бы с хуками))): дали бы))): индикатор или часть...
=========================== =================
А ГЛАВНЫЙ ВОПРОС был про
ВОПРОС №1.
Как можно сделать shift истории через iBarShift .
Т.е. смысл в том, что я ставлю дату в глобальных переменных (например "02.06.2010 07:00"), а затем нажимая горячую клавишу (Cntrl+I) идет прибавление к iBarShift . И значения индикатора сдвигаются, т.е. тестируется))): визуально. Понятное дело, что надо примитивно прибавлять к iBarShift или вычитать...
Может я и не въехал, что же нужно сделать, но: Двигать график влево-вправо можно переписывая содержимое ячеек индицируемого буфера в соседние. И никакой iBarShift для этого не нужен.
MikeM: Может я и не въехал, что же нужно сделать, но: Двигать график влево-вправо можно переписывая содержимое ячеек индицируемого буфера в соседние. И никакой iBarShift для этого не нужен.
Видимо, именно это и нужно. Еще можно попробовать через SetIndexShift(), но че-то я не уверен, что будет перерисовывать вообще (на моей памяти вроде как оно работает только в init())
Доброго времени суток. Вопрос следующего содержания. В книге по MQL4 С.К. в главе "Переменные GlobalVariables" в разделе "Свойства GV-переменных" сказано: "GV-переменная может иметь только тип double". Ниже в разделе "Функция GlobalVariableDel()" приведен пример эксперта globalvar.mq4 следующего содержания:
//--------------------------------------------------------------------// globalvar.mq4// Предназначен для использования в качестве примера в учебнике MQL4.//--------------------------------------------------------------------int Experts; // Колич. экспертовdouble Depo=10000.0, // Заданный депозит
Persent=30, // Заданный процент
Money; // Искомые средстваstring Quantity="GV_Quantity"; // Имя GV-переменной//--------------------------------------------------------------------int init() // Спец. функция init
{
Experts=GlobalVariableGet(Quantity); // Получим тек. знач.
Experts=Experts+1; // Колич. экспертовGlobalVariableSet(Quantity, Experts); // Новое значение
Money=Depo*Persent/100/Experts; // Средства для эксп.Alert("Для эксперта в окне ", Symbol()," выделено ",Money);
return; // Выход из init()
}
//--------------------------------------------------------------------int start() // Спец. функция start
{
int New_Experts= GlobalVariableGet(Quantity);// Новое колич. эксп.if (Experts!=New_Experts) // Если изменилось
{
Experts=New_Experts; // Теперь текущ. такое
Money=Depo*Persent/100/Experts; // Новое знач. средств Alert("Новое значение для эксперта ",Symbol(),": ",Money);
}
/*
...
Здесь долен быть указан основной код эксперта,
в котором используется значение переменной Money
...
*/return; // Выход из start()
}
//--------------------------------------------------------------------int deinit() // Спец. ф-ия deinit
{
if (Experts ==1) // Если эксперт один..GlobalVariableDel(Quantity); //..удаляем GV-переменelse// А иначе..GlobalVariableSet(Quantity, Experts-1); //..уменьшаем на 1Alert("Эксперт выгружен из окна ",Symbol()); // Сообщ. о выгрузкеreturn; // Выход из deinit()
}
//--------------------------------------------------------------------
Вопрос: почему в данном примере глобальные переменные Expert и New_Expert имеют тип int, хотя, как указано ранее, эти переменные должны были бы иметь тип double?
Добрый день, господа.
Все еще нужен ваш совет вот в таком вопросе:
Пишу советник, и столкнулся с проблемой. По ТС советник должен проводить вычисления каждую минуту на протяжении заданного количества минут. После чего, все данные должны обнуляться и расчеты должны проводится с начала.
И так цикл за циклом. Цикл времени задается от 1 до 60 минут. Подскажите как это описать правильно в коде? Как представленный ниже код сделать цикличным и с возможностью задавать размер цикла от 1 до 60 минут?
Пока у меня цикл из 5 минут выглядит так :
Буду благодарен за помощь.
это уже ваш повторный пост.
мне так кажется. что народ просто не понимает о чем вы спрашиваете.
попробуйте перефразировать выделенные фразы
это уже ваш повторный пост.
мне так кажется. что народ просто не понимает о чем вы спрашиваете.
попробуйте перефразировать выделенные фразы
я думаю, что обнулятся должно в заголовке програмы. Так? Нащет другого я непонял
Добрый день, господа.
Все еще нужен ваш совет вот в таком вопросе:
Пишу советник, и столкнулся с проблемой. По ТС советник должен проводить вычисления каждую минуту на протяжении заданного количества минут. После чего, все данные должны обнуляться и расчеты должны проводится с начала.
И так цикл за циклом. Цикл времени задается от 1 до 60 минут. Подскажите как это описать правильно в коде? Как представленный ниже код сделать цикличным и с возможностью задавать размер цикла от 1 до 60 минут?
Пока у меня цикл из 5 минут выглядит так :
Буду благодарен за помощь.
Может изпользовать while место if?
Добрый день!
Вопрос в следующем. В индикаторе поставил переключение по историческим данным через
Я знаю можно сделать через буфферы ввиде линий, НО не хочу, т.к. буфферов только 8 ! Делал это с разбивкой на несколько индюков, но опять не устраивает по многим разным причинам....(:
ВОПРОС №1.
Как можно сделать shift истории через iBarShift .
Т.е. смысл в том, что я ставлю дату в глобальных переменных (например "02.06.2010 07:00"), а затем нажимая горячую клавишу (Cntrl+I) идет прибавление к iBarShift . И значения индикатора сдвигаются, т.е. тестируется))): визуально.
Так же ВОПРОС №2.
Как прописать в коде индекатора "горячую клавишу" (не МТ4 !!!!, а для кода индекатора, например, прибавить или убавить историю).
Через хуки, видимо, особенно если хотите переопределить контрол+I.
ВОПРОС №3
И где можно взять коды ASII для горячих клавишь???
Через хуки, видимо, особенно если хотите переопределить контрол+I.
Они Вам, скорее всего, не понадобятся, но коли очень нужно, то здесь.Спасибо! Весело...):
Примерчик бы с хуками))): дали бы))): индикатор или часть...
=========================== =================
А ГЛАВНЫЙ ВОПРОС был про
ВОПРОС №1.
Как можно сделать shift истории через iBarShift .
Т.е. смысл в том, что я ставлю дату в глобальных переменных (например "02.06.2010 07:00"), а затем нажимая горячую клавишу (Cntrl+I) идет прибавление к iBarShift . И значения индикатора сдвигаются, т.е. тестируется))): визуально. Понятное дело, что надо примитивно прибавлять к iBarShift или вычитать...
Вопрос МОЖНО или НЕТ так??
Двигать график влево-вправо можно переписывая содержимое ячеек индицируемого буфера в соседние. И никакой iBarShift для этого не нужен.
Может я и не въехал, что же нужно сделать, но:
Двигать график влево-вправо можно переписывая содержимое ячеек индицируемого буфера в соседние. И никакой iBarShift для этого не нужен.
Доброго времени суток. Вопрос следующего содержания. В книге по MQL4 С.К. в главе "Переменные GlobalVariables" в разделе "Свойства GV-переменных" сказано: "GV-переменная может иметь только тип double". Ниже в разделе "Функция GlobalVariableDel()" приведен пример эксперта globalvar.mq4 следующего содержания:
Вопрос: почему в данном примере глобальные переменные Expert и New_Expert имеют тип int, хотя, как указано ранее, эти переменные должны были бы иметь тип double?
Заранее благодарю за ответ
Приведение типов