Страница 4 из 5

Re: SuperTrend - трендовый индикатор, созданный на основе индикаторов ATR и CCI

Добавлено: 10 окт 2019, 11:10
State
evge, спасибо за внесенные дополнения! Буду тестить и оптимизировать. Пока гоняю один лот. Тут сложно найти баланс между % ТП и СЛ с необходимостью их выставления вообще, т.к. идея самого индикатора в ловле достаточно сильного тренда.
Пока нет возможности тестить ....погонял в голове алгоритм и возник один вопрос. При выставлении ТП/СЛ будет ли позиция закрываться, если поступил сигнал на разворот, но цена ходит внутри диапазона ТП/СЛ? Т.е. не достигла ни одного ни другого и поступил сигнал на разворот...

Re: SuperTrend - трендовый индикатор, созданный на основе индикаторов ATR и CCI

Добавлено: 10 окт 2019, 12:32
evge
будет закрытие и выставление заявки на открытие новой позиции в другую сторону.

т.е. уйдёт 2 заявки, закрытие по рынку и лимитная

Re: SuperTrend - трендовый индикатор, созданный на основе индикаторов ATR и CCI

Добавлено: 10 окт 2019, 14:49
State
Спасибо. Сейчас так и происходит при получении сигнала. Если руками закрываешь позицию до сигнала, то по сигналу выставляется 2 заявки в одном направлении.

А возможно ли в алгоритм внести изменения, чтобы он проверял наличие позиции при выставлении разворотных заявок? Если позиция закрылась по ТП/СЛ, чтобы выставлял одну, а не две.

Re: SuperTrend - трендовый индикатор, созданный на основе индикаторов ATR и CCI

Добавлено: 10 окт 2019, 19:23
evge
если позиции нет, то выставляется одна, а после того как стоп или тейк исполнены, позиции уже нет.

Re: SuperTrend - трендовый индикатор, созданный на основе индикаторов ATR и CCI

Добавлено: 14 окт 2019, 16:19
State
Вопрос. Может уже разбирали, но как может быть ситуация, что на часовом ТФ на одном и том же временном отрезке робот в тесте закрывает/открывает позицию в одной точке, а в реальном тесте на другой часовой свече?

Судя по всему в реальном времени робот работает с большим запозданием. То есть сигнал в тесте падает как раз на свечу, на которой произошла смена тренда, а в реале гораздо позже.

Re: SuperTrend - трендовый индикатор, созданный на основе индикаторов ATR и CCI

Добавлено: 14 окт 2019, 17:15
evge
В тестировании есть параметр исполнять сигнал "на открытии" (следующей свечи) или "на закрытии" (бар сигнала).
При "на открытии" отобразит на том же баре, где скорее всего и будет открыта позиция (если цена будет там) и не будет гэпа или лага.
Запаздывания там нет, в реальности будет отправлена заявка на "открытии следующего бара", на его первом тике OnUpdate() получит управление и отправит заявку.

Re: SuperTrend - трендовый индикатор, созданный на основе индикаторов ATR и CCI

Добавлено: 14 окт 2019, 17:27
State
В том то и дело, что получилось не так. Проверил в тесте оба варианта: на открытии и на закрытии, так вот в реальности сигнал не совпал ни с тем ни с другим. Скрины вот жаль не могу сделать....

Re: SuperTrend - трендовый индикатор, созданный на основе индикаторов ATR и CCI

Добавлено: 15 окт 2019, 20:30
State
Добавляю скриншоты проблемы. Первый скрин это из теста, где сигнал сработал нормально.

Screenshot_1.png


Второй скрин это из реальной торговли. Параметры одинаковые. ТФ Н1 на фортс.

Screenshot_2.png



Почему робот открывает позицию только на третьей свече? Понимаю что может быть опоздание и открытие на начале второй вместо конца первой...... Но на третьей?!!!

Re: SuperTrend - трендовый индикатор, созданный на основе индикаторов ATR и CCI

Добавлено: 16 окт 2019, 04:51
evge
Покажите код стратегии. Вы использовали код последних версий (вариантов) или первую? При тестировании установлено исполнять сигнал на открытии или на закрытии?

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

если и брать первый вариант, то его надо немного поправить изменить индекс бара в GetValue("U", 0) с 0 на 1 и тоже самое в GetValue("D", 0):

Код: Выделить всё

/**

Hash code 82E7948763EE510C8DF0B3C48F17727D
**/
function Initialize()
{
   StrategyName = "SuperTrend";
   AddParameter("PeriodATR", 5, "", 1);
   AddParameter("PeriodCCI", 50, "", 1);
   AddParameter("K", 1, "", 1);
   AddInput("Input1", Inputs.Candle, 60, true, "SBER=МБ ЦК");
   LongLimit = 4750;
   ShortLimit = -4750;
   AddChartIndicator("MY.SuperTrend", new Dictionary <string, string>{{"PeriodATR", "PeriodATR"},{"PeriodCCI", "PeriodCCI"},{"K", "K"}});
}

function OnUpdate()
{
   /// ПРАВИЛО 1
   if ( (MY.SuperTrend(Input1, PeriodATR, PeriodCCI, K).GetValue("U", 1) > 0) )
   {
      EnterLong();
   }

   /// ПРАВИЛО 2
   if ( (MY.SuperTrend(Input1, PeriodATR, PeriodCCI, K).GetValue("D", 1) > 0) )
   {
      EnterShort();
   }

}


И провести тестирование с исполнением "на открытии" и тогда картина будет совпадать с реальностью (но конечно не всегда, но на это другие причины: лаг во времени, проскальзывание).

По второй картинке видно, что сигнал наступил на бычьем баре, но исполнен на следующем и это логично, т.к. полностью сформированный бар мы увидим только при поступлении сигнала OnUpdate() следующего за ним бара. Но тестирование по умолчанию рисует сигнал именно на сигнальном баре. Меняем настройку тестирования исполнения "на открытии" и получаем более правильное отображение будущих сделок (сигналов) при тестировании:

enter-on-open-01.png
enter-on-open-01.png (28.27 КБ) 19224 просмотра

Re: SuperTrend - трендовый индикатор, созданный на основе индикаторов ATR и CCI

Добавлено: 16 окт 2019, 11:12
State
Спасибо за разъяснение, буду вечером тестировать этот код. На сколько помню, использовал стратегию более новой версии, но все же еще раз проверю всё.