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



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

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

Всем привет.

В стратегии планирую использовать 2 таймфрейма - минутки и пятиминутки. Написал код без изменения таймфреймов под базовый фрейм 5 минут - всё работает ок.
Задал базовый тайм фрейм 1 мин., переписал соответствующим образом код, чтобы из минуток делал пятиминутки.
Запустил - результат другой (((
Никак не могу понять в чём проблема, где ошибка.
Помогите, пожалуйста, разобраться.

Код под базовый фрейм 5 минут:
-------------------------

CondCrossPrice1 = Cross(EMA(Close,25),Close) AND
EMA(Ref(Close,-1),25) > EMA(Close,25);

Cond1 = EMA(Ref(Close,-1),10) > EMA(Close,10);

SellSignal = Cond1 AND CondCrossPrice1;

Sell = SellSignal;
--------------------------

Код под базовый фрейм 1 минута:
-------------------------
Price5min1 = TimeFrameCompress( Close, in5Minute, mode = compressLast);
Price5min = TimeFrameExpand( Price5min1, in5Minute, mode = expandLast);

CondCrossPrice1 = Cross(EMA(Price5min,25),Price5min) AND
EMA(Ref(Price5min,-1),25) > EMA(Price5min,25);

Cond1 = EMA(Ref(Price5min,-1),10) > EMA(Price5min,10);

SellSignal = Cond1 AND CondCrossPrice1;

Sell = SellSignal;
--------------------------


Последний раз редактировалось: MSH (Вт Авг 02, 2011 5:52 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

Могет так попробовать?
Код:

TimeFrameSet(in5Minute);
Price5min1 = Close;
TimeFrameRestore();
Price5min= TimeFrameExpand(Price5min1 , in5Minute, expandFirst);
Посмотреть профиль Отправить личное сообщение ICQ Number
MSH



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

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

Пробовал - не помогает, результат такой же ((

P.S. В последней строке, наверное, имеется ввиду expandLAST, да? С expandFirst вылезают какие-то милиардные прибыли...
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

А, ну да, у тебя же тут по клозам сигналы. expandLast
Насчет несовпадения. С чего ты взял что ЕМА 25 периода, построенная по 5минутным клозам должна совпасть с ЕМА25, построенная по минуткам, где клозы - 5минутные?
Возьмем к примеру ЕМА3.
5 минут: исходные данные 1,2,3 - получим 1 точку ема в конце
1 минута: исходные данные: 1,1,1,1,1,2,2,2,2,2,3,3,3,3,3 - тут мы получим для нашей ЕМА3 аж 13 точек, и они точно не будут совпадать с той одной для 5ти минутного фрейма.
Посмотреть профиль Отправить личное сообщение ICQ Number
MSH



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

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

Да, ты прав, спасибо Smile
Я ещё только вникаю в язык и до конца не разобрался...
Пробовал ещё вот так, тоже выдаёт другой результат:
---------------------
TimeFrameSet(in5Minute);

CondCrossPrice1 = Cross(EMA(Close,25),Close) AND
EMA(Ref(Close,-1),25) > EMA(Close,25);

Cond1 = EMA(Ref(Close,-1),10) > EMA(Close,10);

SellSignal = Cond1 AND CondCrossPrice1;

Sell = SellSignal;

TimeFrameRestore();
---------------------
Как же быть? Как правильно написать? Что-то я окончательно запутался...
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

Попробуй вывести стрелки с операциями бай/селл на график и глянь что показывает - думаю найдешь ошибку.
Код:

PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorGreen,0,L,-12); // рисуем стрелку ЛОНГ         
PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed,0,H,-28); // рисуем стрелку выхода из ЛОНГ       
PlotShapes(IIf(Short, shapeHollowDownArrow,shapeNone),colorRed,0,H,-12); // рисуем стрелку ШОРТ
PlotShapes(IIf(Cover,shapeHollowUpArrow,shapeNone),colorGreen,0,L,-28); // рисуем стрелку выхода из ШОРТ
Посмотреть профиль Отправить личное сообщение ICQ Number
MSH



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

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

Попробовал - ничего не понял Smile
И возник новый вопрос.
При выведении стрелок кодом, как указано в пред. сообщении, они выводятся на график не все почему-то (т.е. по графику эквити видно, что входит\выходит, но на графике цены стрелки не рисует).
А вот когда в настройках указываешь "show trading arrows - yes", то показывает все.
Как такое вообще возможно?
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

Странно что стрелки не все рисует, код стопудовый.. Слух, а где ты откопал эту опцию show trading arrows - yes? Впервые про нее слышу Smile Гляну как у себя настроено.
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

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

Это не функция. Это опция графика. Когда по результатам теста смотришь трейдинг арроу они могут быть отображены не на всех пане.
http://www.amisite.ru/begin/chart.htm в конце....

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



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

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

А, понял почему не все стрелки рисует - этот код не отображает стопы Smile
И сразу новый вопрос - а как нарисовать выход по стопу? Confused
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Ср Июл 27, 2011 2:58 pm Ответить с цитатой Вернуться к началу

Опцию нашел - у меня тож стоит Yes. Насчет стрелок по стопам? Разве эти 2 строчки не должны как раз за это отвечать?
Код:
PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed,0,H,-28); // рисуем стрелку выхода из ЛОНГ 
PlotShapes(IIf(Cover,shapeHollowUpArrow,shapeNone),colorGreen,0,L,-28); // рисуем стрелку выхода из ШОРТ
Посмотреть профиль Отправить личное сообщение ICQ Number
MSH



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

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

Насколько я понял, эти стрелки появляются, если есть событие Sell или Cover. Видимо ApplyStop при срабатывании генерирует не sell или cover а событие с другим названием. Confused
На графике у меня входы отображены, а выходы нет. Выходы у меня как раз по стопам. Поэтому и напрашивается такой вывод.
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

Мб.. У меня в коде все сигналы ручками прописываются, встроенными функциями Ами вообще пользуюсь по минимуму.
Хотя вообще странно. У тебя же в коде выше есть сигнал Sell. Или ты еще в доплнение к нему используешь какой-то другой стоп?
Посмотреть профиль Отправить личное сообщение ICQ Number
MSH



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

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

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

В коде использовал два стопа:

ApplyStop(stopTypeLoss, stopModePoint, Stop, ExitAtStop = 1, volatile = 0, ReEntryDelay = 0 ); //стоплосс
ApplyStop(stopTypeProfit, stopModePoint, Take, ExitAtStop = 1, volatile = 0, ReEntryDelay = 0 ); //тейкпрофит
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

Аха, я вообще ВСЕ делаю в цикле - лично мне так намного понятней чо происходит ваще Very Happy Да и дебажить проще, чем пытаться понять как работает конкретная функция и насколько криво. Smile
Для меня еще 1 плюс - чем меньше встроенных функций я испльзую, тем легче могу перенести код системы на какой то другой язык.
Но скорость канеш падает в разы... Для меня впрочем это пока не очень важно.
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen