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



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

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

Я имел в виду что если купили на сигнале часового фрейма, а продали на сигнале 15 мин, при этом сигнала на продажу на часовом фрейме еще не возникло, следовательно мы модем только покупать и если на 15-ти минутках опять Buy, то покупаем.
Я немного поторопился и неудачный пример привел, здесь надо просто добавить переменную в часовом интервале X = C > Hh; а Buy = HBuy OR X AND MBuy; Просто хотел на простом примере.
А вот для торговли на свингах токого выражения как X = C > Hh никак не написать, надо как-то по другому запоминать истинность условия покупки на часовом фрейме, как-то так Buy = HBuy OR X == 1 AND MBuy; , но так не работает, что можно сделать......?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Цитата:
Я имел в виду что если купили на сигнале часового фрейма, а продали на сигнале 15 мин, при этом сигнала на продажу на часовом фрейме еще не возникло, следовательно мы модем только покупать и если на 15-ти минутках опять Buy, то покупаем

Вроде понял.
1. Тебе не надо использовать TimeFrameSet(in15Minute); т.к. меньший фрейм не используется и можно тупо тестить на 15 минутках. Но это к делу не относится.
А так у тебя вроде все нормально написано (или я не правильно понял). Может только на всякий случай скобки влепить
Код:

Buy = HBuy OR (HBuy AND MBuy);
Sell = HShort OR MShort;
Short = HShort OR (HShort AND MShort);
Cover = HBuy OR MBuy;

Цитата:
А вот для торговли на свингах токого выражения как X = C > Hh никак не написать, надо как-то по другому запоминать истинность условия покупки на часовом фрейме, как-то так Buy = HBuy OR X == 1 AND MBuy; , но так не работает, что можно сделать......?

Бррррр. Не понял.Sad Объясняй еще раз.

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



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

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

Например условие:
Код:
Cond1 = C > HHV(H,5);

Если это условие истино на часовом фрейме, то покупаем и таким же условием торгуем в 15-ти минутном фрейме. Вопрос в том как правильно записать условие покупки:
1. Если на часовом фрейме это условие истино, то покупаем.
2. Если на меньшем фрейме сработал сигнал на продажу, но часовой сохранился и далее на меньшем фрейме снова покупка, то покупаем.
Причем необходимо чтобы и на часовом и на 15-ти минутном фрейме убирались все лишние сигналы, Extrem-мились....
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Ну у тебя вроде все так и написано.
Вот посмотри. Твой код. Я его на 15 мин смотрел. Кое что убрал, кое что добавил.Чисто графически сделал снизу ленту. Если красная, о на часовках Short, если зеленая, то на часовках Buy
Код:

TimeFrameSet(inHourly);
  Hh = Ref(H,-5);
  HL = Ref(L,-5);

  HBuy = Cross(C,Hh);
  HShort = Cross(Hl,C);
TimeFrameRestore();

Hh = TimeFrameExpand(Hh, inHourly);
HL = TimeFrameExpand(HL, inHourly);
HBuy = TimeFrameExpand(HBuy, inHourly);
HShort = TimeFrameExpand(HShort, inHourly);


Mh = Ref(H,-5);
Ml = Ref(L,-5);
MBuy = Cross(C, Mh);
MShort = Cross(Ml, C);


Buy = HBuy OR (HBuy AND MBuy);
Sell = HShort OR MShort;
Short = HShort OR (HShort AND MShort);
Cover = HBuy OR MBuy;

Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);
Short = ExRem(Short, Cover);
Cover = ExRem(Cover, Short);

Plot(C,"c",colorBlack,styleCandle);
Plot(1, "", IIf(HBuy, colorGreen, colorRed), styleOwnScale|styleArea, 0, 30);

//Plot(Hh,"Hh",colorGreen,styleLine);
//Plot(Hl,"Hl",colorRed,styleLine);

Plot(Mh,"Mh",colorAqua,styleLine);
Plot(Ml,"Ml",colorOrange,styleLine);

PlotShapes(IIf(Buy , shapeUpArrow, shapeNone), colorLime, 0, L, -25);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone), colorRed, 0, H, -25);
PlotShapes(IIf(Short, shapeHollowDownArrow, shapeNone), colorRed, 0, H, -35);
PlotShapes(IIf(Cover , shapeHollowUpArrow, shapeNone), colorLime, 0, L, -35);

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



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

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

Немного не про то Олег. Сам виноват, не тот пример привел, если не возражаешь начну все сначала. Вот другой код, в этом коде меня так же интересует как правильно написать правила покупки. В тех правилах которые уже имеются меня не устраивает то, что после срабатывания Sell на малом фрейме, не на большом, повторная покупка происходит только в том случае, если на часовом фрейме снова сигнал на покупку в сочетании с малым, т.е. уже игнорируется функция Exrem для часового фрейма, а надо чтобы если часовой фрейм дал сигнал купить, то купить, а потом пока на часовом не появился сигнал продажи торговать на малом фрейме только Buy, Sell.
Код:
TimeFrameSet(inHourly);

HVerx = ValueWhen(H > Ref(H,-1) AND H > Ref(H,1),H,1);
HVniz = ValueWhen(L < Ref(L,-1) AND L < Ref(L,1),L,1);

HBuy = Cross(C,HVerx);
HShort = Cross(HVniz,C);

TimeFrameRestore();

HVerx = TimeFrameExpand(HVerx,inHourly);
HVniz = TimeFrameExpand(HVniz,inHourly);

HBuy = TimeFrameExpand(HBuy, inHourly);
HShort = TimeFrameExpand(HShort, inHourly);

MVerx = ValueWhen(H > Ref(H,-1) AND H > Ref(H,1),H,1);
MVniz = ValueWhen(L < Ref(L,-1) AND L < Ref(L,1),L,1);

MBuy = Cross(C,MVerx);
MShort = Cross(MVniz,C);

Buy = HBuy OR HBuy AND MBuy;
Sell = HShort OR MShort;
Short = HShort OR HShort AND MShort;
Cover = HBuy OR MBuy;

Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Short = ExRem(Short,Cover);
Cover = ExRem(Cover,Short);

Plot(C,"c",colorBlack,styleCandle);

Plot(HVerx,"HVerx",colorGreen,styleLine);
Plot(HVniz,"HVniz",colorRed,styleLine);

Plot(MVerx,"MVerx",colorLime,styleLine);
Plot(MVniz,"MVniz",colorOrange,styleLine);

PlotShapes(IIf(Buy , shapeUpArrow, shapeNone), colorLime, 0, L, -25);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone), colorRed, 0, H, -25);
PlotShapes(IIf(Short, shapeHollowDownArrow, shapeNone), colorRed, 0, H, -35);
PlotShapes(IIf(Cover , shapeHollowUpArrow, shapeNone), colorLime, 0, L, -35);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Т.е. чтобы сигнал покупки на часовом фрейме действовал не только в тот час когда был сигнал, а с часа сигнала на покупку, до часа синала на продажу?

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



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

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

Да, чтобы повторные сигналы игнорировались, а в этом промежутке торговать Buy, Sell на малом фрейм, также с учетом удаления повторяющихся сигналов...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Прямо внутри часового фрейма делаешь тригер. Типа
Код:
HCond = Flip(HBuy, HShort);

Потом его экспандишь и используешь как фильтр. Типа
Код:
Buy = ... AND HCond == 1 AND MBuy;

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



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

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

Все как надо Олег, спасибо Exclamation
Посмотреть профиль Отправить личное сообщение
DMITRY



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

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

Привет. Подскажите плз почему результат бактеста этого кода на 1 минуте ощутимо отличается от 60 минутного…
Код:
TimeFrameSet(inHourly);

Hema = EMA(C,70);

Verx = Cross(C,Hema);
Vniz = Cross(Hema,C);

TimeFrameRestore();

Hema = TimeFrameExpand(Hema,inHourly);

Verx = TimeFrameExpand(Verx,inHourly);
Vniz = TimeFrameExpand(Vniz,inHourly);

Buy = Verx;
Sell = Vniz;
Short = Vniz;
Cover = Verx;

Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Short = ExRem(Short,Cover);
Cover = ExRem(Cover,Short);

Plot(C,"c",colorBlack,styleCandle);
Plot(Hema,"hema",colorBlue,styleLine);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Вот смотри. Вот тут.
Код:

Verx = Cross(C,Hema);

ты смотришь пересечение Close и Hema на минутках и потом переносишь это дело на часы. При этом если внутри часа цена выросле выше Hema и к закрытию опустилась назад, то на часах сигнала не будет совсем т.к. пересечения не было а на минутках при этом пересечение было и оно перенесется на часы... Вот такие дела.

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



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

СообщениеДобавлено: Пн Янв 17, 2011 9:44 am Ответить с цитатой Вернуться к началу

Ничего не понимаю, почему я смотрю пересечение Close и Hema на минутках, разве все эти временные команды не сжимают эту систему в часовой фрейм, результат работы которой можно посмотреть на меньших фреймах. Если нет, то как так сделать, в чем ошибка?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Бррр. Извини. Ща разберусь почему результат разный....

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



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

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

Разница получается из-за различия в количестве сделок при часовом бактесте и 1 минутном (на 1 мин сделок меньше), по непонятной мне причине Hema скачет. Нашел пример ошибки, это минутный график, внизу это картинка кода, вверху отображение стрелок через бактест, снимок с экрана делал через OneNot, также пробовал через Ами, в этом случае Hema сразу перемещается как надо Shocked . Мож звучит тупо, но как есть, что происходит чет не понимаю…..
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Янв 17, 2011 11:51 pm Ответить с цитатой Вернуться к началу

Скорее всего дело вот в чем.
При смене фреймов внутри AFL получается, что данные запаздывают на 1 бар. Дневное закрытие на внутридневном фрейме будет известно только на следующий день. Это сделано чтобы избежать подглядывания в будущее.
См пояснение на картинках.
2 кода
слева
Код:
SetBarsRequired(sbrAll, sbrAll);
TimeFrameSet(inHourly);
  Hema = EMA(C, 70);

  Verx = Cross(C, Hema);
  Vniz = Cross(Hema, C);
TimeFrameRestore();

Hema = TimeFrameExpand(Hema, inHourly);

Verx = TimeFrameExpand(Verx, inHourly);
Vniz = TimeFrameExpand(Vniz, inHourly);

Plot(C,"c",colorBlack,styleCandle);
Plot(Hema, "hema", colorBlue, styleLine);

справа
Код:
SetBarsRequired(sbrAll, sbrAll);
Plot(C,"c",colorBlack,styleCandle);
Plot(EMA(C,70),"hema",colorBlue,styleLine);


SetBarsRequired для того, чтобы отключить квик АФЛ т.к. ЕMA тогда расчитывается точнее.

На первой картнке сравниваются текущие (последние) значения hema и видно что они не равны, а на следующей картинке показано, что текущее значение hema на 15 мин равно предыдущему на часовках.

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen