Автор |
Сообщение |
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
Открыт график, в нем 2 чарта одной и той же бумаги. В одной части графика - коды сигналов на шорт и лонг + стрелками показывает сигналы (работает как сканер входов).
Во второй части графика код ТС + стрелками показаны входы лонг и шорт, но если открыт лонг, то следующие сигналы на вход не рисует, а стрелочками показывает где сработал стоп или тейкпрофит (аналогично для шорта).
Суть проблемы в следующем. Часть стрелок со входами на графике, где ТС, не рисуется.
Когда появляется сигнал в лонг и ТС берет позицию, сигналы на шорт отображаются, а вот когда ТС берет сигнал в шорт то сигналы на лонг то рисуются, то нет.
код выглядит следующим образом (взят из тестера)
_SECTION_BEGIN("Short");
SetPositionSize(1,4);
SetTradeDelays( 0, 0, 1, 0 ); //Задержка торгов-Short на следующей свече, после сигнала.
SetOption("InitialEquity", 3000000); //Начальный депозит 30 000 р.
SetOption("AllowSameBarExit", True);//Запрет выхода на баре входа
SetOption("ActivateStopsImmediately", True);//Немедленная активация стопов
SetOption("AllowPositionShrinking", False);//разрешить открывать позицию размером меньше заданного (при недостатке средств)
SetOption("FuturesMode", True);
Short = вход ТС
Cover=0;
ApplyStop - стоп лосс
ApplyStop - тейк профит
Equity(1,0);
PlotShapes(Short*shapeDownArrow, colorDarkRed, 0, High); //Ставить стрелку над сигналом
PlotShapes(Cover*shapeHollowUpArrow, colorGreen, 0, Low);
_SECTION_END();
_SECTION_BEGIN("Long");
SetPositionSize(1,4);
SetTradeDelays( 1, 0, 0, 0 );//Задержка торгов-Лонг на следующей свече, после сигнала.
SetOption("InitialEquity", 3000000);
SetOption("AllowSameBarExit", True); //Запрет выхода на баре входа
SetOption("ActivateStopsImmediately", True);//Немедленная активация стопов
SetOption("AllowPositionShrinking", False);
SetOption("FuturesMode", True);
Buy= вход ТС
Sell=0;
ApplyStop - стоп лосс
ApplyStop - тейк профит
Equity(1,0);
PlotShapes(Buy*shapeUpArrow, colorGreen, 0, Low); //Рисовать стрелку под сигналом
PlotShapes(Sell*shapeDownArrow, colorRed, 0, High); //
_SECTION_END();
Кто подскажет, что тут надобно убрать/добавить/поменять что бы контртрендовые сигналы корректно отображались? Возможно ли это в данной конструкции или надо в отдельном окне каждую ТС отображать? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не вьехал. У тебя на картинке 2 графика. Какой код на верхнем и какой на нижнем? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
нижний график - сканер входов
там всё просто и ничего менять не надо - работает. приведен для примера что сигнал на вход есть.
Верхний график - Торговая система Робот.
Состоит из двух частей
_SECTION_BEGIN("Short");
///код выше///
_SECTION_END();
_SECTION_BEGIN("Long");
///код выше///
_SECTION_END();
Грубо говоря, на верхней части графика, дважды присутствует Equity, и для шорта работает через раз.
синей точкой указан пропущенный сигнал. на сканере вход в лонг есть, а на роботе он пропущен. Если шортовый кусок и лонговый поменять местами, то на отрезке 18:00 до 20:00 пропадут 2 шортовых сигнала.
Нужно что бы робот не пропускал входы в противоположную сторону (как на отрезке с 18:00 до 20:00).
Робот работает по принципу: вход в сделку - выход либо тейкпрофит либо стоплосс, без всяких трейлов и переносов в БУ. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Тут надо экспериментировать.
По идее есть 2 независимые секции. Только вот я на 100% не уверен, что они друг на друга не влияют. Можно предположить, что когда одна секция в шорте функция Equity() блокирует вход в лонг для другой системы. По картинке похоже. Попробуй убрать из кода шортовую секцию и глянь появится ли пропущенный сигнал. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
Секции друг на друга не влияют, каждая часть по отдельности (с удалением другой) работает как надо!
Интересно то, что корректно отображается та часть которая идет первая: Если long, то стратегия от покупок показывает все входы, если Short - то она не проглатывает сигналы. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Hokum писал(а): |
Секции друг на друга не влияют, каждая часть по отдельности (с удалением другой) работает как надо!
Интересно то, что корректно отображается та часть которая идет первая: Если long, то стратегия от покупок показывает все входы, если Short - то она не проглатывает сигналы. |
Это как раз свиделельствует о том, что первая секция влияет на вторую.
Ща посмотрю что можно придумать. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Попробуй не париться с этими секциями и сделать просто вот так
Код: |
Plot(C, "", colorBlack, styleLine);
SetPositionSize(1,4);
SetTradeDelays( 0, 0, 1, 0 ); //Задержка торгов-Short на следующей свече, после сигнала.
SetOption("InitialEquity", 3000000); //Начальный депозит 30 000 р.
SetOption("AllowSameBarExit", True);//Запрет выхода на баре входа
SetOption("ActivateStopsImmediately", True);//Немедленная активация стопов
SetOption("AllowPositionShrinking", False);//разрешить открывать позицию размером меньше заданного (при недостатке средств)
SetOption("FuturesMode", True);
Buy = Sell = 0;
Short = ...;
Cover = 0;
ApplyStop - стоп лосс
ApplyStop - тейк профит
Equity(1,0);
PlotShapes(Short*shapeDownArrow, colorDarkRed, 0, High); //Ставить стрелку над сигналом
PlotShapes(Cover*shapeHollowUpArrow, colorDarkRed, 0, Low);
Short = Cover = 0;
Buy = ...;
Sell = 0;
ApplyStop - стоп лосс
ApplyStop - тейк профит
Equity(1,0);
PlotShapes(Buy*shapeUpArrow, colorGreen, 0, Low); //Рисовать стрелку под сигналом
PlotShapes(Sell*shapeDownArrow, colorGreen, 0, High); //
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|