Igor Grabucha
Igor Grabucha личный блог
27 августа 2016, 13:45

вопрос по tslab

всем привет.

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


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

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

спасибо.




41 Комментарий
  • Андрей К
    27 августа 2016, 14:09
    У формул знаки поменять =)). При покупке у вас тейк должен быть = цена входа + константа

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

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

        А если входов будет много, то так не прокатит, нужно будет немного модифицировать
    • PavelS
      30 августа 2016, 21:21
      frontrunner, Формула SaveMax это твой max[i-1-time_long]. Выведи на график, посмотри, должна сохранять твой мах
    • PavelS
      30 августа 2016, 21:23
      frontrunner, восклицательный знак это отрицание на языке С#. Тоесть если на текущей свече есть позиция, а на предыдущей нет, то сохраняем значение МАХ
        • PavelS
          30 августа 2016, 22:17
          frontrunner, Нет. Так должен закрывать на следующей свече после открытия. 
            • PavelS
              30 августа 2016, 22:25
              frontrunner, И к блоку SaveMax нужно подключить блок max, а то может ошибку давать о том что не подключен… Или не ругался?
            • PavelS
              30 августа 2016, 22:28
              frontrunner, Ну может я ошибаюсь со стопом, проверить негде, запусти, может все заработает
                • PavelS
                  30 августа 2016, 23:22
                  frontrunner, Цена не та или что? Вообще тслаб начинает ставить стопы и тд только со сдед свечи после открытия. Если нужно внутри свечи работать, то нужно тики задействовать
  • PavelS
    30 августа 2016, 22:23
    PavelS, Если принципиально хочешь использовать блок stop-loss, то на второй вход этого самого stop-loss подключи «логическую формулу» и напиши в ней например «Закрытие» (цена закрытия предыдущей свечи) >= stop_short. Но не всегда будет срабатывать на тестах. Для теста если по простому, то через блок «закрытие по рынку»
      • PavelS
        31 августа 2016, 11:26
        frontrunner, на реальных торгах такого не будет, нужно только проскальзование выставить. и закрытие брать без [-1], тогда он будет по текущей цене смотреть
    • PavelS
      31 августа 2016, 11:50
      frontrunner, поставь [-2]. По второй сделке не понятно, выведи цены стопа и все что еще участвует на график, думаю увидишь в чем проблема.

      Корректные не знаю, с финама надо править моменты смены контрактов. С фтп биржи вроде таже фигня
        • PavelS
          31 августа 2016, 12:03
          frontrunner, 
          Стратегия примерно по твоему принципу. Через MAX и MIN минутных свечей.

          Это не деление, это «Иначе». Если условие которое до знака "?"
          истино, то берется то что до знака ":", если ложно, то берется то что после

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн