Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Опять про усреднение. Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Orange2000



Зарегистрирован: 15.10.2009
Сообщения: 185

СообщениеДобавлено: Пт Май 31, 2019 3:17 pm Ответить с цитатой Вернуться к началу

поменял сигнал на доливку/ Вместо Low поставил Сlose. Все встало на свои места.

Код:

Buy2=С < ep-200 AND inLong;


и поменял байпрайс2
Код:

BuyPrice2 = ValueWhen(Buy2, Close);


Но хотелось бы оперативно докупать, не ждать закрытия бара.(
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Май 31, 2019 10:59 pm Ответить с цитатой Вернуться к началу

Надо не методом тыка менять шило на мыло пока не заработает, а разобраться почему не работало так как было. Как это делать я написал...

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Orange2000



Зарегистрирован: 15.10.2009
Сообщения: 185

СообщениеДобавлено: Сб Июн 01, 2019 3:05 pm Ответить с цитатой Вернуться к началу

вот сделал код, он все рисует и бай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

СообщениеДобавлено: Сб Июн 01, 2019 3:54 pm Ответить с цитатой Вернуться к началу

Ну. И в чем проблема?
Код:
Buy2=L < ep-200 AND inLong AND Buy1 == 0;

Very Happy

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Orange2000



Зарегистрирован: 15.10.2009
Сообщения: 185

СообщениеДобавлено: Пн Июн 03, 2019 11:10 am Ответить с цитатой Вернуться к началу

работает)
Просто, но я почему-то не пойму...
условие Buy1 == 0 дает НЕ ИСТИНУ только на баре где был первый бай?

я думал, что Buy1 равен 0, только когда система в кеше, т.е. после Sell.


Пытаюсь вторую доливку сделать. Flip во Flipe можно делать?) У меня ж теперь будет buy1 buy2 и buy3
Посмотреть профиль Отправить личное сообщение
Orange2000



Зарегистрирован: 15.10.2009
Сообщения: 185

СообщениеДобавлено: Пн Июн 03, 2019 3:23 pm Ответить с цитатой Вернуться к началу

Код:

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

СообщениеДобавлено: Пн Июн 03, 2019 4:25 pm Ответить с цитатой Вернуться к началу

Orange2000 писал(а):
работает)
Просто, но я почему-то не пойму...
условие Buy1 == 0 дает НЕ ИСТИНУ только на баре где был первый бай?

Да. Только там где сигнал на вход.

Orange2000 писал(а):

Пытаюсь вторую доливку сделать. Flip во Flipe можно делать?) У меня ж теперь будет buy1 buy2 и buy3

Надеюсь у тебя получится.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Июн 03, 2019 4:28 pm Ответить с цитатой Вернуться к началу

Orange2000 писал(а):


вот так у меня вышло, все что смог. Бай3 и байпрайс3 сделал и определение Байпрайс - условие в условии верно?))

Вопрос про InLong что бы и бай2 проверять?

А потом будем делать еще одну доливку? Laughing

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Orange2000



Зарегистрирован: 15.10.2009
Сообщения: 185

СообщениеДобавлено: Пн Июн 03, 2019 4:30 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Orange2000 писал(а):


вот так у меня вышло, все что смог. Бай3 и байпрайс3 сделал и определение Байпрайс - условие в условии верно?))

Вопрос про InLong что бы и бай2 проверять?

А потом будем делать еще одну доливку? Laughing


нет, больше не будет). Две по моим расчетам оптимально.

Хотя, конечно в идеале, сделать цикл с N кол-ом доливок и погонять, с разными параметрами. Но боюсь код будет сложный и тяжелый. Для дальнейших доработок на шорт и в робота)

поэтому 2 доливки и хватит
Посмотреть профиль Отправить личное сообщение
Orange2000



Зарегистрирован: 15.10.2009
Сообщения: 185

СообщениеДобавлено: Вт Июн 04, 2019 10:27 am Ответить с цитатой Вернуться к началу

Код:

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

СообщениеДобавлено: Вт Июн 04, 2019 10:40 am Ответить с цитатой Вернуться к началу

2 докупки делает на одном баре (если в баре выполняется условие) Не пойму как их развести? Меняю условие Бай3 в части
Код:

(Buy1 == 0 OR Buy2 == 0)


понимаю, что так неправильно, но как правильно не могу сделать. ))
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вт Июн 04, 2019 12:52 pm Ответить с цитатой Вернуться к началу

Проверять ща не могу. У меня тут есть чем мозги занять. Они конечно многозадачные, но переключаются не охотно и с трудом.
Код:
(Buy1 == 0 OR Buy2 == 0)

Орел! Конечно так не правильно.
Правильно так
Код:
(Buy1 == 0 AND Buy2 == 0)

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Orange2000



Зарегистрирован: 15.10.2009
Сообщения: 185

СообщениеДобавлено: Вт Июн 04, 2019 1:17 pm Ответить с цитатой Вернуться к началу

Да, я тоже уже додумался, что так правильней и логично.
Но тогда 3ей доливки не происходит.
Хотя вот все вроде должно работать

может я с flip там не так сделал что-то?

п.с. Сучка такая..разобрался) ексрем не там был)


Олег, ну я без тебя все равно не доделаю) Еще нужно шорты прикрутить, и еще в робота запихать)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Июн 05, 2019 12:15 pm Ответить с цитатой Вернуться к началу

Ну мы с тобой не спеша так движемся в верном направлении... Давай продолжать потихоньку.
А чё, есть смысл двигаться дальше? Типа результаты пока обнадеживают?

А то странно как то. Еще система не написана, соответственно не протестирована, а ты уже робота мечтаешь. ))))

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Июн 05, 2019 12:16 pm Ответить с цитатой Вернуться к началу

Если с лонами все устраивает, то пока протестируй отдельно шорты. Если тоже будет ОК, то будем скрещивать... )))

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen