Автор |
Сообщение |
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
поменял сигнал на доливку/ Вместо Low поставил Сlose. Все встало на свои места.
Код: |
Buy2=С < ep-200 AND inLong; |
и поменял байпрайс2
Код: |
BuyPrice2 = ValueWhen(Buy2, Close);
|
Но хотелось бы оперативно докупать, не ждать закрытия бара.( |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Надо не методом тыка менять шило на мыло пока не заработает, а разобраться почему не работало так как было. Как это делать я написал... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
вот сделал код, он все рисует и бай1 и бай2 и байпрайсы1 и 2.
Код: |
_SECTION_BEGIN("2222");
SetBacktestMode( backtestRegularRawMulti );
pds=111;
DonchianUpper =HHV(Ref(H,-1),pds);
DonchianLower = LLV(Ref(L,-1),pds);
DonchianMiddle = (DonchianUpper+DonchianLower)/2;
Buy1=Cross(High,DonchianUpper);
Sell=DonchianMiddle > Low;
Buy1 = ExRem(Buy1,Sell);
BuyPrice1=max(DonchianUpper, O);
SellPrice=min(DonchianMiddle,O);
inLong = Flip(Buy1, Sell);
ep = ValueWhen(Buy1, BuyPrice1);
Buy2=L < ep-200 AND inLong;
BuyPrice2 = ep-200;
BuyPrice = IIf(Buy2, BuyPrice2, BuyPrice1);
Buy2 = ExRem(Buy2, Sell);
Buy = Buy1 OR Buy2;
Sell = ExRem(Sell,Buy);
SetPositionSize(1, 4);
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
PlotShapes(IIf(Buy1,shapeUpArrow,0),5,0,Graph0,-5);
PlotShapes(IIf(Buy2,shapeHollowUpArrow,0),5,0,Graph0,-15);
PlotShapes(IIf(Sell,shapeHollowDownArrow,0),4,0,Graph0,-20);
dist = 1.09*ATR(10);
dist1 = 1.7*ATR(10);
dist2 = 1.5*ATR(10);
for( i = 0; i < BarCount; i++ )
{
if( Buy1[i] ) PlotText( "Buy\n" + BuyPrice1[ i ], i, L[ i ]-dist[i], colorGreen,5 );
if( Buy2[i] ) PlotText( "Buy\n" + BuyPrice2[ i ], i, L[ i ]-dist2[i], colorGreen,5 );
if( Sell[i] ) PlotText( "" + SellPrice[ i ], i, H[ i ]+dist2[i], colorRed );
}
_SECTION_END();
_SECTION_BEGIN("Donchian Channels");
pds=111;
DonchianUpper =HHV(Ref(H,-1),pds);
DonchianLower = LLV(Ref(L,-1),pds);
DonchianMiddle = (DonchianUpper+DonchianLower)/2;
Plot(DonchianUpper,"DU",colorBlue,styleLine);
Plot(DonchianMiddle,"DM",colorGreen,styleLine);
Plot(DonchianLower,"DL",colorRed,styleLine);
_SECTION_END(); |
На скрине видно, что он на одном баре вешает обе покупки, если на этой свече было значение меньше на 200пп. На реплее баре делал и там в момент срабатывания бай1, сразу появляется бай2 с ценой меньшей на 200.
Надо как-то указать грамотно, что на этом баре где был бай1 не делать бай2)
1.03.2018
инструмент РИ
6 минутка |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну. И в чем проблема?
Код: |
Buy2=L < ep-200 AND inLong AND Buy1 == 0; |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
работает)
Просто, но я почему-то не пойму...
условие Buy1 == 0 дает НЕ ИСТИНУ только на баре где был первый бай?
я думал, что Buy1 равен 0, только когда система в кеше, т.е. после Sell.
Пытаюсь вторую доливку сделать. Flip во Flipe можно делать?) У меня ж теперь будет buy1 buy2 и buy3 |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
Код: |
SetBacktestMode( backtestRegularRawMulti );
pds=111;
DonchianUpper =HHV(Ref(H,-1),pds);
DonchianLower = LLV(Ref(L,-1),pds);
DonchianMiddle = (DonchianUpper+DonchianLower)/2;
Buy1=Cross(High,DonchianUpper);
Sell=DonchianMiddle > Low;
Buy1 = ExRem(Buy1,Sell);
BuyPrice1=max(DonchianUpper, O);
SellPrice=min(DonchianMiddle,O);
inLong = Flip(Buy1, Sell); // как-то проверять надо и Buy2??
ep = ValueWhen(Buy1, BuyPrice1);
Buy2=L < ep-100 AND inLong AND Buy1 == 0; //
BuyPrice2 = ep-100;
Buy3=L<ep-200 AND inLong AND (Buy1 == 0 OR Buy2 == 0);// Надо какой-то второй Inlong? для проверки и buy2
BuyPrice3 = ep-200;
BuyPrice = IIf(Buy3, BuyPrice3, (IIf (Buy2, BuyPrice2, BuyPrice1))); // Это правильно???
Buy2 = ExRem(Buy2, Sell);
Buy3 = ExRem(Buy3,Sell);
Buy = Buy1 OR Buy2 OR Buy3;
Sell = ExRem(Sell,Buy);
SetPositionSize(1, 4); |
вот так у меня вышло, все что смог. Бай3 и байпрайс3 сделал и определение Байпрайс - условие в условии верно?))
Вопрос про InLong что бы и бай2 проверять? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Orange2000 писал(а): |
работает)
Просто, но я почему-то не пойму...
условие Buy1 == 0 дает НЕ ИСТИНУ только на баре где был первый бай? |
Да. Только там где сигнал на вход.
Orange2000 писал(а): |
Пытаюсь вторую доливку сделать. Flip во Flipe можно делать?) У меня ж теперь будет buy1 buy2 и buy3 |
Надеюсь у тебя получится. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Orange2000 писал(а): |
вот так у меня вышло, все что смог. Бай3 и байпрайс3 сделал и определение Байпрайс - условие в условии верно?))
Вопрос про InLong что бы и бай2 проверять? |
А потом будем делать еще одну доливку? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
000 писал(а): |
Orange2000 писал(а): |
вот так у меня вышло, все что смог. Бай3 и байпрайс3 сделал и определение Байпрайс - условие в условии верно?))
Вопрос про InLong что бы и бай2 проверять? |
А потом будем делать еще одну доливку? |
нет, больше не будет). Две по моим расчетам оптимально.
Хотя, конечно в идеале, сделать цикл с N кол-ом доливок и погонять, с разными параметрами. Но боюсь код будет сложный и тяжелый. Для дальнейших доработок на шорт и в робота)
поэтому 2 доливки и хватит |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
Код: |
SetBacktestMode( backtestRegularRawMulti );
pds=111;
DonchianUpper =HHV(Ref(H,-1),pds);
DonchianLower = LLV(Ref(L,-1),pds);
DonchianMiddle = (DonchianUpper+DonchianLower)/2;
Buy1=Cross(High,DonchianUpper);
Sell=DonchianMiddle > Low;
Buy1 = ExRem(Buy1,Sell);
BuyPrice1=max(DonchianUpper, O);
SellPrice=min(DonchianMiddle,O);
inLong = Flip(Buy1 , Sell); // как-то проверять надо и Buy2??
ep = ValueWhen(Buy1, BuyPrice1);
Buy2=L < ep-100 AND inLong AND Buy1 == 0; //
BuyPrice2 = ep-100;
inLong2 = Flip(Buy2 , Sell);
Buy3=L<ep-200 AND inLong AND inLong2 AND (Buy1 == 0 OR Buy2 == 0);// Надо какой-то второй Inlong? для проверки и buy2
BuyPrice3 = ep-200;
BuyPrice = IIf(Buy3, BuyPrice3, (IIf (Buy2, BuyPrice2, BuyPrice1))); // Это правильно???
Buy2 = ExRem(Buy2, Sell);
Buy3 = ExRem(Buy3,Sell);
Buy = Buy1 OR Buy2 OR Buy3;
Sell = ExRem(Sell,Buy);
SetPositionSize(1, 4);
|
Олег, глянь, правильно я сделал? Просто вроде получилось, но как-то просто уж))) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
2 докупки делает на одном баре (если в баре выполняется условие) Не пойму как их развести? Меняю условие Бай3 в части
Код: |
(Buy1 == 0 OR Buy2 == 0) |
понимаю, что так неправильно, но как правильно не могу сделать. )) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Проверять ща не могу. У меня тут есть чем мозги занять. Они конечно многозадачные, но переключаются не охотно и с трудом.
Код: |
(Buy1 == 0 OR Buy2 == 0) |
Орел! Конечно так не правильно.
Правильно так
Код: |
(Buy1 == 0 AND Buy2 == 0) |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
Да, я тоже уже додумался, что так правильней и логично.
Но тогда 3ей доливки не происходит.
Хотя вот все вроде должно работать
может я с flip там не так сделал что-то?
п.с. Сучка такая..разобрался) ексрем не там был)
Олег, ну я без тебя все равно не доделаю) Еще нужно шорты прикрутить, и еще в робота запихать) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну мы с тобой не спеша так движемся в верном направлении... Давай продолжать потихоньку.
А чё, есть смысл двигаться дальше? Типа результаты пока обнадеживают?
А то странно как то. Еще система не написана, соответственно не протестирована, а ты уже робота мечтаешь. )))) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если с лонами все устраивает, то пока протестируй отдельно шорты. Если тоже будет ОК, то будем скрещивать... ))) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|