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


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

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

В общем пойдет. Тут вот в чем трабл.
С тех пор как я перевел часть хелпера утекло очень много воды и если взять новый хелпер, разобрать, подменить в нем уже переведенные страницы старого и перевести еще немного, то получается не очень хорошо т.к. некоторые описания старых функций изменились, В некоторых местах изменились сами функции и т.п. Так что ситуация такая. Надо брать старый, сравнивать с новым, где не изменилось оставлять, где изменилось переводить заново или править... В общем это большая работа....

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



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

СообщениеДобавлено: Чт Сен 19, 2013 1:58 pm Ответить с цитатой Вернуться к началу

я вот как-то своему коду не очень доверяю))

это код для дневного ТФ:
Код:

Buy  = Cover = MA( Foreign( "XXX", "Open", 1) / Foreign ( "YYY", "Open", 1), SmoothRatio) >= Vratio;
Sell = Short = MA( Foreign( "XXX", "Open", 1) / Foreign ( "YYY", "Open", 1), SmoothRatio) <  Vratio ;

BuyPrice = SellPrice = ShortPrice = CoverPrice = Open;


преобразовал его для минуток:
Код:

TimeFrameSet( inDaily ); // change to daily timeframe
ratio = MA( Foreign( "XXX", "Open", 1) / Foreign ( "YYY", "Open", 1), SmoothPeriod);
TimeFrameRestore(); // restore timeframe

Buy  = Cover =  ratio >= Vratio 
             AND IIf( TimeNum() == 093100 , True , False );

Sell = Short = ratio <  Vratio 
             AND IIf( TimeNum() == 093100 , True , False );

BuyPrice = SellPrice = ShortPrice = CoverPrice = Open;


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


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

СообщениеДобавлено: Чт Сен 19, 2013 3:04 pm Ответить с цитатой Вернуться к началу

А кто экспандить будет?
TimeFrameExpand() ???

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



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

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

000 писал(а):
А кто экспандить будет?
TimeFrameExpand() ???


т.е. по идее так правильно должно быть?
Код:

TimeFrameSet( inDaily ); // change to daily timeframe
ratio_daily = MA( Foreign( "XXX", "Open", 1) / Foreign ( "YYY", "Open", 1), SmoothPeriod);
TimeFrameRestore(); // restore timeframe
ratio = TimeFrameExpand(ratio_daily, inDaily);

Plot( ratio_daily, "ratio_daily", colorBlue );
Plot( ratio, "ratio", colorRed );

Buy  = Cover = (ratio >= Vratio AND TimeNum() == 093100) ;

Sell = Short = (ratio <  Vratio AND TimeNum() == 093100) ;

BuyPrice = SellPrice = ShortPrice = CoverPrice = Open;


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


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

СообщениеДобавлено: Пт Сен 20, 2013 8:38 pm Ответить с цитатой Вернуться к началу

Все правильно. Так и должно быть.

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



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

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

000 писал(а):
Все правильно. Так и должно быть.


почему? я что-то где-то забыл?
ratio вообще не меняется на протяжении всего периода.

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


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

СообщениеДобавлено: Вс Сен 22, 2013 1:25 am Ответить с цитатой Вернуться к началу

Ааа. Черт. Ошибся я.
Как то вот так
Код:


FOR1 = SetForeign("XXX");
TimeFrameSet( inDaily ); // change to daily timeframe
 DFOR1 = Open;
TimeFrameRestore();
OpenFOR1 = TimeFrameExpand(DFOR1, inDaily);

RestorePriceArrays();

for2 = SetForeign("YYY");
TimeFrameSet( inDaily ); // change to daily timeframe
 DFOR2 = Open;
TimeFrameRestore();
OpenFOR2 = TimeFrameExpand(DFOR2, inDaily);

RestorePriceArrays();

ratio = MA( OpenFOR1 / OpenFOR2, SmoothPeriod);

Plot( ratio, "ratio", colorRed );

Функция TimeFrameSet переключает фрейм не всех массивов, а только
open(открытие), high(миксимум), low(минимум), close(закрытие), volume(объем), openint(открытый интерес), avg(средняя цена)

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



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

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

000 писал(а):
Ааа. Черт. Ошибся я.
Как то вот так


я дико извиняюсь, но не хочет работать как надо, всеравно MA не сглаживает.

а прорисовывается, тот же ratio_daily из этого(прошлого) кода, но на день смещённый вправо:
Код:

TimeFrameSet( inDaily ); // change to daily timeframe
ratio_daily = MA( Foreign( "XXX", "Open", 1) / Foreign ( "YYY", "Open", 1), SmoothPeriod);
TimeFrameRestore(); // restore timeframe

Plot( ratio_daily, "ratio_daily", colorBlue );
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Сен 22, 2013 8:57 pm Ответить с цитатой Вернуться к началу

В одном окне SmoothPeriod 10 в другом 100

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


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

СообщениеДобавлено: Вс Сен 22, 2013 9:00 pm Ответить с цитатой Вернуться к началу

Да. Имей ввиду, что так ratio сглаживается не на дневках, а на минутках. Если надо на дневках, то не экспандим DFOR1 и DFOR2, расчитываем сглаженное ratio и потом уже его экспандим.

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



Зарегистрирован: 11.01.2013
Сообщения: 19
Откуда: Санкт-Петербург

СообщениеДобавлено: Чт Сен 26, 2013 7:17 pm Ответить с цитатой Вернуться к началу

Олег, как подойти к конструированию такой кодины: есть два ряда (их можно изобразить в виде двух линий), они перескаются/сходятся/расходятся... как написать, что разница между этими рядами значит тем больше, чем дольше эти ряды находятся в трендовом (направленном) состоянии.
???

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


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

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

Для начала неплохо бы определиться с трендом. Самый простой и классический способ бросить на линии мувинги. Чем дольше нет пересечения со средней, тем дольше линия в тренде. Ну а дальше по моему все просто. Узнаем сколько баров прошло от пересечения, берем меньшее из двух значений (от двух линий) и умножаем разницу на это число.

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



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

СообщениеДобавлено: Вс Сен 29, 2013 5:35 pm Ответить с цитатой Вернуться к началу

спасибо, сверху добился, чего хотел)

Код:

Vratio_buy = Optimize("Vratio_buy", 1.1, 0.8, 1.3, 0.02);//opredelyaet urovenj buy/short, defolt 100% ot wcherashnego diapazona
Vratio_sell = Vratio_buy - Optimize("Vratio_sell", 1.1, 0.0, 1.3 - Vratio_buy, 0.02);


тут можно как-то заставить вариировать это значение "1.3 - Vratio_buy", чтоб заработала вторая оптимизация?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Сен 29, 2013 8:37 pm Ответить с цитатой Вернуться к началу

Не, в функцию Optimize() нельзя переменные параметры пихать.

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



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

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

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

как-то так?
Код:

Sell = Buy  = 0;

Short = 1 ;

Cover = Ref ( Short, -1) ;

Short = ExRem( Short, Cover );
Cover = ExRem( Cover, Short );
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen