Автор |
Сообщение |
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
разработал системку - с проскальзыванием убыточна, без проскальзывания прибыльна.
решил протестировать ее с учетом выставления лимиток на следующем баре:
т.е. если цена закрытия прошлого бара в пределах между H и L существующего,
то такую сделку учитываем, если нет - не учитываем.
но хочется еще подключить стопы - а там проскальзывание должно быть (они ж не лимитками ставятся).
как учитывать цены стопов не по клозу, а по цене минус проскальзывание для длинных позиций и плюс проскальзывание для коротких?
---
или может включить проскальзывание для всех, а в куплю и продажу его нивелировать - вписывать в BuyPrice и ShortPrice цену зарытия и плюс проскальзывание для длинных позиций и минус проскальзывание для коротких позиций? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Никогда такое не делал, но на вскидку
Код: |
.... система
ApplyStop(stopTypeLoss, ...);
Equity(1);
SellPrice = IIf(Sell == 2, C - скользяк, C);
|
В таком ключе... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
000 писал(а): |
Никогда такое не делал, но на вскидку
Код: |
.... система
ApplyStop(stopTypeLoss, ...);
Equity(1);
SellPrice = IIf(Sell == 2, C - скользяк, C);
|
В таком ключе... |
о_О
спасибо!
как всегда, очень красивое решение,
а не такое топорное как у меня =) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
Есть простая конттрендовая стратегия:
Period1 = Optimize("PeriodA", 18, 1, 60, 1);
Period2 = Optimize("PeriodB", 12, 1, 60, 1);
Top = Ref(HHV(C, Period1), -1);
Bot = Ref(LLV(C, Period2), -1);
Plot(Top, "Top", colorRed);
Plot(Bot, "Bot", colorRed);
Sell = Short= Cross(C, Top);
Buy = Cover= Cross(Bot, C);
В процессе тестирования наглядно понял, что подобные системы очень сильно зависит от проскальзывания. Решил в ручную проверить, часто ли цена бывает ниже сигнала на покупку и выше на продажу . Оказалось что приблизительно 2% сделок не доходят до цены сигнала. Соответственно сразу возникла мысль протестить в том числе и отрицательное проскальзывание. Можно ли в ами на примере выше приведенной стратегии, проанализировать или точнее создать систему где к цене открытия позиции будет добавлятсья отрицательный слипаж? Т.е. при покупке: цена покупки минус какое то кол -во пунктов. При продаже цена продажи + какое то кол-во пунктов. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
В конец кода добавить:
Equity(1);
slippage = ...;
BuyPrice = BuyPrice - slippage;
SellPrie = SellPrice + slippage;
ShortPrice = ShortPrie + slippage;
CoverPrice = CoverPrice - slippage; |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
Это не совсем то, мне нужно провести исследование были ли цены после сигнала системы на покупку или продажу, соответственно ниже или выше. В этом случае тогда можно убедитьмя в том что, заявка будет реализована. Сколько заявок реализовано?, сколько не реализовано? при таком раскладе. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Понял так. При срабатывании Cross(Bot, C); сразу не покупаем, а ждем цены еще ниже?
Тогда что мешает сделать Bot - бла-бла и уже от неё брать Cross ? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
000 писал(а): |
Понял так. При срабатывании Cross(Bot, C); сразу не покупаем, а ждем цены еще ниже?
Тогда что мешает сделать Bot - бла-бла и уже от неё брать Cross ? |
В начале я делал что то подобное:
x =Optimize("x", 20, 5, 100, 5);//определяет уровень buy/short
Period1 = Optimize("PeriodA", 18, 1, 60, 1);
Period2 = Optimize("PeriodB", 12, 1, 60, 1);
Top = Ref(HHV(C, 1, -1);
Bot = Ref(LLV(C, 12), -1);
BuyLevel = Bot-x; //уровень покупки
ShortLevel = Top+x; //уровень шорта
Plot(ShortLevel, "ShortLevel", colorRed);
Plot(BuyLevel, "BuyLevel", colorRed);
Sell = Short=H>ShortLevel;
ShortPrice = ShortLevel;
Buy = Cover=L < BuyLevel;
BuyPrice = BuyLevel;
Но мне надо узнать была ли цена ниже, могу ли я выставлять заявку с минимальным проскальзыванием. Мне кажется надо что то прописать типа условия что сделка осуществится в случае если будущие свечи((Ref(L,+1)) будут ниже BuyPrice |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
Пока вот так:
Cond1=(Ref(L,1))<BuyPrice;
Cond2=(Ref(L,1))<CoverPrice;
Cond3=(Ref(H,1))>SellPrice;
Cond4=(Ref(H,1))>ShortPrice;
Sell = Short= Cross(C, Top)AND Cond3 AND Cond4;
Buy = Cover= Cross(Bot, C) AND Cond1 AND Cond2; |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|