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


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

СообщениеДобавлено: Вт Апр 07, 2009 7:21 pm Ответить с цитатой Вернуться к началу

Нифига не могу понять в чем дело. Вот моя эмуляция торгов по фьючу сбера на 6/04/2009г
Код:

TRANS_ID=021034591; PRICE=2375; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021034594; PRICE=2375; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021714592; PRICE=2287; QUANTITY=1; OPERATION=S; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021719591; PRICE=2332; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021724592; PRICE=2280; QUANTITY=1; OPERATION=S; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021729591; PRICE=2343; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021734592; PRICE=2287; QUANTITY=1; OPERATION=S; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021734593; PRICE=2277; QUANTITY=1; OPERATION=S; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021739591; PRICE=2346; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021739594; PRICE=2346; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021744592; PRICE=2283; QUANTITY=1; OPERATION=S; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021804591; PRICE=2347; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021834592; PRICE=2288; QUANTITY=1; OPERATION=S; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021839591; PRICE=2335; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021844592; PRICE=2280; QUANTITY=1; OPERATION=S; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021849591; PRICE=2334; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;
TRANS_ID=021859592; PRICE=2287; QUANTITY=1; OPERATION=S; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.SBER; ACCOUNT=SPBFUT00508; CLIENT_CODE=508;

Вроде все ок.

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


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

СообщениеДобавлено: Вт Апр 07, 2009 7:25 pm Ответить с цитатой Вернуться к началу

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

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



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

СообщениеДобавлено: Ср Апр 08, 2009 11:19 am Ответить с цитатой Вернуться к началу

Цитата:
x =Optimize("x", 0.6, 0.1, 1, 0.1);//определяет уровень buy/short, дефолт 60% от вчерашнего диапазона
DH = TimeFrameGetPrice( "H", inDaily,-1,expandFirst);//Максимум вчерашнего дня
DL = TimeFrameGetPrice( "L", inDaily,-1,expandFirst);//минимум вчерашнего для
DOpen = TimeFrameGetPrice( "O", inDaily, 0, expandFirst); // сегодняшнее открытие
Range = DH - DL; // вчерашний диапазон
BuyLevel = DOpen + Range*x;//уровень покупки
ShortLevel = DOpen -Range*x;//уровень шорта
Buy = H >= BuyLevel & L<BuyLevel;// покупка если максимум выше уровня покупки
BuyPrice = BuyLevel; // по цене уровня покупки
Short = L <=ShortLevel& B>ShortLevel;
ShortPrice = ShortLevel;
Sell = Cover = 0;
ApplyStop(stopTypeLoss, stopModePoint, Range/2, ExitAtStop = 1); // стоп 50% вчерашнего диаппазона
ApplyStop(stopTypeProfit, stopModePoint, Range/2, ExitAtStop = 1);

как в условии правильно прописать : если я в лонге и стопов не достиг
и срабатывает сигнал шорт = надо перевернутся?
Если не в условии прописывать ,то где Embarassed
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

СообщениеДобавлено: Ср Апр 08, 2009 1:10 pm Ответить с цитатой Вернуться к началу

Если для робота, то напиши после
Equity(1);

Sell = Sell OR Short;

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



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

СообщениеДобавлено: Ср Апр 08, 2009 3:25 pm Ответить с цитатой Вернуться к началу

Цитата:
Если для робота, то напиши после
Equity(1);

Sell = Sell OR Short;

Да это для робота с этим условием
Цитата:
x =Optimize("x", 0.6, 0.1, 1, 0.1);//определяет уровень buy/short, дефолт 60% от вчерашнего диапазона
DH = TimeFrameGetPrice( "H", inDaily,-1,expandFirst);//Максимум вчерашнего дня
DL = TimeFrameGetPrice( "L", inDaily,-1,expandFirst);//минимум вчерашнего для
DOpen = TimeFrameGetPrice( "O", inDaily, 0, expandFirst); // сегодняшнее открытие
Range = DH - DL; // вчерашний диапазон
BuyLevel = DOpen + Range*x;//уровень покупки
ShortLevel = DOpen -Range*x;//уровень шорта
Buy = H >= BuyLevel & L<BuyLevel;// покупка если максимум выше уровня покупки
BuyPrice = BuyLevel; // по цене уровня покупки
Short = L <=ShortLevel& B>ShortLevel;
ShortPrice = ShortLevel;
Sell = Cover = 0;
ApplyStop(stopTypeLoss, stopModePoint, Range/2, ExitAtStop = 1); // стоп 50% вчерашнего диаппазона
ApplyStop(stopTypeProfit, stopModePoint, Range/2, ExitAtStop = 1);
Equity(1);
Sell = Sell OR Short;

Так Confused
А как робот воспримет условие Sell = Cover = 0; и не надо прописывать увеличение позиции была 1,(-1,-1) стала -1
Lots = 1; // сколько лотов желаете торговать
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

СообщениеДобавлено: Ср Апр 08, 2009 4:53 pm Ответить с цитатой Вернуться к началу

sas55 писал(а):

Да это для робота с этим условием
Цитата:
x =Optimize("x", 0.6, 0.1, 1, 0.1);//определяет уровень buy/short, дефолт 60% от вчерашнего диапазона
DH = TimeFrameGetPrice( "H", inDaily,-1,expandFirst);//Максимум вчерашнего дня
DL = TimeFrameGetPrice( "L", inDaily,-1,expandFirst);//минимум вчерашнего для
DOpen = TimeFrameGetPrice( "O", inDaily, 0, expandFirst); // сегодняшнее открытие
Range = DH - DL; // вчерашний диапазон
BuyLevel = DOpen + Range*x;//уровень покупки
ShortLevel = DOpen -Range*x;//уровень шорта
Buy = H >= BuyLevel & L<BuyLevel;// покупка если максимум выше уровня покупки
BuyPrice = BuyLevel; // по цене уровня покупки
Short = L <=ShortLevel& B>ShortLevel;
ShortPrice = ShortLevel;
Sell = Cover = 0;
ApplyStop(stopTypeLoss, stopModePoint, Range/2, ExitAtStop = 1); // стоп 50% вчерашнего диаппазона
ApplyStop(stopTypeProfit, stopModePoint, Range/2, ExitAtStop = 1);
Equity(1);
Sell = Sell OR Short;

Так Confused

Да.
sas55 писал(а):

А как робот воспримет условие Sell = Cover = 0; и не надо прописывать увеличение позиции была 1,(-1,-1) стала -1
Lots = 1; // сколько лотов желаете торговать

Код AFL выполняется последовательно, по мтрокам сверху вниз. Спера был Sell такой, потом стал другой.
Увеличение позиции прописывать не надо. Просто станет 2 сделки обычным размером. Одна закроет позу, а вторая откроет противоположную. ID же у них разный.

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


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

СообщениеДобавлено: Ср Апр 08, 2009 4:54 pm Ответить с цитатой Вернуться к началу

Только вероятно такую- же фигню надо сделать и для Cover

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



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

СообщениеДобавлено: Ср Апр 08, 2009 4:58 pm Ответить с цитатой Вернуться к началу

Цитата:
Только вероятно такую- же фигню надо сделать и для Cover

Да сделал спасибо,но вылезла другая фигня- быть как если позиции нет Surprised
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

СообщениеДобавлено: Ср Апр 08, 2009 5:13 pm Ответить с цитатой Вернуться к началу

sas55 писал(а):
Цитата:
Только вероятно такую- же фигню надо сделать и для Cover

Да сделал спасибо,но вылезла другая фигня- быть как если позиции нет Surprised

Во я балбес. Ведь чуствую, что не дописал чего то.
После Sell = Sell OR Short;
надо опять Equity(1);
Тогда лишний Sell (когда лонга не было) не пройдет, потому, что Ами решит, что селить нечего.

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



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

СообщениеДобавлено: Ср Апр 08, 2009 5:33 pm Ответить с цитатой Вернуться к началу

Цитата:
Во я балбес. Ведь чуствую, что не дописал чего то.
После Sell = Sell OR Short;
надо опять Equity(1);
Тогда лишний Sell (когда лонга не было) не пройдет, потому, что Ами решит, что селить нечего.

Балбес это я - ты Сансей (ОС) Very Happy
Всё работает как часы (китайские) Razz
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

СообщениеДобавлено: Ср Апр 08, 2009 8:56 pm Ответить с цитатой Вернуться к началу

Только не Китайские а Польские Smile

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



Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия

СообщениеДобавлено: Чт Апр 23, 2009 8:31 am Ответить с цитатой Вернуться к началу

А как можно подравить код, чтобы смотреть пробитие только диапазона первого часа 10:30-11:30?

_________________
Антон
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Апр 23, 2009 8:47 pm Ответить с цитатой Вернуться к началу

Сначала находим бар время которого 11:30 и бар начала дня
bar = TimeNum() == 113000;
begin = Data() != Ref(Data(), -1);
Потом находим максимум и минимум с начала дня
maxim = highestsince(begin, H);
minimum = lowestsince(begin, L);

потом находим значения максимума/минимума с начала дня в 11:30

max1130 = valuewhen(bar, maxim);
min1130 = valuewhen(bar, minimum);

Собственно все. экстремумы достигнутые к 11:30 найдены. Можно смотреть пробитие...

Ничего не проверял. Все писал по памяти. Возможно и ошибся где.

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



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

СообщениеДобавлено: Вс Май 03, 2009 6:21 pm Ответить с цитатой Вернуться к началу

И снова здравствуйте
Код:
x =Optimize("x", 0.6, 0.1, 1, 0.1);//определяет уровень buy/short, дефолт 60% от вчерашнего диапазона
DH = TimeFrameGetPrice( "H", inDaily,-1,expandFirst);//Максимум вчерашнего дня
DL = TimeFrameGetPrice( "L", inDaily,-1,expandFirst);//минимум вчерашнего для
DOpen = TimeFrameGetPrice( "O", inDaily, 0, expandFirst); // сегодняшнее открытие
Range = DH - DL; // вчерашний диапазон
BuyLevel = DOpen + Range*x;//уровень покупки
ShortLevel = DOpen -Range*x;//уровень шорта
Buy = H >= BuyLevel & L<BuyLevel;// покупка если максимум выше уровня покупки
BuyPrice = BuyLevel; // по цене уровня покупки
Short = L <=ShortLevel& B>ShortLevel;
ShortPrice = ShortLevel;
Sell = Cover = 0;
ApplyStop(stopTypeLoss, stopModePoint, Range/2, ExitAtStop = 1); // стоп 50% вчерашнего диаппазона
ApplyStop(stopTypeProfit, stopModePoint, Range/2, ExitAtStop = 1);
Equity(1);
Sell = Sell OR Short;

периодически возникает проблема,что после срабатывания стопа система
не входит в позу, т.е. у меня сегодня сработало условие BuyLevel=DOpen+Range*x; Buy=H>=BuyLevel&L<BuyLevel затем стоп ApplyStop(stopTypeLoss,stopModePoint,Range*y,1),далее цена пошла вверх и день закончился
При открытии следующего дня должна сработать покупка согласно условию:
BuyLevel=DOpen+Range*x;
Buy=H>=BuyLevel&L<BuyLevel
но нет
Видимо система ориентируется на прошлое пересечение
BuyLevel=DOpen+Range*x; и т.к. не было перечения сверху вниз
и не делает покупки считая,что не было нового пересечения
Надо сделать так,что если позы нет должно быть действие согласно условию на каждом новом открытии дня.
И ещё не могу понять разницу действия
BuyPrice=BuyLevel OR ShortPrice=ShortLevel;
и
BuyPrice=BuyLevel ;
ShortPrice=ShortLevel;
Question Помогите понять спс Embarassed
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
sas55



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

СообщениеДобавлено: Вс Май 03, 2009 7:07 pm Ответить с цитатой Вернуться к началу

Цитата:
периодически возникает проблема,что после срабатывания стопа система
не входит в позу, т.е. у меня сегодня сработало условие BuyLevel=DOpen+Range*x; Buy=H>=BuyLevel&L<BuyLevel>=BuyLevel&L<BuyLevel
но нет
Видимо система ориентируется на прошлое пересечение
BuyLevel=DOpen+Range*x; и т.к. не было перечения сверху вниз
и не делает покупки считая,что не было нового пересечения
Надо сделать так,что если позы нет должно быть действие согласно условию на каждом новом открытии дня.
И ещё не могу понять разницу действия
BuyPrice=BuyLevel OR ShortPrice=ShortLevel;
и
BuyPrice=BuyLevel ;
ShortPrice=ShortLevel;
Question Помогите понять спс Embarassed

это к проблеме

_________________
"Если мы выиграем на финансовом фронте, то мы выиграем всё" В.И.Ленин
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen