|
AmiSite.ru
Форум по Ами |
Автор |
Сообщение |
max
Зарегистрирован: 01.08.2008
Сообщения: 253
|
Привет всем.
Хотел бы реализовать заковыристый алгоритм.
На данный момент есть система, которая работает только внутри дня. Почти полностью реверсивная (после лонга всегда идет шорт). Но для «завершения» картинки нужно проверить одну идейку.
Алгоритм такой:
Если с начала сессии не было сделок
То
Для открытия сделки используем базовые условия Buy1 или Short1
Иначе
Если предыдущая сделка была Лонг и была закрыта по условию Sell1 (стоп-лосс), то
следующая сделка должна открыться или по условию Buy2 или по условию Short1
Если предыдущая сделка была Шорт и была закрыта по условию Cover1 (стоп-лосс), то
следующая сделка должна открыться или по условию Buy1 или по условию Short2
По большому счету имеем задачку выяснить направление предыдущей сделки, ее результат (плюс или минус) и ее номер с начала дня
Как правильнее замутить такое |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
ApplyStop() в системе используется? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
max
Зарегистрирован: 01.08.2008
Сообщения: 253
|
000 писал(а): |
ApplyStop() в системе используется? |
нет
никоим образом
схема простая
Sell1=
sel2=
sell=sell1 or sell2 |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Как то так
Код: |
Buy1 = ...;
Short1 = ...;
....
pos = 0;
NewDay = Day() != Ref(Day(), -1);
flt = 0;
Buy = Sell = Short = Cover = 0;
for( i = 1; i < BarCount; i++ )
{
if(NewDay[i])
flt = 0;
if(pos == 0)
{
if(flt == 0) // начало дня или выход не по стопу
{
if(Buy1[i])
{
Buy[i] = 1;
pos = 1;
}
else if(Short1[i])
{
Short[i] = 1;
pos = -1;
}
}
else if(flt = 1) // выход из лонга по стопу
{
if(Buy2[i])
{
Buy[i] = 1;
pos = 1;
}
else if(Short1[i])
{
Short[i] = 1;
pos = -1;
}
}
else if(flt = -1) // выход из шорта по стопу
{
if(Buy1[i])
{
Buy[i] = 1;
pos = 1;
}
else if(Short2[i])
{
Short[i] = 1;
pos = -1;
}
}
}
else if(pos == 1)
{
if(Sell1[i]) // стоп при лонге
{
Sell[i] = 1;
pos = 0;
flt = 1;
}
else if(Sell2[i])
{
Sell[i] = 1;
pos = 0;
flt = 0;
}
}
else if(pos == -1) // стоп при шорте
{
if(cover1[i])
{
Cover[i] = 1;
pos = 0;
flt = -1;
}
else if(cover2[i])
{
Cover[i] = 1;
pos = 0;
flt = 0;
}
}
}
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
max
Зарегистрирован: 01.08.2008
Сообщения: 253
|
спасибо!
получилось почти как надо
остальное я напильником |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
| |