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


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

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

Это я ошибся. Торопился. Бывает.

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



Зарегистрирован: 08.04.2008
Сообщения: 24
Откуда: Астрахань

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

Доброго времени суток!
прошу помощи, задумал потестить системку, работающую на двух ТФ. Смысл такой- на график наложены 2 ема, сигналы поступают при их пересечении, это на меньшем ТФ (15мин), на большем же ТФ эти же (или такие же) ема выступают в роли фильтра, т.е. если они пересечены например в лонг, то на меньшем ТФ обрабатываются только сигналы "лонг" и т.п.
Написал код, но что то видимо недодумал, только начал расбираться с языком, и фильтрация не работает , т.е рисуются все пересечения ема на меньшем ТФ...

Код:

TimeFrameSet(in15Minute);
ema_slow15=EMA(Close,10);
ema_bistr15=EMA(Ref(Open,-2),7);

TimeFrameSet(inHourly);
ema_slow60=EMA(Close,10);
ema_bistr60=EMA(Ref(Open,-2),7);

TimeFrameRestore();

Plot( TimeFrameExpand( ema_slow15, in15Minute), "ema_slow15", colorGreen );
Plot( TimeFrameExpand( ema_bistr15, in15Minute), "ema_bistr15", colorRed );
Plot( TimeFrameExpand( ema_slow60, inHourly), "ema_slow60", colorGreen,styleDots );
Plot( TimeFrameExpand( ema_bistr60, inHourly), "ema_bistr60", colorRed,styleDots );


//Cond_long=ema_bistr60<ema_slow60;
//Cond_short=ema_bistr60>ema_slow60;
trade_cond = IIf( ema_bistr60<ema_slow60, 1, 0 );

Buy=Cross(ema_slow15,ema_bistr15) AND trade_cond=1;
Sell=0;
Short=0;
Cover=0;
Buy=ExRem( Buy, Sell);

PlotShapes(IIf(Buy,shapeUpArrow,0),5,0,L,-15);


плиз, если не затруднит, обьясните что тут не так?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

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

Я бы так написал
Код:

TimeFrameSet(in15Minute);
ema_slow15=EMA(Close,10);
ema_bistr15=EMA(Ref(Open,-2),7);
TimeFrameRestore(); // Томаш рекомендует каждый раз восстанавливать фрейм
ema_slow15 = TimeFrameExpand( ema_slow15, in15Minute);
ema_bistr15 = TimeFrameExpand( ema_bistr15, in15Minute);

TimeFrameSet(inHourly);
ema_slow60=EMA(Close,10);
ema_bistr60=EMA(Ref(Open,-2),7);
TimeFrameRestore();
ema_slow60 = TimeFrameExpand( ema_slow60, inHourly);
ema_bistr60 = TimeFrameExpand( ema_bistr60, inHourly);

trade_cond = ema_bistr60 < ema_slow60;
Buy = Cross(ema_slow15,ema_bistr15) AND trade_cond;
Sell = 0;
Short = 0;
Cover = 0;
Buy=ExRem( Buy, Sell);

Plot( ema_slow15, "ema_slow15", colorGreen );
Plot( ema_bistr15, "ema_bistr15", colorRed );
Plot( ema_slow60, "ema_slow60", colorGreen,styleDots );
Plot( ema_bistr60, "ema_bistr60", colorRed,styleDots );

PlotShapes(Buy*shapeUpArrow, 5 , 0 , L, -15);

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



Зарегистрирован: 08.04.2008
Сообщения: 24
Откуда: Астрахань

СообщениеДобавлено: Ср Апр 09, 2008 9:53 am Ответить с цитатой Вернуться к началу

О, спасибо, за оперативный ответ!
я тут полазил еще по форуму, ну и сделал вот так:
Код:

RoundLotSize = 1;
MarginDeposit = 1;
 

TimeFrameSet(in15Minute);
ema_slow15=EMA(Close,10);
ema_bistr15=EMA(Ref(Open,-2),7);
TimeFrameRestore(); // Томаш рекомендует каждый раз восстанавливать фрейм
ema_slow15 = TimeFrameExpand( ema_slow15, in15Minute);
ema_bistr15 = TimeFrameExpand( ema_bistr15, in15Minute);

TimeFrameSet(inHourly);
ema_slow60=EMA(Close,10);
ema_bistr60=EMA(Ref(Open,-2),7);
TimeFrameRestore();
ema_slow60 = TimeFrameExpand( ema_slow60, inHourly);
ema_bistr60 = TimeFrameExpand( ema_bistr60, inHourly);

trade_long = ema_bistr60 < ema_slow60;
trade_short = ema_bistr60 > ema_slow60;


Buy = Cross(ema_slow15,ema_bistr15) AND trade_long;
Sell = Cross(ema_bistr15,ema_slow15) OR trade_short;
Short = 0;
Cover = 0;
Buy=ExRem( Buy, Sell);
Sell=ExRem(Sell,Buy);


Plot( ema_slow15, "ema_slow15", colorGreen );
Plot( ema_bistr15, "ema_bistr15", colorRed );



PlotShapes(Buy*shapeUpArrow, 5 , 0 , L, -15);
PlotShapes(Sell*shapeDownArrow, 4 , 0 , H, -15);
col = IIf( trade_long, colorGreen, colorRed );
Plot( Close, "Price", col, styleBar );

щас буду тестить..
еще раз пасиба Smile
Посмотреть профиль Отправить личное сообщение ICQ Number
Sergiovy



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

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

000 писал(а):
Вот. Правда в тестере не гонял. Возможны некоторые ошибки в коде, но логика точно правильная.
Код:

// Определяем фрейм
x1 = 0;
x2 = 0;
x3 = 0; // надо задать реальные границы переключения фреймов

ИТД, ...
            inMarket = 1;
            sys4 = 1;
            Buy[i] = Buy4[i];
         }
      }
   }
}


Здравствуйте, Господа!
Очень понравилась идея переключения условий. Мне нужна была похожая, но в голову ничего не лезло, особенно с циклами...
Попробовал засунуть код в Ами, немного переделал, вылезли вот какие проблемы:
Сгнал Buy не срабатывает по условиям, а всегда появляется сразу после сигнала sell.
у меня условия конечно другие, но я их отдельно выводил в качестве индикатора, и они сами по себе работают четко. (условия)
условие самое простое - пересечение ценой сверху средней.
А Сам сигнал Buy появляется там, где до средней этой очень далеко, но зато сразу после сигнала Sell...
Ест-нно цена срабатывания не средняя, а close.

Еще я не нашел место в цикле, куда ставить команду Exrem - если неправильно поставить, то она влияет на количество позиций в тесте, или вообще не работает цикл...

Если можно, напишите, я правильно понимаю, что условия определяются режимом (Mode) , конкретный спусковой крючок, это например Buy1, если режим 1.
sys 1 это просто для идентификации - какая из систем ( какой именно Buy) будет работать

Глобально, наверное всем будет интересно увидеть каркас, который можно наращивать или там сокращать в зависимости от необходимости.
Кроме команд Buy/Sell, Short/Cover, внутри цикла надо бы вставить установку стопа, его перенос в точку б/у,

На словах это может выглядеть так:
Есть разные условия входов и выходов, а также стопов для разных ситуаций, например можно взять 3 ситуации:
покупка, при отражении от 3-х разных средних (150,27,9)
Конечно величины оптимальных профитов или стопов будут разными, если входы были разные, и выходы тоже разные в зависимомости от входов. Есть также продажа например при отражении от таких же средних... ну и то же самое про стопы, и про выходы...
Вроде бы предложенный цикл подходит, но т.к. я слаб в циклах, то не смог добиться того, чего писал выше.

Есть код, но приводить не стал - он достаточно большой.
Хорошо то, что его можно отлаживать по частям. Но пока не работает сам механизм выбора...
Если можно, проверьте идею с переключениями,
Если необходимо могу попробовать преобразовать переключатель в болванку, чтобы Вам легче было - но основа - в этом топике., только условия не разные фреймы а разные типы входов...
Если есть какие доп вопросы - плз.
На базе такого шаблона можно строить совершенно разные системы, в т.ч. и сращивать как бы несращиваемое. Есть условия для канала - применяем систему канальную, если тренд вверх - то трендовую, если контр трендовый вход - только опишите условия, , и вперед, также можно пробовать входить на гэпах, ну и кому чего взбредет...
Эта штука могла бы быть универсальной основой МТС.
Как только получится - можно браться за автомат...
Но приказами то надо управлять как я понимаю из цикла - его подгрупп, в зависимости от режима, так?
Еще раз, если нужен сам код - напишите -выложу болванку ( её у меня нет, а есть адаптированная к себе, но переделаю...)
Правда она не работает, но это как я понимаю от "тупости", а не от того, что идея плохая или нереализуемая...
Заранее благодарен,
S.Y.

_________________
"Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен
Посмотреть профиль Отправить личное сообщение
Sergiovy



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

СообщениеДобавлено: Вт Апр 15, 2008 9:17 pm Ответить с цитатой Вернуться к началу

Сгнал Buy не срабатывает по условиям, а всегда появляется сразу после сигнала sell.

---Когда поставил команду exrem туда же куда и buy[i]...
цена покупки в тестере стала появляться по формуле
- видимо надо ставить такие команды в каждый подмодуль mode
-Насчет Sellprice[i]=Sellprice1[i] не получается, т.к. у меня выход основан на цене входа +профит, а цена входа определена в цикле позже ( моя версия)

Еще я не нашел место в цикле, куда ставить команду Exrem - если неправильно поставить, то она влияет на количество позиций в тесте, или вообще не работает цикл...
--- Вроде нашел - см вверху

Копаем дальше, подключайтесь Smile

_________________
"Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Sergiovy писал(а):

Сгнал Buy не срабатывает по условиям, а всегда появляется сразу после сигнала sell.
у меня условия конечно другие, но я их отдельно выводил в качестве индикатора, и они сами по себе работают четко. (условия)
условие самое простое - пересечение ценой сверху средней.

В примере который я написал условия покупки тоже пересечение цены и средней.
Sergiovy писал(а):

Еще я не нашел место в цикле, куда ставить команду Exrem - если неправильно поставить, то она влияет на количество позиций в тесте, или вообще не работает цикл...

Exrem там вообще не нужен. В цикле после покупки отсекаются все сигналы на покупку пока не будет закрытия.
Sergiovy писал(а):

Если можно, напишите, я правильно понимаю, что условия определяются режимом (Mode) , конкретный спусковой крючок, это например Buy1, если режим 1.
sys 1 это просто для идентификации - какая из систем ( какой именно Buy) будет работать

Да. Когда система не в рынке сначала проверяется какая из систем (таймфреймов) будет работать в данный момент. Это зависит от Mode. Если осуществляется вход, то запоминается эта система (при помощи sys1, sys2, и т.д.) и затем проверяются только выходы по ней.
Sergiovy писал(а):

Глобально, наверное всем будет интересно увидеть каркас, который можно наращивать или там сокращать в зависимости от необходимости.
Кроме команд Buy/Sell, Short/Cover, внутри цикла надо бы вставить установку стопа, его перенос в точку б/у,

На словах это может выглядеть так:
Есть разные условия входов и выходов, а также стопов для разных ситуаций, например можно взять 3 ситуации:
покупка, при отражении от 3-х разных средних (150,27,9)
Конечно величины оптимальных профитов или стопов будут разными, если входы были разные, и выходы тоже разные в зависимомости от входов. Есть также продажа например при отражении от таких же средних... ну и то же самое про стопы, и про выходы...
Вроде бы предложенный цикл подходит, но т.к. я слаб в циклах, то не смог добиться того, чего писал выше.

Такую болванку написать это целый огромный труд. Тем более, что возможны совершенно разные ваианты (переносов стопов, трейлингов, профитов и т.п.)
Если осуществлять выход только по ордерам Sell = cover = 0; , то все наоборот урощается. Цикл тогдавообще не нужен. Просто входим и устанавливаем стопы при помощи ApplyStop() задавая параметры в зависимости от Mode в момент входа.

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


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

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

Sergiovy писал(а):
Сгнал Buy не срабатывает по условиям, а всегда появляется сразу после сигнала sell.

---Когда поставил команду exrem туда же куда и buy[i]...
цена покупки в тестере стала появляться по формуле
- видимо надо ставить такие команды в каждый подмодуль mode
-Насчет Sellprice[i]=Sellprice1[i] не получается, т.к. у меня выход основан на цене входа +профит, а цена входа определена в цикле позже ( моя версия)

Еще я не нашел место в цикле, куда ставить команду Exrem - если неправильно поставить, то она влияет на количество позиций в тесте, или вообще не работает цикл...
--- Вроде нашел - см вверху

Копаем дальше, подключайтесь Smile

Не видя конкретного кода и не зная идеи вообще трудно что-либо сказать

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



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

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

Привет Олег!!! Подскажи плз, почему в этом коде условия Buy = HBuy, Sell = HSell выполняются в Х-часов 15 минут не зависимо от настроек в базе данных. У меня в БД начало торгов указано с 10:30, а сделки в случае если условие истинно происходят в первые Х часов 15 минут.
Код:

TimeFrameSet(inHourly);
H_ma = MA(C,15);
HBuy = Cross(C,MA(C,15));
HSell = Cross(MA(C,15),C);
TimeFrameRestore();
H_ma = TimeFrameExpand(H_ma,inHourly);
HBuy = TimeFrameExpand(HBuy, inHourly);
HSell = TimeFrameExpand(HSell, inHourly);

TimeFrameSet(in15Minute);
M_ma = MA(C,15);
MBuy = Cross(C,MA(C,15));
MSell = Cross(MA(C,15),C);
TimeFrameRestore();
M_ma = TimeFrameExpand(M_ma, in15Minute);
MBuy = TimeFrameExpand(MBuy, in15Minute);
MSell = TimeFrameExpand(MSell, in15Minute);

Buy = HBuy OR MBuy AND M_ma > H_ma;
Sell = HSell OR MSell;

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

Plot(C,"c",colorBlack,styleCandle);
Plot(H_ma,"H_ma",colorBlue,styleLine);
Plot(M_ma,"M_ma",colorRed,styleLine);
PlotShapes(IIf(Buy , shapeUpArrow, shapeNone) ,colorGreen, 0,L,-25);
PlotShapes(IIf( Sell, shapeDownArrow, shapeNone) ,colorOrange, 0,H,-25);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Напиши плиз на каком фрейме тестируешь и чем конкретно тебя не устраивает Х:15 Question

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



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

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

Тестирую на 15 минутном интервале, часовая система дает сигналы в Х:30 мин, хотелось бы чтобы соответствовало. В чем косяк не въеду…
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

На 15 минутках свечка которая закрывается в 30 мин имеет время Х:15 в момент закрытия этой свечки как раз становится известно как закрылась часовая свечка. Вот поэтому.....

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



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

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

Блин, правильно, на малые фреймы редко переключаюсь, не учел, спасибо.
Посмотреть профиль Отправить личное сообщение
DMITRY



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

СообщениеДобавлено: Чт Дек 16, 2010 10:45 pm Ответить с цитатой Вернуться к началу

Привет Олег! Подскажи плз как правильно записать, в этом коде покупка должна происходить:
1. Если часовой клоуз пересек хай прошлой 5-той свечи.
2. Если сработал сигнал продажи на 15-ти минутном фрейме, но при этом сохранился сигнал часовой покупки и выполнилось условие покупки на 15-ти минутном фрейме.
На картинке отметил где должен быть повторный вход.
Код:
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);

TimeFrameSet(in15Minute);

Mh = Ref(H,-5);
Ml = Ref(L,-5);

MBuy = Cross(C,Mh);
MShort = Cross(Ml,C);

TimeFrameRestore();

Mh = TimeFrameExpand(Mh, in15Minute);
Ml = TimeFrameExpand(Ml, in15Minute);

MBuy = TimeFrameExpand(MBuy, in15Minute);
MShort = TimeFrameExpand(MShort, in15Minute);

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(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);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Цитата:
1. Если часовой клоуз пересек хай прошлой 5-той свечи.

Ну с этим то проблем нет.
Код:
Buy = HBuy;

Цитата:
2. Если сработал сигнал продажи на 15-ти минутном фрейме, но при этом сохранился сигнал часовой покупки и выполнилось условие покупки на 15-ти минутном фрейме.

А вот тут косяки.
Сам вдумайся. Если сработала продажа на 15 мин., значит Clost ниже Ref(L, -5) и при этом выполнилось условие покупки на 15 мин., значит Close выше Ref(H, -5). Это как?

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen