Блог им. frontrunner

вопрос по tslab

всем привет.

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


потом переделал на статичное количественное значение стопа и тейка.
вопрос по tslab

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

спасибо.




★1
41 комментарий
У формул знаки поменять =)). При покупке у вас тейк должен быть = цена входа + константа

ps. Прошу прощение, у вас там похоже шорт.
avatar
Андрей К, да, со знаками там все нормально. это тоже было первое о чем я подумал)
avatar
У Вас не вся схема.
Такое бывает когда Вы в порядковом номере UV_up, shortline серии(массив) в Логич Формуле ввели значение которое возвращает double вместо int.
Попробуйте преобразовать в int явно: (int).
Посмотрите мануал — какое значение возвращает.
По второму вопросу — тоже сложно выкручиваться, надо условия придумывать — не «больше», а например, пересечение через логич формулу.
У меня опыт скромный, впрочем.
avatar
baron_samedi, ну там проблема ведь скорее с выходами. во второй ситуации — скрины с тем же алгоритмом, только выходы иначе реализованы. значит со входами проблем нет и с переменными UV_up и shortline 
avatar
frontrunner, 
Здесь не содержание — а форма, т к будет делаться не то что Вы желаете, а то что Вы и автор  ТСлаба написали.
Простой алгоритм не так просто закодить, в этом дело.
Появится куча хрени из-за таких «мелочей».
avatar
baron_samedi, ну не может же появляться проблема со входом только изза того, что я изменил условия выхода. или я ошибаюсь?
avatar
frontrunner, 
в логах ошибок — несовместимоть типов int  и double — посмотрите, я примерно сказал, где встречается. У Вас же не вся схема, а точно сказать по логам в каком месте — нельзя (или просто я не знаю как).
Ну и участок кода у Вас выход для шорта видимо, а на графике — у Вас стоплоссы по лонгам (кстати кубики лучше обозначать чтобы ясно было где лонг, а где шорт, я у Вас не понял систему названий) .
Извините, чем могу пытаюсь помочь.

avatar
baron_samedi, про пересечение не совсем понял, если честно
avatar
А цена входа правильное число дает?  Киньте ее как индикатор на график. Судя по первой ошибке и второй, что то где то с ценами проблема.
Так же я бы кинул как индикатор и формулы тейка и стопа. Будет ли правильно отображать значения? Надо отлавливать ошибку, вывод чисел в индюк — один из способов.
avatar
Андрей К, проблема была в начальном значении формулы. бросить на график помогло найти проблему, спасибо)
avatar
frontrunner, молодцом, поздравляю.
avatar
смотри болк закрытие позиции по тейкпрофиту… у тя 2ой вход блока не подключен
avatar
ves2010, это не влияет. аналогично в другом алгоритме реализовано и все работает
avatar
Если сработала продажа, например по 90000, то на следующей свече TsLab выставит 2 лимитки на покупку (так как у тебя нет условий когда их выставлять. Это второй вход в блоках Take и Stop)
А если при продаже (90000) сразу выставить лимитку на покупку по 90500 (это твой стоп), то она сразу исполнится по рынку.
avatar
PavelS, разве стоп и тейк лимитом ставится?
avatar
frontrunner, Да, лимитом. В принципе других заявок и не бывает, «По рынку» это лимит с максимально или минимально возможной ценой. Стоп это лимитка с условием когда ее ставить, Тейк это вообще обычная лимитка.
avatar
В первом варианте нельзя делать например так max[i-1-time_long], так как индекс свечи имеет значение типа int, а результат расчета блоков (в данном случае блок «Удерживалось баров») имеет значение типа double
avatar
PavelS, почему удерживалось баров определяется как double? разве это может быть не целое число? и как можно по другому в таком случае реализовать этот момент? смысл в том, чтобы стоп ставить за хай свечи на которой был вход в шорт и наоборот
avatar
frontrunner, 
Если вход только один то можно сделать так. В блоке SaveMax будет сохраняться значение max на момент открытия позиции Short. 
avatar
frontrunner, Соответственно для покупок нужно использовать «Есть активная длинная поз.» и поменять что сохранять, не мах, а что то другое, min например

А если входов будет много, то так не прокатит, нужно будет немного модифицировать
avatar
!HaveSell — что значит восклицательный знак?
т.е. потом эту формулу надо подключить к цене стопа, правильно понимаю?
avatar
frontrunner, Формула SaveMax это твой max[i-1-time_long]. Выведи на график, посмотри, должна сохранять твой мах
avatar
frontrunner, восклицательный знак это отрицание на языке С#. Тоесть если на текущей свече есть позиция, а на предыдущей нет, то сохраняем значение МАХ
avatar
PavelS, правильная реализация?

avatar
frontrunner, Нет. Так должен закрывать на следующей свече после открытия. 
avatar
PavelS, тогда я не очень понимаю, что получается на выходе из формулы savemax
avatar
frontrunner, И к блоку SaveMax нужно подключить блок max, а то может ошибку давать о том что не подключен… Или не ругался?
avatar
frontrunner, Ну может я ошибаюсь со стопом, проверить негде, запусти, может все заработает
avatar
PavelS, да, позже заметил эту ошибку. подключил. все вроде работает. эквити гладкая, правда в красной зоне)
avatar
PavelS, он стоп почему то ставит за хай свечи следующей после входа, вот что меня смущает
avatar
frontrunner, Цена не та или что? Вообще тслаб начинает ставить стопы и тд только со сдед свечи после открытия. Если нужно внутри свечи работать, то нужно тики задействовать
avatar
PavelS, Если принципиально хочешь использовать блок stop-loss, то на второй вход этого самого stop-loss подключи «логическую формулу» и напиши в ней например «Закрытие» (цена закрытия предыдущей свечи) >= stop_short. Но не всегда будет срабатывать на тестах. Для теста если по простому, то через блок «закрытие по рынку»
avatar
PavelS, не уверен, что меня устроит выход из позы в случае закрытия выше уровня стопа. закрытие на 10 и на 1000 пунктов выше уровня стопа. зачем на себя такой риск брать?
avatar
frontrunner, на реальных торгах такого не будет, нужно только проскальзование выставить. и закрытие брать без [-1], тогда он будет по текущей цене смотреть
avatar
PavelS, .
avatar
в первом входе вот маленькая красная полоска это стоп. -100 пунктов от лоу свечи, на которой был вход. а по условиям там [-1] указано, чтобы он стоп ставил под лоу свечи на которой был сигнал. во втором случае вообще непонятная хрень, просто взял и закрылся на следующей свече.

а где кстати можно достать корректные тиковые данные?


avatar
frontrunner, поставь [-2]. По второй сделке не понятно, выведи цены стопа и все что еще участвует на график, думаю увидишь в чем проблема.

Корректные не знаю, с финама надо править моменты смены контрактов. С фтп биржи вроде таже фигня
avatar
PavelS, а что вообще значит знак деления в формуле HaveLong && !HaveLong[-1]? min[-1]: SaveMin [-1]
avatar
frontrunner, 
Стратегия примерно по твоему принципу. Через MAX и MIN минутных свечей.

Это не деление, это «Иначе». Если условие которое до знака "?"
истино, то берется то что до знака ":", если ложно, то берется то что после
avatar
PavelS, в общем ошибка была в значении. сначала сделал для шортов, там стоп выше максимума. поэтому знак плюс. скопировал кубик для лонга а знак забыл поменять. теперь вроде все работает. спасибо огромное за все объяснения)
avatar
PavelS, моя система пока не самые лучшие результаты показывает)
avatar

теги блога Igor Grabucha

....все тэги



UPDONW
Новый дизайн