Здравствуйте, вопрос в следующем, если торговать руками, то я могу закрыть позицию в любой удобный для меня момент, т.е. даже тогда когда тиков нет. а вот lua почему то так не может, бывает мне нужно закрыться на close свечи, и тупо с 57 до 01 секунды вообще нет тиков, соответственно закрытие происходит на другой свече, подскажите как закрываться тогда когда мне нужно и не быть зависимым от тиков?
Пользователь
Сообщений: Регистрация: 27.01.2017
24.08.2023 11:32:50
Судя по всему Вы в алгоритме используете индекс, как факт прихода нового бара. А он увеличивается не по времени, а при совершении первой сделки в новом временном интервале. Поэтому новый бар может появится когда угодно, может даже не прийти вовсе, если сделок не будет.
Закрытие же бара - это цена последней сделки в временном интервале бара из таблицы обезличенных сделок. Можете отслеживать время сделки из ТОС, можете просто, при факте наступления нового интервала, принимать, что бар закрылся. Т.е. надо переходить на контроль времени, а не появления нового индекса бара.
Пользователь
Сообщений: Регистрация: 22.04.2019
24.08.2023 11:49:46
Цитата
Nikolay написал: Судя по всему Вы в алгоритме используете индекс, как факт прихода нового бара. А он увеличивается не по времени, а при совершении первой сделки в новом временном интервале. Поэтому новый бар может появится когда угодно, может даже не прийти вовсе, если сделок не будет.
Закрытие же бара - это цена последней сделки в временном интервале бара из таблицы обезличенных сделок. Можете отслеживать время сделки из ТОС, можете просто, при факте наступления нового интервала, принимать, что бар закрылся. Т.е. надо переходить на контроль времени, а не появления нового индекса бара.
о великий, прошу озарите меня как сие вообще реализовывается?
Пользователь
Сообщений: Регистрация: 25.09.2020
24.08.2023 12:04:34
Что за бред? Закрыть позицию в любой удобный для меня момент можно ТОЛЬКО по рыночной цене. В любом другом случае нужно найти того идиота, который станет "соучастником" сделки, и вовсе не факт, что такой идиот найдётся. И при чём тут вообще свечи?
Пользователь
Сообщений: Регистрация: 22.04.2019
24.08.2023 12:08:53
Цитата
Владимир написал: Что за бред? Закрыть позицию в любой удобный для меня момент можно ТОЛЬКО по рыночной цене. В любом другом случае нужно найти того идиота, который станет "соучастником" сделки, и вовсе не факт, что такой идиот найдётся. И при чём тут вообще свечи?
не, типо мне норм по рыночной цене, главное закрыться в нужное для меня время, а то сейчас приходится ждать долбаного тика...
Пользователь
Сообщений: Регистрация: 20.03.2023
24.08.2023 13:40:18
Цитата
Sergey написал: не, типо мне норм по рыночной цене, главное закрыться в нужное для меня время, а то сейчас приходится ждать долбаного тика...
Торгуете изнутри индикатора? Тогда в лучшем случае добавить на график область с price от наиболее ликвидного инструмента того же класса, тогда и на Вашем инструменте во второй области добавятся тики от того инструмента (с ценой nil). Конечно, о привязке к таблице текущих торгов можно забыть тогда, т.к. она будет заменять все инструменты на графике. Торгуете из скрипта? Тогда цикл у Вас всё равно есть, внутри него проверяйте os.sysdate(), учитываете разницу во времени и м.б. пинг до сервера, если надеетесь на миллисекундную точность.
Sergey написал: Здравствуйте, вопрос в следующем, если торговать руками, то я могу закрыть позицию в любой удобный для меня момент, т.е. даже тогда когда тиков нет. а вот lua почему то так не может, бывает мне нужно закрыться на close свечи, и тупо с 57 до 01 секунды вообще нет тиков, соответственно закрытие происходит на другой свече, подскажите как закрываться тогда когда мне нужно и не быть зависимым от тиков?
1) колбек onРaram(). 2) таймер и синхронизацию ПК от сервера времени.
Пользователь
Сообщений: Регистрация: 22.04.2019
24.08.2023 17:56:29
Цитата
nikolz написал: 1) колбек onРaram().2) таймер и синхронизацию ПК от сервера времени.
если не трудно, приведите пожалуйста код пример, спасибо
Пользователь
Сообщений: Регистрация: 22.04.2019
24.08.2023 19:56:28
вроде как сделал такой код, теперь нужно интегрировать его в мой код ^_^
Код
local is_run = true -- переменная, контролирующая выполнение основного цикла
function main()
while is_run do
local current_time = os.date("*t") -- получаем текущее время как таблицу
-- проверка, превысили ли секунды значение 58
if current_time.sec > 58 then
message("Секунды превысили значение 58!")
end
sleep(1000) -- пауза в 1 секунду
end
end
function OnStop()
is_run = false
end
написал: 1) колбек onРaram().2) таймер и синхронизацию ПК от сервера времени.
если не трудно, приведите пожалуйста код пример, спасибо
Код
function main()
local time;
while is_run do
if time>58 then
message("Секунды превысили значение 58!")
end
sleep(100)
time=string.sub(getInfoParam("SERVERTIME"),-2);
end
end
function OnStop()
is_run = false
end
Пользователь
Сообщений: Регистрация: 20.12.2020
25.08.2023 20:55:07
Цитата
Sergey написал: подскажите как закрываться тогда когда мне нужно и не быть зависимым от тиков?
Рыночной заявкой
Цитата
Sergey написал: бывает мне нужно закрыться на close свечи
Долбите по рынку в последние секунды/миллисекуны нужной свечи и ваша сделка, возможно, и станет CLOSE свечи )))
Пользователь
Сообщений: Регистрация: 25.09.2020
25.08.2023 21:57:45
BlaZed, Наоборот. Когда свеча закрывается, смотрим на LAST, это и будет CLOSE свечи.
Когда истекает её таймфрейм. Лично я с незакрытыми свечами вообще не работаю, а анализирую их именно в момент закрытия.
Вы что-то уже сами себе противоречите, то утверждаете что на все эти секунды миллисекунды болт забили, то вдруг анализируете свечи в определенный момент.Я вот тоже на незакрытые свечи внимания особого не обращаю, но ловить моменты закрытия.. нахрен надо. Анализируем все кроме последней (они по определению уже закрытые) и не страдаем ерундой.
Пользователь
Сообщений: Регистрация: 25.09.2020
27.08.2023 16:57:49
BlaZed, Не так в Вашей фразе то, что не надо ничего "долбить", нужно просто считать требуемое значение в нужный момент.
Я не противоречу себе ни в одной букве, на все эти секунды миллисекунды болт забил, и анализирую свечи в определенный момент. Для этого "ловить моменты закрытия" вовсе не нужно, это получается автоматически. И свечей у меня три штуки на таймфрейм: одна открытая и две закрытые. Анализируем тогда, когда свечной (10-секундный) обработчик получает управление и не страдаем ерундой.