Поиск пары чисел оптимально близких к заданному константному числу - страница 4

 
Dmitry Fedoseev:

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

Может быть не по трем точкам лучше, а два параметра: ширина канала и отклонение от центра. Вообще это типичная задача для методов нечеткой логики.


Спасибо, я подумаю над этим. На глаз, вроде как можно отобрать удовлетворительные результаты, но я хотел автоматизировать процесс, т.е. коэффициенты должны сами находится, видимо из выборки имеющихся дельт... надо думать.

 
STARIJ:

Возможно, Вам нужна та пара чисел, середина между которыми (среднее арифметическое, наиболее близка к заданному

Вычисления надо делать в EXCEL  или  на MQL ???


Предложенный Вами вариант не всегда будет верен, т.е. 0 и 5 не равнозначны 2,5 и 2,5 .

Делаю это для MQL - автоматическая настройка индикатора исходя из выбранных критериев.

 

Вероятно, решением будет та пара значений, для которой минимальным будет 

max (abs (ДельтаА); abs (ДельтаВ))

- наибольшее из отклонений от заданного уровня.

 
Vladimir:

Вероятно, решением будет та пара значений, для которой минимальным будет 

max (abs (ДельтаА); abs (ДельтаВ))

- наибольшее из отклонений от заданного уровня.


Прошу Вас показать на цифрах свою мысль, так понять не удается.

 
Aleksey Vyazmikin:

Спасибо, я подумаю над этим. На глаз, вроде как можно отобрать удовлетворительные результаты, но я хотел автоматизировать процесс, т.е. коэффициенты должны сами находится, видимо из выборки имеющихся дельт... надо думать.


Все равно будет коэффициент, который надо будет один раз подобрать вручную.

 
Aleksey Vyazmikin:

Прошу Вас показать на цифрах свою мысль, так понять не удается.

Так делайте буквально, то, что написано. У Вас уже подсчитаны ДельтаА и ДельтаB, берете от них абсолютные величины и большую из них записываете, например, в переменную X[i]. Для каждой пары. Затем из всех получившихся X[i] выбираете минимальное. В Вашу таблицу вручную вставил вместо СуммДельт эти значения X[i], которые и надо сравнивать:

ИндексABКонстантаДельтаАДельтаБСуммДельт
15,365,8050,360,800,8
24,925,4550,080,450,45  !!!
34,474,9850,530,020,53
44,054,5650,950,440,95
14,895,5350,110,530,53
24,325,0050,680,000,68
15,035,8050,030,800,8
24,455,2150,550,210,55
15,065,8850,060,880,88
24,425,3050,580,300,58
14,955,9250,050,920,92
24,325,3450,680,340,68
14,795,8450,210,840,84
24,245,2750,760,270,76
14,685,6850,320,680,68
24,115,1150,890,110,89
14,505,5050,500,500,5
14,885,8950,120,890,89
24,235,2950,770,290,77
14,525,6450,480,640,64
14,855,9850,150,980,98
24,245,3850,760,380,76
14,565,7350,440,730,73
14,265,4650,740,460,74
14,565,7150,440,710,71
24,045,1950,960,190,96
14,325,4650,680,460,68
14,605,7650,400,760,76

Лучшим по наибольшему из двух абсолютных отклонений от 5 оказался вариант

24,925,45

Вам уже предлагали складывать квадраты отклонений. Есть еще варианты, не только изложенный мной. Поищите в википедии что-нибудь вроде "нормы в пространствах" или "метрики". Например, гельдеровы (с квадратами отклонений предпоследний вариант, предложенный мной последний):


Ведь суть проблемы - задать понятие близости в двумерном пространстве. Как я понял, желательно, чтобы и ДельтаА и ДельтаB были как можно меньше. А сравнивать > < легко, если число одно. У Вас i меняется от 1 до 2, надо вводить правило сравнения между собой не чисел, а двумерных векторов.

   Отсюда и разнообразие. Можно еще разнообразить варианты, если ввести метрику со взвешиванием координат. Может быть, ДельтаА для Вас важнее, чем ДельтаB.

Еще один момент. Как я догадываюсь, для подсчета дельт использовались курсы Bid. Это хорошо, если Вы заранее знаете, что будете продавать. Если канал определяется для обоих направлений сделок сразу, то было бы точнее учесть средний спред. Его учет вполне может изменить дельты так, что лучше окажется пара с другим номером, не 2.

 
Dmitry Fedoseev:

Все равно будет коэффициент, который надо будет один раз подобрать вручную.


Допустим, сейчас у нас дельта укладывается в единицу, мы прикручиваем коэффициенты от 0,1 до 1, а как нам поступать, если дельта минимальная будет 5?

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

 
Vladimir:

Так делайте буквально, то, что написано. У Вас уже подсчитаны ДельтаА и ДельтаB, берете от них абсолютные величины и большую из них записываете, например, в переменную X[i]. Для каждой пары. Затем из всех получившихся X[i] выбираете минимальное. В Вашу таблицу вручную вставил вместо СуммДельт эти значения X[i], которые и надо сравнивать:

ИндексABКонстантаДельтаАДельтаБСуммДельт
15,365,8050,360,800,8
24,925,4550,080,450,45  !!!
34,474,9850,530,020,53
44,054,5650,950,440,95
14,895,5350,110,530,53
24,325,0050,680,000,68
15,035,8050,030,800,8
24,455,2150,550,210,55
15,065,8850,060,880,88
24,425,3050,580,300,58
14,955,9250,050,920,92
24,325,3450,680,340,68
14,795,8450,210,840,84
24,245,2750,760,270,76
14,685,6850,320,680,68
24,115,1150,890,110,89
14,505,5050,500,500,5
14,885,8950,120,890,89
24,235,2950,770,290,77
14,525,6450,480,640,64
14,855,9850,150,980,98
24,245,3850,760,380,76
14,565,7350,440,730,73
14,265,4650,740,460,74
14,565,7150,440,710,71
24,045,1950,960,190,96
14,325,4650,680,460,68
14,605,7650,400,760,76

Лучшим по наибольшему из двух абсолютных отклонений от 5 оказался вариант

24,925,45

Вам уже предлагали складывать квадраты отклонений. Есть еще варианты, не только изложенный мной. Поищите в википедии что-нибудь вроде "нормы в пространствах" или "метрики". Например, гельдеровы (с квадратами отклонений предпоследний вариант, предложенный мной последний):


Ведь суть проблемы - задать понятие близости в двумерном пространстве. Как я понял, желательно, чтобы и ДельтаА и ДельтаB были как можно меньше. А сравнивать > < легко, если число одно. У Вас i меняется от 1 до 2, надо вводить правило сравнения между собой не чисел, а двумерных векторов.

   Отсюда и разнообразие. Можно еще разнообразить варианты, если ввести метрику со взвешиванием координат. Может быть, ДельтаА для Вас важнее, чем ДельтаB.

Еще один момент. Как я догадываюсь, для подсчета дельт использовались курсы Bid. Это хорошо, если Вы заранее знаете, что будете продавать. Если канал определяется для обоих направлений сделок сразу, то было бы точнее учесть средний спред. Его учет вполне может изменить дельты так, что лучше окажется пара с другим номером, не 2.


Спасибо за развернутый ответ.

Предложенный Вами вариант ясен, в некоторой степени даже удобен.

Однако, я пока остановился на сложении дельт возведенных в квадрат.

Не совсем понял, про i - данная выборка отфильтрованная и не вся - диапазон разброса чисел от 0 до 100.

Меня тревожит другое, дадут ли разные варианты один и тот же результат...?

Про спред - я с Вами не соглашусь - мои наблюдения показывают, что важней определить точку (математические измерения) без учета спреда, а уже отложенный ордер выставлять с учетом спреда, т.е. нет смысла искусственно менять размер бара. Дело в том, что реальные спреды формируются участниками рынка, коими мы через кухни не становимся, а мы лишь получаем отрисовку свечей (информацию о реальных действиях крупных участников Форекс), которую в случае необходимости хэджируют спредом ДЦ.

 

А почему нельзя сделать через сортировку?

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

пс. для понятности можно засунуть это всё в массив структур и его сортировать.

 
Taras Slobodyanik:

А почему нельзя сделать через сортировку?

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

пс. для понятности можно засунуть это всё в массив структур и его сортировать.


Вроде никто не говорил, что нельзя.

Вопрос в первую очередь в том, по каким критериям сортировать.

И, не будет ли это более затратно по вычислительным ресурсам?

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