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



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

СообщениеДобавлено: Пт Мар 12, 2010 1:35 am Ответить с цитатой Вернуться к началу

MAAAN779 писал(а):
а если так:
Buy = A And (S=0);


А суть одна же.

Но это ладно, я хочу ещё добавить.
Вводить доп.условия, чтобы предыдущая свечка имела A==0 и S==0 нельзя делать, т.к. внутри дня имеются ситуации, когда система уже вошла в шорт, а это доп.условие будет давать лишние сигналы.

_________________
УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
fewry



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

СообщениеДобавлено: Пт Мар 12, 2010 1:46 am Ответить с цитатой Вернуться к началу

понятно. у меня такая же проблема. не знаю как решить. если не решим проблему, то я буду делать так: пусть робот торгует всем счетом, если будет повторная сделка, то у него не хватит денег Very Happy. и Exrem не понадобится.
Посмотреть профиль Отправить личное сообщение
Tim



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

СообщениеДобавлено: Пт Мар 12, 2010 2:09 am Ответить с цитатой Вернуться к началу

Я тут подумал, а как можно обрубить действие Exrem() с окончанием торгового дня?

Чтобы новый день Exrem начинал работать без памяти вчерашних сигналов

_________________
УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

СообщениеДобавлено: Пт Мар 12, 2010 8:57 am Ответить с цитатой Вернуться к началу

ExRem(блбла, блабла OR EndDay);

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



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

СообщениеДобавлено: Пт Мар 12, 2010 11:26 am Ответить с цитатой Вернуться к началу

Спасибо, самой конструкции EndDay я не нашёл.

На замену нужно что-то более конкретное.
Например, Timenum()>=234500, но у неё есть недостаток.
Если последняя свечка была раньше, а есть дни с последней свечой и в 22:30.
Либо TimeNum()==103000? Но бывают дни, когда день начинается с 18:00, не знаю почему. Возможно брак в данных. 09.08.2008 Si, например. Хотя если это 1 день, то его можно отбраковать в коде.
Сейчас буду пробовать оба варианта.

Или есть ещё какие-то команды?

Кстати вопрос возник по ходу дела, а можно реалтаймовую базу текущего фьючерса добавить к базе историческими данными (клееным фьючем)?

_________________
УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

СообщениеДобавлено: Пт Мар 12, 2010 11:45 am Ответить с цитатой Вернуться к началу

Tim писал(а):
Спасибо, самой конструкции EndDay я не нашёл.

Такой конструкции и нет. Это я в общем смысле. Если время окончания торгов бывает разное, то для тестов можно использовать
Код:
EndDay = Day() != Ref(Day(), 1);



Tim писал(а):

Кстати вопрос возник по ходу дела, а можно реалтаймовую базу текущего фьючерса добавить к базе историческими данными (клееным фьючем)?

Запросто. В большей степени это зависит от используемого плагина данных....

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



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

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

000 писал(а):

Такой конструкции и нет. Это я в общем смысле. Если время окончания торгов бывает разное, то для тестов можно использовать
Код:
EndDay = Day() != Ref(Day(), 1);

Запросто. В большей степени это зависит от используемого плагина данных....


Спасибо, а то TimeNum не помогло.
Я тут уже пробую использовать TimeFrameExpand(TimeNum(),inDaily,lastExpand), но пока на выходе получаются некие цифры, которые ни с чем связать не получается.
Типа 173; 174,5;180..

Извини. Я сам напутал. Твой код работает на ура Smile

_________________
УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Tim



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

СообщениеДобавлено: Пн Мар 15, 2010 2:13 am Ответить с цитатой Вернуться к началу

Обратил внимание, что MarginDeposit можно устанавливать через код, через настройки АА, и через Symbol-Information.

У меня он должен рассчитываться по формуле.
В коде я его прописал, но в настройках АА и в Information тоже надо проставить некую величину, хотя бы приближенную.

Вообще можно так делать? Имеет ли код более высокий приоритет, чем настройки АА и Information?

И ещё я обнаружил такую команду, как SetOption, предназначенную для изменения настроек АА. Она также имеет более высокий приоритет, чем настройки АА, выставленные вручную?
В хелпе указано:
"Sets various options in automatic analysis settings. Affects also Equity() function results. "

Ещё вопрос появился:
Код:
Risk = Param("Risk",0.05,0.01,0.1,0.005);
AddColumn(Risk,"Risk",1.3,-1);

Данный код странным образом выводит 0,025 вместо 0,05.
В чём загвоздка?

Хех, а следующие строки выводят результат, как если бы Risk был равен 0,025 Sad
Код:
R2 = Risk * 0.7 * Capital;
AddColumn(R2,"R2",1.3,-1);

Причём не играет роли ставлю я 0.7 или 0.8 или ещё сколько-то.

_________________
УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

СообщениеДобавлено: Пн Мар 15, 2010 9:13 am Ответить с цитатой Вернуться к началу

Параметры установленные в коде имеют более высокий приоритет, чем установленные в настройках.

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


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

СообщениеДобавлено: Пн Мар 15, 2010 10:05 am Ответить с цитатой Вернуться к началу

Вышеприведенные коды проверил.
У меня выдают все правильно.
Либо в другом месте кода ошибка либо проверь установку параметров. В АА тоже можно менять парметры заданные в AFL. Нижная кнопка в первой колонке.

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



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

СообщениеДобавлено: Пн Мар 15, 2010 12:22 pm Ответить с цитатой Вернуться к началу

Так в том-то дело, что перед этими сторками толком ничего нет!

Код:
Capital = Param("Capital",100000,50000,200000,5000);
AddColumn (Capital,"Capital",1.0,-1);
Risk = Param("Risk",0.05,0.01,0.1,0.005);
AddColumn(Risk,"Risk",1.3,-1);
R1 = Risk * 0.8 * Capital;
AddColumn (R1,"R1",1.0,colorDefault,colorDefault,width=-1);


Ticker Date/Time Capital Risk R1

SPFB.Si_080801_100304_1mi 07.08.2008 10:30:00 100000 0.025 2000


Как видно - Risk почему-то равен 0,025, а не 0,05.
Пришлось в формуле R1 вместо 0.4 ставить 0.8.

_________________
УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Tim



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

СообщениеДобавлено: Пн Мар 15, 2010 12:26 pm Ответить с цитатой Вернуться к началу

000 писал(а):
...В АА тоже можно менять парметры заданные в AFL. Нижная кнопка в первой колонке.


А вот это где-где?

_________________
УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

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

Вот

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



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

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

У меня один параметр, считающий кол-во входов в день, обнуляется, т.к. его инкремент совершается ближе к концовке кода, после Buy и short.

Код:
R=IIf(Buy OR Short,R+1,IIf(EndDay,0,R)); // кол-во входов в день


Но в одно из условий для Buy и Short в начале кода R учитывается.
Поэтому AFL ругается и требует инициализировать его в самом начале кода.
Но тогда обнуление R будет просходить на каждой свечке пока не будет нового сигнала, чего нельзя допускать.

Как не допустить обнуления?
Можно ли инкрементировать R перед расчётом условий?

_________________
УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

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

В корне не верный подход.
Ты считаешь, что результаты выполнения (прогона) AFL как то сохраняются и влияют на результаты следующего. Ничего подобного. Каждый новый прогон совершенно аналогичен предыдущему.
В данном случае надо не так.
Код:

R = Sum(Buy OR Short, BarsSince(EndDay));

Не ручаюсь, что это совершенно точно, но смысл такой. Писал по памяти и не проверял. Некогда.. Smile

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen