Необходимо вмешательство специалиста

 

Здравствуйте!

Обращаюсь к специалистам написания торговых систем.

Необходимо закодировать следующее действие для торгового советника:


Если предыдущий бар закрылся выше максимума предпредыдущего бара (if Close[1]-High[2]>0) то ему присваивается (допустим) код "А", далее =>

если с формированием нового бара (подряд или через некоторое время) опять происходит то же событие (if Close[1]-High[2]>0), то ему присваевается код "А", а бару ранее бывшему под кодом "А", присваевается код "Б".

т.е с каждым новым выполнением условия, ранее выполненое сдвигается на -1 (шаг) назад. итак до 6-го цикла включительно,


Причем данные HLOC этих баров должны быть на глобальном уровне. И при первой загрузке терминала советник не должен ждать формирования последовательности N событий, а должен проверять историю назад и вносить данные HLOC на глобальный уровень.

(if условие == true then BAR="A" => if условие == true then BAR="A" && BAR ранее бывший "A" становится "B" => if условие == true then BAR="A" && BAR ранее бывший "A" становится "B" &&

BAR ранее бывший "B" становится "С" и так далее).


P.S.

Я не программист, хотя для реализации своих идей пришлось выучить язык MQL. Однако, для написание сложных закономерностей не хватает опыта, я понимаю что здесь должны использоваться массивы, но от этого не легче. :)

Если информации недостаточно, готов ее дополнить. Код прошу выложить сюда же, думаю многим пригодится данная закономерность.




 

таких сложностей не надо. думайте проще.

пусть эксперт проходит от текущего бара в глубь истории и ищет вашу закономерность N раз. И ни надо никакого ввода массивов и переприсвоения А Б В Г Д

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

Внесу еще небольшое дополнение.

Условие (if Close[1]-High[2]>0) я взял для простоты понимая, данным условием может выступать совершено любое другое, однако важно то, что при появлении этого условия, оно становится доступным всему советнику для анализа, причем оно (данное условие) не одно, а встречалось еще и еще N-ое количество раз, без указания отрезка времени.


простой пример: если допустим известно что текущий бид > чем скажем 50% открытий N баров глобального уровня, то Buy. (это утрированный пример)

 
konovalov писал(а) >>

Здравствуйте!

Обращаюсь к специалистам написания торговых систем.

Необходимо закодировать следующее действие для торгового советника:

Если предыдущий бар закрылся выше максимума предпредыдущего бара (if Close[1]-High[2]>0) то ему присваивается (допустим) код "А", далее =>

если с формированием нового бара (подряд или через некоторое время) опять происходит то же событие (if Close[1]-High[2]>0), то ему присваевается код "А", а бару ранее бывшему под кодом "А", присваевается код "Б".

т.е с каждым новым выполнением условия, ранее выполненое сдвигается на -1 (шаг) назад. итак до 6-го цикла включительно,

Причем данные HLOC этих баров должны быть на глобальном уровне. И при первой загрузке терминала советник не должен ждать формирования последовательности N событий, а должен проверять историю назад и вносить данные HLOC на глобальный уровень.

(if условие == true then BAR="A" => if условие == true then BAR="A" && BAR ранее бывший "A" становится "B" => if условие == true then BAR="A" && BAR ранее бывший "A" становится "B" &&

BAR ранее бывший "B" становится "С" и так далее).

P.S.

Я не программист, хотя для реализации своих идей пришлось выучить язык MQL. Однако, для написание сложных закономерностей не хватает опыта, я понимаю что здесь должны использоваться массивы, но от этого не легче. :)

Если информации недостаточно, готов ее дополнить. Код прошу выложить сюда же, думаю многим пригодится данная закономерность.

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

 
Integer писал(а) >>

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

Спасибо.

Логику я вроде бы понял, но если честно, совершенно не пойму каким образом можно реализовать это программно. В моем понимании при данном раскладе будет всего два значения, текущее - которое мы тянем за собой, и сохраненное в буфере. Как в данном случае, например, сравнить значение В и Д бара (ЕДГВБА), на которых выполнились условия? :(

а если сравнить надо много параметров перекрестным методом? вообще запутался :)

 
konovalov >>:
Integer писал(а) >>

Спасибо.

Логику я вроде бы понял, но если честно, совершенно не пойму каким образом можно реализовать это программно. В моем понимании при данном раскладе будет всего два значения, текущее - которое мы тянем за собой, и сохраненное в буфере. Как в данном случае, например, сравнить значение В и Д бара (ЕДГВБА), на которых выполнились условия? :(

а если сравнить надо много параметров перекрестным методом? вообще запутался :)





по аналогии как вы фракталы ищете, так и у вас будут бары, для который стоит (точечка) над ним. 

отсчитали справа налево нужный номер точечки, и получили информацию для этого бара.

 
sergeev >>:


по аналогии как вы фракталы ищете, так и у вас будут бары, для который стоит (точечка) над ним.

отсчитали справа налево нужный номер точечки, и получили информацию для этого бара.

Спасибо.

Буду пытаться чего-то программировать:)

 
konovalov >>:

Спасибо.

Буду пытаться чего-то программировать:)




начните с индикатора, который ставит символ на баром
 
sergeev >>:


начните с индикатора, который ставит символ на баром

Индикатор есть уже готовый, и есть даже 2 свободных буфера, но если честно, всеравно не пойму сходу как это оформить. Надо разбираться.

Спасибо за помощь.

 

Уважаемые господа, еще раз прошу уделить немного внимания моему вопросу.

Ниже прикреплен индикатор, если не затруднит, вставьте этот буфер с логикой.

Файлы:
qaqmeyajd.mq4  8 kb
Причина обращения: