Автор |
Сообщение |
iddqd
Зарегистрирован: 10.02.2009
Сообщения: 45
|
попробовал написать простую системку, но с ней что то не то
открывает сделку шорт, при незакрытой сделке лонг.
Это так показывает индикатор. На самом деле, если смотреть в списке сделок, позиция лонг закрывается на баре открытия позиции Short.
Открытие позиции Buy при пересечении ценой открытия бара простой средней вверх.
Закрытие при первом прибыльном открытии.
открытие позиции Short при пересечении ценой открытия бара скользящей средней вниз.
закрытие при первом прибыльном открытии.
Код: |
SetTradeDelays(0,0,0,0);
SetOption("InitialEquity",10000);
SetOption("AllowSameBarExit",1);
SetOption("ActivateStopsImmediately",1);
SetOption("FuturesMode",1);
MarginDeposit=1;
PositionSize=1;
PointValue=10000;
//=====================================
t1=Optimize("per1", 23, 3, 70, 5);//
C1=Ref(C,-1);
m1=MA(C1,t1);
Buy=Cross(O,m1);
BuyPrice=Ref(O,-BarsSince(Buy));
SellPrice=O;
Sell= O-BuyPrice>0;
Short=Cross(m1,O);
ShortPrice=Ref(O,-BarsSince(Short));
CoverPrice=O;
Cover= ShortPrice-O>0;
Buy=ExRem(Buy, Sell);
Sell=ExRem(Sell,Buy);
Short=ExRem(Short,Cover);
Cover=ExRem(Cover,Short);
Plot(C,"c",1,64);
Plot(m1,"m1",colorBlue,1);
PlotShapes( IIf(Buy,shapeDigit1, shapeNone), colorGreen, 0,H,12);
PlotShapes( IIf(Sell,shapeDigit1, shapeNone), colorRed, 0,L,12);
PlotShapes( IIf(Short,shapeDigit2, shapeNone), colorGreen, 0,H,12);
PlotShapes( IIf(Cover,shapeDigit2, shapeNone), colorRed, 0,L,12);
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
1. Есть нехорошая ошибочка в коде.
Не надо бы тебе использовать в BuyPrice=Ref(O,-BarsSince(Buy));
массив BuyPrice. Это зарезервированное слово обозначающее цену исполнения сделок. Возможно, что в данном случае все хорошо, но лучше так не делать.
2. Почему так рисует стрелки.
Это просто индикатор.
Он не считает открыта поза - закрыта. Есть сигнальчик - он рисует стрелочку. Нет - он не рисует.
А в коде индикатора нет никакой связи между sell и short. Вот поэтому иногда и получается, что прибыль по сделке не достигнута (другого правила выхода там нет) а сигнал на шорт поступил. Рисуем стрелку.
Тестер считает немного иначе. Он учитывает открытые позиции и не может быть такого, чтобы был открыт одновременно лонг и шорт. Вот поэтому разница. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
iddqd
Зарегистрирован: 10.02.2009
Сообщения: 45
|
Код: |
Buy=Cross(O,m1);
BuyLevel=Ref(O,-BarsSince(Buy));
BuyPrice=BuyLevel;
SellPrice=O;
Sell= O-BuyPrice>0 OR Cross(m1,O);
Short=Cross(m1,O);
ShortLevel=Ref(O,-BarsSince(Short));
ShortPrice=ShortLevel;
CoverPrice=O;
Cover= ShortPrice-O>0 OR Cross(O,m1);
|
так нормально будет? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Нет.
Так нормально
Код: |
Buy = Cross(O, m1);
BuyLevel = Ref(O, -BarsSince(Buy));
BuyPrice = O;
SellPrice = O;
Sell = O > BuyLevel OR Cross(m1, O);
Short = Cross(m1, O);
ShortLevel = Ref(O,-BarsSince(Short));
ShortPrice = O;
CoverPrice = O;
Cover = O > ShortLevel OR Cross(O,m1);
|
При этом имей ввиду, что исполная сделку по Open нельзя при расчете m1 использовать текущую Close. У тебя там стоит Ref(, -1); так, что все нормально. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
iddqd
Зарегистрирован: 10.02.2009
Сообщения: 45
|
спасибо за помощь =) замечания принял к сведению |
|
|
Посмотреть профиль Отправить личное сообщение |
|
reciffoksir
Зарегистрирован: 27.10.2009
Сообщения: 11
|
000 писал(а): |
2. Почему так рисует стрелки.
Это просто индикатор.
Он не считает открыта поза - закрыта. Есть сигнальчик - он рисует стрелочку. Нет - он не рисует.
|
вот этот вопрос меня очень волнует, теряется наглядность, система вошла в позу (уж такая система, с этим ничего не поделать), а бар уехал и индикатор пропал, как его заставить там остаться? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Чёта вопрос не понял. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
reciffoksir
Зарегистрирован: 27.10.2009
Сообщения: 11
|
000 писал(а): |
Чёта вопрос не понял. |
индикатор на одном баре может и появляться и пропадать,
а сигнал на бай уже ушел на этом баре,
для наглядности хотелось бы чтобы индикатор не пропал, даже если бар уже не удовлетворяет условиям, так как система уже в позе |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Теперь понятно. Код заглядывает в будущее. Выкини его в мусорку. Больше ничего сделать нельзя. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
reciffoksir
Зарегистрирован: 27.10.2009
Сообщения: 11
|
000 писал(а): |
Теперь понятно. Код заглядывает в будущее. Выкини его в мусорку. Больше ничего сделать нельзя. |
нет, не заглядывает.
вот пример:
Код: |
Buy=Cross( myprice,C ); |
5-минутки
рисуется 5-ти минутный бар, close пересек myprice, ушел сигнал на покупку, система в позе
тем временем close обратно ушел ниже myprice, индюк пропал, а система то осталась в позе |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
reciffoksir писал(а): |
000 писал(а): |
Теперь понятно. Код заглядывает в будущее. Выкини его в мусорку. Больше ничего сделать нельзя. |
нет, не заглядывает.
вот пример:
Код: |
Buy=Cross( myprice,C ); |
5-минутки
рисуется 5-ти минутный бар, close пересек myprice, ушел сигнал на покупку, система в позе
тем временем close обратно ушел ниже myprice, индюк пропал, а система то осталась в позе |
http://www.russian-trader.ru/forum/viewtopic.php?p=389156#389156 |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
reciffoksir
Зарегистрирован: 27.10.2009
Сообщения: 11
|
да, спасибо, пытаюсь обойти эту проблему, пока безуспешно,
хочу ввести переменную, которая бы помнила состояние системы,
то есть зашел в лонг, строго присвоил ей 1, пока система не вышла из лонга, что-то вроде
Код: |
IIf (Buy, BScount=1, Levaki++);
Sell=Cross( myprice,C ) AND BScount==1;
|
мне нужен именно C, а не ref(c,-1) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
reciffoksir писал(а): |
да, спасибо, пытаюсь обойти эту проблему, пока безуспешно,
хочу ввести переменную, которая бы помнила состояние системы,
то есть зашел в лонг, строго присвоил ей 1, пока система не вышла из лонга, что-то вроде
Код: |
IIf (Buy, BScount=1, Levaki++);
Sell=Cross( myprice,C ) AND BScount==1;
|
мне нужен именно C, а не ref(c,-1) |
Перейди на тики, в них строй уровни со старшего тайма и отслеживай обратное пересечение уровня, но в реале это тебе ничего не даст, проскальзывание убьет систему. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Еще вариант.
Вместо Close используй High, Low.
Цитата: |
5-минутки
рисуется 5-ти минутный бар, close пересек myprice, ушел сигнал на покупку, система в позе
тем временем close обратно ушел ниже myprice, индюк пропал, а система то осталась в позе
|
Это как раз оно и есть (заглядывание) При тесте у тебя будет сделка по цене myprice при том, что тестер заранее знает, что закрытие выше этой цены. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
reciffoksir
Зарегистрирован: 27.10.2009
Сообщения: 11
|
000 писал(а): |
Еще вариант.
Вместо Close используй High, Low.
Цитата: |
5-минутки
рисуется 5-ти минутный бар, close пересек myprice, ушел сигнал на покупку, система в позе
тем временем close обратно ушел ниже myprice, индюк пропал, а система то осталась в позе
|
Это как раз оно и есть (заглядывание) При тесте у тебя будет сделка по цене myprice при том, что тестер заранее знает, что закрытие выше этой цены. |
спасибо, начал пользовать High, Low |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|