[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 586

 

Что означает это изречение на простом языке? 

"Эта функция возвращает цену открытия ближайшей позиций"

 
Equilibrium:
Usual_Trader:


Навскидку, что вижу, в функции закрытия ордеров нужно выбрать ордер по тикету OrderSelect(Ticket, SELECT_BY_TICKET), количество лотов указать не переменной Lts, она ведь каждый раз пересчитывается, а использовать OrderLots() И еще одно- вы продолжаете работать на 0-м баре, соответственно, критерии наодном баре могут появляться пропадать, ваши ордера могут открываться не там, где хотелось бы. Замените в параметрах индикатора бар 0 на 1, 1 на 2 


 


Огромное спасибо за ответ), но вот критерии снова работают не так как нужно, на скрине это видно (не по всем пересечениям стохастика работают ордера( ), и хотел бы все таки работать на  0 баре, но для этого как я понял нужно доп. условие: после открытия ордера на текущем баре, ничего не делать пока бар не закроется, но как это реализовать не знаю (может через масивы таймсерий???) Подскажите пож.
Прикрепленные файлы:
  qccltotmvrgqnuccd.mq4 (13.66 KB)

Объявите переменную типа datetime, присвойте ей значение  Time[0], после открытия ордера, потом если она не равна Time[0 , можно открывать следующий ордер, если равна --выход из старт.  Что касается критериев,код я не смотрел, но, видимо, если это стохастик, то срабатывать должен при пересечении в районе перекупленности--перепроданности(обычно >80 и<20 %).  Для наглядности поставье уровни 20 и80 % в настройках стохастика.
 
qwanya:

Что означает это изречение на простом языке? 

"Эта функция возвращает цену открытия ближайшей позиций"


Смотря какая функция. Или последней открытой, или цена открытия которой ближе всего к текущей цене. Тут просто не сказано, по какой оси ближайшей, по времени или по цене. Если эта функция используется в программе по управлению торговлей с помощью мышки, то точно по цене. 
 
rigonich:


Это не функции, а способ сравнения ненормализованных чисел. их нельзя сравнивать друг с другом, но можно результат вычитания одного из другого сравнивать с нулем.

А проверка у меня такая:

 


и это условие не помогает..
 
rigonich:

Он у вас будет искать индекс бара с максимальной ценой в последних 9 барах,  при условии что вы запустите программу в 10 часов. Hour() -- это время запуска программы (серверное).

P.S. Точнее не индекс, а максимальную цену (High) этого бара.

Спасибо за помощь, в определении макс и мин цены закрытия бара, но честно говоря я не могу его вставить в основной код советника делал разные варианты и всегда получаеться какая то ерунда, может посмотрите что у меня не так. суть раюоты советника проста: за определенное время (01.00 до 10.00)определяем максимальную и минимальную цену  и выставляем отложки.
Файлы:
wfweja10.mq4  10 kb
 
Ekburg:

и это условие не помогает..

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

Всем привет!

Разбираю пример из учебника . Не могу понять какую ф-цию выполняет следующее условие:

ObjectSet(His_Name,OBJPROP_RAY,  false);  

 Сам код прикрепил. Советник  раскрашивает последние n баров.

 Помогите пожалуйста разобраться.

Файлы:
strings.mq4  7 kb
 
rigonich:


Любая функция, вызываемая программой, возвращает в программу результаты своей работы в виде значений каких то переменных, которые она во время работы изменяет. void,int,bool, которые стоят в строке перед инициализируемой функцией указывают тип переменной, значение которой функция возвращает программе, чтобы та с ними дальше работала.  void  указывает, что функция не возвращает никаких значений(если результатом работы функции является, например, закрытие или открытие ордеров,или изменение значений глобальных переменных , которые не надо возвращать, так как они и так доступны(видны)из любой части программы).

А насчет  ДРУГИМ языком, так есть английская версия форума. Просто язык -- это определенный набор правил и в определенном я зыке есть общепринятые названия для предметов и явлений. если вы использукте не общепринятые названия, а те, которые вам больше нравятся, вас просто не поймут.   


кажется понял :)) спасибо :))
 
Sergstuddek:
Спасибо за помощь, в определении макс и мин цены закрытия бара, но честно говоря я не могу его вставить в основной код советника делал разные варианты и всегда получаеться какая то ерунда, может посмотрите что у меня не так. суть раюоты советника проста: за определенное время (01.00 до 10.00)определяем максимальную и минимальную цену  и выставляем отложки


Код ваш посмотрел,и прямо не знаю что сказать. Как говорил выше  TarasBY  проще сказать, что в нем правильно:

 

1.Как я вам уже говорил выше -- функции Seconds(),Minute(),Hour(), возвращают серверное время старта программы, и при таком условии if (Hour()==10), ваша функция работать не будет, если вы запустили свой эксперт не в 10 часов. У вас такие условия сплошь и рядом. Внимательнее читайте описание функций в справке.

2.if (TIMECLOSEHIGH19>TIMEOPENLOW19) и if (TIMECLOSELOW19<TIMEOPENHIGH19) -- это условия, которые будут выполняться всегда.

3.Не пишите по 3 --4 практически одинаковых функции в одной программе, делайте одну функцию, и при вызове передавайте в нее нужные параметры. это не ошибка, но делает код программы громоздким и трудночитаемым.

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

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

 
Pacman:

Всем привет!

Разбираю пример из учебника . Не могу понять какую ф-цию выполняет следующее условие:

 Сам код прикрепил. Советник  раскрашивает последние n баров.

 Помогите пожалуйста разобраться.


double ObjectGet( string name, int prop_id)
Функция возвращает значение указанного свойства объекта. Для получения информации об ошибке необходимо вызвать функцию GetLastError().
См. также ObjectSet().
Параметры:
name - Имя объекта.
prop_id - Идентификатор свойства объекта. Может быть любым из значений списка свойств объекта.
Причина обращения: