Скажите, а Квик без проблем работает с откомпилированным lua? И если возможность защиты от декомпиляции, а то я смотрю вместе с компелятором ставят в набор декомпилятор. :)
Если считаете наш выбор одного из способов не правильным, выберете свой и реализуйте его на LUA
p.s. так проблема в этом и есть что вашего способа реализации тоже нет, в википедии не написано где возведение в целое требуется, а где нет - если использовать LUA, я в принципе понял - если в формуле есть что то типа 100*.. нужно в Луа болты крутить.
Ладно ну его в баню, там может быть косяк с чем угодно связан, учитывая что Луа с заплатками работает - там в сотые могут все сбить. Потом сяду сравню расчёт и ADX в ТА с самых основ и там уже найду в чём проблема.
Иду на http://www.dinosaurtech.com/2007/average-directional-movement-index-adx-formula-in-c-2/ и смотрю код, и честно не вижу в алгоритме что бы был использован ATR - да он там есть как пример, но он не используется в коде, вы на код смотрите, в википедии тоже фигня может быть понаписана в формулах (кто их проверяет) - по результату сравнивайте, 2 + 2 = 4, но не как не 5 потому что там 2 + 2 !!!
Книгу деда Welles Wilder-а просмотрите, не где ATR нет, есть TR. И в целом зачем воду в сите тоскать, запустили индикатор - открыли ТА и сравниваем, если не подходят не к одному, значит не то, мы же не новую сверхновую выдумываем - нам нужно идентичный результат получить.
The distance from today's high to today's low. The distance from yesterday's close to today's high. The distance from yesterday's close to today's low.
The +DI is then smoothed over the period specified, the same way as a simple moving average, and +DM is calculated as follows:
For up trending days, +DM = today's high - yesterday's high
For down trending days, +DM = zero
For inside days, +DM = zero
For outside days, if today's high - yesterday's high, is greater than yesterday's low- today's low, then +DM = today's high - yesterday's high, otherwise +DM = zero
For upwards gap days, +DM = today's high - yesterday's high
Там разница слишком большая и видна не вооружённым глазом даже дивергенция. Индекс или котировки акции - все разно боком показывают.
Поэтому большая просьба, кто нибудь, сбросьте на Lua или Qpile - реализацию ADX в Квике, хотя бы методом тыка определить в чем фишка.
p.s. вариант c# я написал сам (там проблема с присобачиванием сглаживания), на форуме того же мнения:
Цитата
Тут, вероятно, все дело в сглаживании, которое якобы должно быть от Уайлдерса. Там ведь Rosh что-то выложил, проверьте.
если вы с c# взяли как пример для выше приведённого кода то у вас он получился не так в том коде. А пример я просил именно Квиковский, что бы подкрутить сглаживание как надо, вот собственно и всё. Задача у меня простая что бы wealt-lab вариант со сглаживанием Уайлдерса выводила и всё.
Этот код немного отличается о того что я сделал, в преобразовании в целое round - упоминаний об этом не встречал не где.
А что касается, проблем с отличием, в том же форуме - парни пишут о том что в одном из ТА применяется сглаживание по дедушки Виллиямса. По многомерной формуле ( (AdmMinus[index-1] + ((period-1)/period)) + (DeltaHigh + (1/period)) ) сгладить у меня не получилось, не знаю почему, счас попробую WMA линейно применить.
Все должно работать тютелька в тютельку, если что то не работает, значит где то не допилили - если не долинно, а так можно и пальцами в небо тыкать - будет такой же результат.
Так по поводу формулы (первой и с учётом WMA) - в чём там там косяк правильно ли я рассчитал, потому что короткий вариант и WMA - пустая выводится.
Я уже достаточно стар что бы верить в светлое будущее, я думаю проблему нужно решить не зависимо от верыисповедывания.
Я говорю о конкретной проблеме, которая есть в вашем продукте, отображаемый индикатор ADX показывать не корректные данные, сомневаюсь что там округление виновато, так как отличаются они не сотыми и на вашем индикаторе можно наблюдать длительный рос, в отличии от других где идёт длительное падение, в целом единственное что ваш ADX связывает с остальными - это то что он колеблется в приделах 0 - 100
К сожалению уже нет, все было удалено безвозвратно.
В наше время это сложно сделать.
Вроде все серьёзные дяди, а ребячитесь на эмоциях забывая о том чем мы здесь занимаемся ...
Проблема в том что ваш ADX отличается от всех остальных ADX используемых в ТА и его нужно подправить и я не могу понять где. Если у вас есть идея, скиньте через личку, я самостоятельно проработаю эту проблему.
Sergey Gorokhov - а есть ADX в LUA? а то я запарился с ним, не как не могу его к стандарту Wealth-lab или Финама подогнать, то ли формулы разные то ли сделаны не так.
з.ы. вообще если честно, поставьте в форуме голосование - какие индикаторы нужно реализовывать, а какие нет. А так реализация в скриптах она хороша, просто что бы не пиать постоянно то что уже есть, а за инклидить и вставил в скрипт нужного индюка. Я же говорил с.м. архитектуру ТА, зачем велосипед заново изобретать.
Последняя версия, на Опене, время от времени исчезает часть свечей - вот к примеру на индексе РТС на часовике исчезли свечи за 2 число, а на H4 вообще с 15.05. За два месяца второй раз такая фигня.
закрытие, открытие - есть, добавьте ещё туда и все индикаторы размещённые на графике, если там есть закрытие, открытие, максимум, минимум, объем и EMA(14), то у пусть спрашивает к чему применить новый индикатор.
Да 200 индикаторов здесь не причём, когда вы ставите какой либо дополнительный индикатор на график, пусть вместе с параметрами спрашивает к какому индикатору (уже размещенного на графике) или к какой цене (открытие, закрытие, максимум, минимум) привязать его. Т.е. который уже на графике присутствует.
Такому пожеланию нет, так как нет возможности автоматически определить к какому именно индикатору должен быть привязан другой индикатор. Представьте что на графике у Вас 200 разных индикаторов привязанных к цене и Вы хотите добавить еще один привязанный к одному из этих 200 индикаторов, как по Вашему программа должна определить автоматически к какому именно?
Меню тоже! Ну, а как во всех ТА это делают? Просто поставьте функцию, применить к чему, к закрытию, открытию, EMA который уже есть на графике и зачем применять к 200 индикатором, просто создаём индикатор и у указываем применить к чему (то что уже там стоит) на графике?
Цитата
Эту часть предложения не не понял, поясните.
Если говорить о цене, то к примеру максимальный максимум за пять свечей или минимум за 10 свечей и т.д.
Да, зарегистрируйте пожалуйста. Хотя бы что бы была возможность делать по функционалу как стандартные индикаторы, ЕМА применить к другому ЕМА или другому индикатору.
И ещё если возможно зарегистрируйте пожелание, что бы в стандартных индикаторах был чистый ADX (без всяких сглаживаний) и два самых распространённых индикатора, Нахождение High и Low за N период, там есть каналы - но толку от них ...
Мне нужна структура, в "Создание индикаторов технического анализа с помощью скриптов Lua" есть пример, но запутанный очень. Вот как выдающее мену в настройках поставить, для выбора одного и вариантов, как сделать так что бы индикатор анализировал данные на графики на которые мы его перенесём, я имею введу не цену к примеру, а обработать другой индикатор.
Сергей, я ещё раз повторяю: на одних неправильно из-за пропуска данных к примеру ATR, а на других к примеру на ADX - вообще не соответствует формуле ADX сравните с любым ADX в любом ТА и они все идентичны кроме Квика.
local moneyt = getMoney(account, row['firmid'], row['tag'], row['currcode'])
if moneyt.money_limit_available==nil then
return 0
else
return tonumber(moneyt.money_limit_available), tonumber(moneyt.money_current_limit-moneyt.money_limit_available) --money_current_limit возвращает 0
end
Доступных денег, возвращает нормально - значит счет находит.
Через getMoney получаю инфу по деньгам на моексе, через money_limit_available узнаю сколько доступно средств. Что бы понять сколько денег используются, запрашиваю money_current_limit - money_limit_available, но money_current_limit всегда возвращается 0 хотя в таблице указанно, текущих средст 100000. Так все таки, где можно получить инфу сколько использовано средств, или сколько всего с оценкой?
Индикаторы не стабильно отражаются, ну вот к примеру ATR(24) на индексе РТС в среднем от оригинала разброс 0.45 составляет, может пото му что цены корявые, но всё же проверьте.
message(tostring(math.floor(67.99/0.01)))Кстати а почему, это расхождение вообще появляется? 1+1 должно быть 2, а не вовсе 2.5 . Я теперь понял почему у меня некоторые счёты с погрешностью выходят, если с тысячными работают.