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



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

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

000 писал(а):
Выходы ТОЛЬКО по стопу или профиту?

Еще немножко посидев, обнаружил, что проблема проявляеся без всякого цикла - линия buyprice смещается по горизонтали в каждом из возможных сигналов Buy - там, где условия совпадают, а надо, чтобы смещалась только в тех местах, где происходит реальный Buy...

Buy=0;
Sell=0;
Short=0;
Cover=0;

// 2 контракта по умолчанию
SetPositionSize( 2, spsShares );

//Фильтр Тренда Long
MID = (H+L+C)/3;
//Оптимизируем наклон средней
//RefOpt=Optimize("Периоды до", -1,-5,-1,1);
RefOpt=-1;
//DiffEMALong=Optimize("Разность средней (Наклон)", 0,-5,5,1);
DiffEMALong=0;
//PerEMALong=Optimize("Опт Период Средней", 144,100,150,1);
PerEMALong=144;
//Оптимизируем величину тэйк профита:
//TP=Optimize("Велич. Опт. Профита",4000,2000,5000,50);
TP=4000;
//Оптимизируем величину Стопа
//BS=Optimize("Опт.Стоп",750,100,1000,100);
BS=750;
//KATR=Optimize("К ATR",3,3,20,1);
KATR=7;
//PATR=Optimize("Пер ATR",14,5,50,1);
PATR=17;

//Условие Тренда вверх
Delta=EMA(MID,PerEMALong)-Ref(EMA(MID,PerEMALong),RefOpt);
TrUp = IIf(Delta>DiffEMALong,1,0);

Cond1 = Cross(H,EMA(MID,PerEMALong));
BuyPrice=ValueWhen(Cond1,EMA(MID,PerEMALong),1)+50;


Buy = TrUp AND Cond1;

//Условия Выхода

SellProfit = IIf(C-BuyPrice>=TP,1,0);
BuyStop = IIf((BuyPrice-L)>=BS,1,0);
//SellStopTrend = NOT TrUp;
//SellStopLLV = IIf(Cross(L,LLVLine-100),1,0);
// Стопы по снижению профита и "пошла не туда" работают плохо...
//SellStop1 = IIf((L<=(BuyPrice-500)),1,0);
//SellStop2 = IIf((H-BuyPrice)>StopPrice,1,0);
ApplyStop(stopTypeTrailing,stopModePoint,KATR*ATR(PATR),True,True);

Sell= BuyStop OR SellProfit;
SellPrice=IIf(SellProfit,BuyPrice+TP,ValueWhen(BuyStop,1)-50);

Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );
Equity(1);
ST=IIf(Sell==4,1,0);
Plot(BuyPrice,"Цена покупки",colorGreen);

Чет увял я немного Sad
Есть какие предложения, как увидеть реальную цену покупки?
Буду все испытывать и результаты докладывать - у меня пока идей нет.
Посмотрел в виде индикатора все переменные (может есть какие скрытые?-не знаю) нет такой, чтобы когда buy? тот который идет в тестер- принимал значение 1, или все равно что, но нужна однозначность...

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


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

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

Sergiovy писал(а):
000 писал(а):
Выходы ТОЛЬКО по стопу или профиту?

Еще немножко посидев, обнаружил, что проблема проявляеся без всякого цикла - линия buyprice смещается по горизонтали в каждом из возможных сигналов Buy - там, где условия совпадают, а надо, чтобы смещалась только в тех местах, где происходит реальный Buy...


Cond1 = Cross(H,EMA(MID,PerEMALong));
BuyPrice=ValueWhen(Cond1,EMA(MID,PerEMALong),1)+50;


Buy = TrUp AND Cond1;

//Условия Выхода

SellProfit = IIf(C-BuyPrice>=TP,1,0);
BuyStop = IIf((BuyPrice-L)>=BS,1,0);
//SellStopTrend = NOT TrUp;
//SellStopLLV = IIf(Cross(L,LLVLine-100),1,0);
// Стопы по снижению профита и "пошла не туда" работают плохо...
//SellStop1 = IIf((L<=(BuyPrice-500)),1,0);
//SellStop2 = IIf((H-BuyPrice)>StopPrice,1,0);
ApplyStop(stopTypeTrailing,stopModePoint,KATR*ATR(PATR),True,True);

Sell= BuyStop OR SellProfit;
SellPrice=IIf(SellProfit,BuyPrice+TP,ValueWhen(BuyStop,1)-50);


Посмотрел в виде индикатора все переменные (может есть какие скрытые?-не знаю) нет такой, чтобы когда buy? тот который идет в тестер- принимал значение 1, или все равно что, но нужна однозначность...


Слушай может я чего и непонимаю, но ....Price у тебя равны не конкретному числу, а условию может в этом проблема еще и знак >= смущает, т.е. на текущем баре при изменении понятно как должно работать условие (не определение цены), но на закрытом и еще не совсем понял зачем ты понапихал везде IIf SellProfit = IIf(C-BuyPrice>=TP,1,0); BuyStop = IIf((BuyPrice-L)>=BS,1,0); Sell= BuyStop OR SellProfit; мне кажется, что и без них условие будет понятно ами, зачем усложнять.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Sergiovy



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

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

Цитата:
Слушай может я чего и непонимаю, но ....Price у тебя равны не конкретному числу, а условию может в этом проблема еще и знак >= смущает, т.е. на текущем баре при изменении понятно как должно работать условие (не определение цены), но на закрытом и еще не совсем понял зачем ты понапихал везде IIf SellProfit = IIf(C-BuyPrice>=TP,1,0); BuyStop = IIf((BuyPrice-L)>=BS,1,0); Sell= BuyStop OR SellProfit; мне кажется, что и без них условие будет понятно ами, зачем усложнять.

Здравствуй, Юрий!
Пихал потому, что не получается,, это слабые остатки от того, что пытался сделать. Конечно проблема в том, что прайс = условию, а условие меняется.
Мне надо получить цены входов в позицию лонг, как последовательность цифр.
эти цены должны быть равны средней в момент пересечения
Этих цен должно быть столько, сколько тестер показывает строчек или рисует стрелочек, а не столько сколько было пересечений
(Тестер берет в расчет только одно первое условие и держит его до получения сигнала селл, так?
Я хочу также.
Не получается ни хрена!, Ни Exrem, ни Equity, ни еще 10 вариантов не дают желаемого:
где я могу взять для расчетов текущую цену входа в позицию лонг.
Пробовал счетчик от события Buy- нет.
Хотя само событие рисуется нормально, т.е. совпадает со стрелочками тестера, и пропускает другие ненужные пересечения между бай и селл...
Вот упростил до безобразия:
Можно смотреть в новом окне-надо забанить цену, тогда видно бай
Если смотреть на графике - надо забанить бай, тогда видно цену.
Т.к. в отдельном окне само не обновляется, при изменениях, то можно смотреть одновременно..
SetPositionSize( 2, spsShares );
MID = (H+L+C)/3;
RefOpt=-1;
DiffEMALong=0;
PerEMALong=144;
TP=4000;
BS=1000;
//Условие Тренда вверх
Delta=EMA(MID,PerEMALong)-Ref(EMA(MID,PerEMALong),RefOpt);
TrUp = IIf(Delta>DiffEMALong,1,0);
//Условия покупки
Cond1 = Cross(EMA(MID,PerEMALong),L);
Buy = TrUp AND Cond1;
Count=BarsSince(Buy);
BP=Ref(EMA(MID,PerEMALong),-Count);
BuyPrice = BP;
//BuyPrice = EMA(MID,PerEMALong);

SellProfit = Cross(H,(BuyPrice+TP));
Sell= SellProfit;
SellPrice=BuyPrice+TP;
Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );

//Plot(Buy,"Сигналы покупки",colorGreen);
Plot(BuyPrice,"Цена покупки",colorGreen);
Сейчас можно добавить текст как индикатор на график ( в то же окно)
Тестер тоже работает - на доходность прошу не смотреть, это просто пример.
Задача то простая, войти на пересечении по цене средней, и выйти по профиту. ВСЁ.
Это для фьючерса на индекс ртс 5 мин.
Для любого другого графика я думаю надо подобрать среднюю, просто чтобы было несколько пересечений для эксперимента.
Кстати, Я тоже хочу ставить приказы из Квика, и совсем не по рынку. А Это предполагает модход аналогичный описанному выше, т.е. выход по профиту считая от цены покупки ( вот ее - то я никак и не поймаю)
Не может быть такого, чтобы в тестере этого не было. Это очень старая и стандартная стратегия.
Посмотри плз. Жалко времени столько убил, может другой взгляд чего увидит. Мне поче му то сильно кажется, что мало кто смотрел на цены открытия и закрытия позиций в тестере, а там много чего "интересного" и непонятного...
Конечно есть Шанс, что и я чего то не догоняю...
Но разве задача не простая? А работа основная - построение каркаса - стоит Sad[/quote]

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


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

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

Если выход осуществляется только по стопам, то никакие цыклы вообще не нужны и колдовать с BuyPrice, sellPrice ... вообще не надо.
Пишем только правила покупки, а выходы все осуществляем при помощи ф-ции ApplyStop()
Задавая amount в момень входа в зависимости от mode и установив опцию volatile = False фиксируешь уровень стопа в момент входа. И все эти геморои с расчетом цены входа больше не нужны.

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



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

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

000 писал(а):
Если выход осуществляется только по стопам, то никакие цыклы вообще не нужны и колдовать с BuyPrice, sellPrice ... вообще не надо.
Пишем только правила покупки, а выходы все осуществляем при помощи ф-ции ApplyStop()
Задавая amount в момень входа в зависимости от mode и установив опцию volatile = False фиксируешь уровень стопа в момент входа. И все эти геморои с расчетом цены входа больше не нужны.

... Олег, я хочу хоть чего ниб работающего..
Уже думаю, может у меня с компои глюк?
Пробовал и со стопом.Но:
Без команды sell тестер не работает.
Чтобы просто, вход по пересечению по известной цене, не буду говорить по какой. Sad
А выход по стопу, но в тестере должно быть цена входа+ профит.
Так? Нету такого. Самое простое, что получается - вход остается один..... выходит точно по нужной цене, а снова не входит. Я думаю, что это потому, что, чтобы нейтрализовать селл, я написал sell=245000
то есть цена, которой не было вообще, так тестер входит один раз, и выходит по стопу, но снова уже не заходит, я думаю ждет селл...
Если можно, простой пример выхода, работающий в тестере, когда цена выхода в тестере, равна цена входа + любой профит.
Я так понимаю, это несколько строчек...
Мой последний вариант для понимания:
SetPositionSize( 2, spsShares );
MID = (H+L+C)/3;
RefOpt=-1;
DiffEMALong=0;
PerEMALong=144;
TP=500;
BS=1000;

//Условие Тренда вверх
Delta=EMA(MID,PerEMALong)-Ref(EMA(MID,PerEMALong),RefOpt);
TrUp = IIf(Delta>DiffEMALong,1,0);


//Условия покупки
Buy = TrUp AND H>EMA(MID,PerEMALong) AND L<EMA(MID,PerEMALong);
BuyPrice = EMA(MID,PerEMALong);

//Cond1 = Cross(L,EMA(MID,144));
//Buy = TrUp AND Cond1;
//BuyPrice = BuyPrice = EMA(MID,PerEMALong);

Sell=IIf(Cross(H,245000),1,0);
Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );

//Plot(Buy,"Сигнал Куп",colorGreen);
Plot(TrUp,"TrUp",colorBlue);
//Plot(TrUp,"Cond1",colorYellow);
ApplyStop(stopTypeProfit,stopModePoint,4000,ExitAtStop = 1,Volatile=False,ReEntryDelay=0);

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

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



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

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

000 писал(а):
Если выход осуществляется только по стопам, то никакие цыклы вообще не нужны и колдовать с BuyPrice, sellPrice ... вообще не надо.
Пишем только правила покупки, а выходы все осуществляем при помощи ф-ции ApplyStop()
Задавая amount в момень входа в зависимости от mode и установив опцию volatile = False фиксируешь уровень стопа в момент входа. И все эти геморои с расчетом цены входа больше не нужны.

Еще раз про входы и выходы:
Я хочу найти оптимальное их сочетание - отдельно входов, отдельно выходов.
Например входы могут быть при совпадении 3-х каких то условий, самое меньшее, что эти 3 условия могут быть как по И так и по ИЛИ, так и вообще оставлено одно любое, или 2 любых то есть вариантов много.
Какой покажет наилучший результат еще большой вопрос.
с Выходами еще больше вариантов. Мало того, что выходы могут быть по профиту, или по стопу, так можно добавлять еще например выход при окончании тренда, или при начале нового тренда - с другими характеристиками, или просто по времени, или режим другой уже кричит, что можно меня включать, а старый еще не отключился...
Самый простой пример, когда с гэпа вверх начинается новый тренд вниз... Я то это определяю, но все средние кажут вверх... и новый вход вверх принесет только убытки, т.е надо шортить... итд.
Я не знаю, какие выходы будут оптимальны. поэтому цикл пока остается.
Выходы по лимитированной цене нужны еще и потому, что дальше планируется ЗАРАНЕЕ выставлять приказ в квик , как на вход, так и на выход. Приказ часто лимит. А от тестера добиться лимита пока не получается.
Если можно, помогите с этим.

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



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

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

000 писал(а):
Если выход осуществляется только по стопам, то никакие цыклы вообще не нужны и колдовать с BuyPrice, sellPrice ... вообще не надо.
Пишем только правила покупки, а выходы все осуществляем при помощи ф-ции ApplyStop()
Задавая amount в момень входа в зависимости от mode и установив опцию volatile = False фиксируешь уровень стопа в момент входа. И все эти геморои с расчетом цены входа больше не нужны.

Наверное слепой глухого не понимает Smile

Я Про то, что в тестере не получается выйти по цене покупки + профит.
Не получается, хоть с циклами, хоть без циклов...

Если можно пример, условия описаны уже раз 200 Smile
(Чтобы работало, можно на любой известной бумаге...- надо несколько пересечений, чтобы понять, что они не мешают... В моих тестах иногда выход был точно по цене фхода+ профит, но это только в том случае, когда нет пересечений между покупкой и продажей, а если есть, то выход плывет в зависимости от последнего пересечения...
Вот на этот вопрос есть ответ?

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


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

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

Sergiovy писал(а):

... Олег, я хочу хоть чего ниб работающего..
Уже думаю, может у меня с компои глюк?
Пробовал и со стопом.Но:
Без команды sell тестер не работает.

Разумеется. Надо писать
Sell = 0;

Sergiovy писал(а):

Мой последний вариант для понимания:
Код:
SetPositionSize( 2, spsShares );
MID = (H+L+C)/3;
RefOpt=-1;
DiffEMALong=0;
PerEMALong=144;
TP=500;
BS=1000;

//Условие Тренда вверх
Delta=EMA(MID,PerEMALong)-Ref(EMA(MID,PerEMALong),RefOpt);
TrUp = IIf(Delta>DiffEMALong,1,0);


//Условия покупки
Buy = TrUp AND H>EMA(MID,PerEMALong) AND L<EMA(MID,PerEMALong);
BuyPrice = EMA(MID,PerEMALong);

//Cond1 = Cross(L,EMA(MID,144));
//Buy = TrUp AND Cond1;
//BuyPrice = BuyPrice = EMA(MID,PerEMALong);

Sell=IIf(Cross(H,245000),1,0);
Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );

//Plot(Buy,"Сигнал Куп",colorGreen);
Plot(TrUp,"TrUp",colorBlue);
//Plot(TrUp,"Cond1",colorYellow);
ApplyStop(stopTypeProfit,stopModePoint,4000,ExitAtStop = 1,Volatile=False,ReEntryDelay=0);


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

Давай по коду. Я там в конце приписку сделал.
Код:
SetPositionSize( 2, spsShares );
MID = (H+L+C)/3;
RefOpt=-1;
DiffEMALong=0;
PerEMALong=144;
TP=500;
BS=1000;

//Условие Тренда вверх
Delta=EMA(MID,PerEMALong)-Ref(EMA(MID,PerEMALong),RefOpt);
TrUp = IIf(Delta>DiffEMALong,1,0);


//Условия покупки
Buy = TrUp AND H>EMA(MID,PerEMALong) AND L<EMA(MID,PerEMALong);
BuyPrice = EMA(MID,PerEMALong);

Sell=0;

//Plot(Buy,"Сигнал Куп",colorGreen);
Plot(TrUp,"TrUp",colorBlue);
//Plot(TrUp,"Cond1",colorYellow);
ApplyStop(stopTypeProfit,stopModePoint,4000,ExitAtStop = 0, Volatile=False, ReEntryDelay=0);
// Тут косяк. Я не правильно перевел (или Томаш криво написал)
// Размер стопа задается в деньгах. Т.е 4000 это рублей.
// Н знаю, что ты там торгуешь, но вроде такой профит никогда не исполнится.

// Аналогично надо прописать для стопа и все будет работать

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


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

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

Кстати. Если ExitAtStop = 0, то выход будет не по уровню стопа, а по ценам сделок установленых в настройках.
Имеется в виду, что если торгуешь на дневках и вечером, перед закрытием глянул на цены, увидел, что закрывается за уровнем стопа и прикрыл сделку по цене закрытия. Если надо именно по цене установленного ордера, то пиши ExitAtStop = 1

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



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

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

000 писал(а):
Кстати. Если ExitAtStop = 0, то выход будет не по уровню стопа, а по ценам сделок установленых в настройках.
Имеется в виду, что если торгуешь на дневках и вечером, перед закрытием глянул на цены, увидел, что закрывается за уровнем стопа и прикрыл сделку по цене закрытия. Если надо именно по цене установленного ордера, то пиши ExitAtStop = 1


Торгую внутри дня. Фьючерс на индекс РТС.
Exitatstop=1 это правильно, я уже столько раз писал про цену лимитированного ордера...
amount в пунктах, это работает!!! 4000 п на фьючерсе. Цена определяется достаточно сложно, но мне это не надо. Это работает.
То, что ты прислал - не работает.
Ticker Trade Date Price Ex. date Ex. Price % chg Profit % Profit Contracts Position value Cum. Profit # bars Profit/bar MAE MFE Scale In/Out
RIM8_5 Long (profit) 04.03.2008 12:50:00 204348 12.03.2008 10:30:00 208660 2.11% 4312.00 1.06% 2 408695.97 4312.00 400 10.78 -2.10% 2.28% 0/0
RIM8_5 Long (profit) 13.03.2008 12:45:00 207572 10.04.2008 15:50:00 211650 1.96% 4077.70 0.98% 2 415144.56 8389.70 1838 2.22 -6.58% 1.97% 0/0
RIM8_5 Long (profit) 11.04.2008 15:05:00 211255 17.04.2008 10:30:00 215680 2.09% 4424.70 1.05% 2 422510.63 12814.40 306 14.46 -3.36% 2.65% 0/0
RIM8_5 Long (profit) 17.04.2008 17:30:00 213189 18.04.2008 15:20:00 217320 1.94% 4131.40 0.97% 2 426377.19 16945.80 65 63.56 -0.15% 1.94% 0/0
Нет ни одной цены выхода в 4000 п. и стрелочек миллион.
Если поставить exrem то остается одна строчка в тестере...
Порыскал тут на форуме амиброкера.. Нашел похожий пример , только с% выход когда цена от покупки +3% или -2%.
Как и подозревал - там циклы, причем 2 шт.
К сожалению есть ошибка, а мне с этими скобочками пока никак.
Но идея понятна. Раз такие штуки пишут, то похоже тестер не может выходить по заранее назначенной цене, хотя казалось бы что может быть проще и жизненней?
Текст:
for (i = 1; i <= BarCount-1; i++)
{
if (Buy[i])
{
// 3 Percent profit, 2 Percen loss
wPct = 3;
lPct = 2;
for (j = i; j <= BarCount-1; j++)
{
if (Low[j] <= (1 -lPct/100)*BuyPrice[i])
{
Sell[j] = 1;
SellPrice[j] = Min(Open[j], (1-lPct/100)*BuyPrice[i]);
i = j;
j = BarCount; // Terminate
//loop
}
if (High[j] >= (1 +wPct/100)*BuyPrice[i])
{
Sell[j] = 1;
SellPrice[j] = Max(Open[j], (1+wPct/100)*BuyPrice[i]);
i = j;
j = BarCount; // Terminate
//loop
}
}
}
}

в Примере loop был незабанен... я не нашел такой команды, и поставил слэши, но толку пока нет.

http://finance.groups.yahoo.com/group/amibroker/message/122228
Это ссылка на источник...

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


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

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

Sergiovy писал(а):
000 писал(а):
Кстати. Если ExitAtStop = 0, то выход будет не по уровню стопа, а по ценам сделок установленых в настройках.
Имеется в виду, что если торгуешь на дневках и вечером, перед закрытием глянул на цены, увидел, что закрывается за уровнем стопа и прикрыл сделку по цене закрытия. Если надо именно по цене установленного ордера, то пиши ExitAtStop = 1


Примере loop был незабанен... я не нашел такой команды, и поставил слэши, но толку пока нет.

http://finance.groups.yahoo.com/group/amibroker/message/122228
Это ссылка на источник...


Когда Олег тебе написал, Sell=0; ты убрал Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy ); если нет то понятно почему не работает.

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


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

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

Sergiovy писал(а):

Нашел похожий пример , только с% выход когда цена от покупки +3% или -2%.
Как и подозревал - там циклы, причем 2 шт.
К сожалению есть ошибка, а мне с этими скобочками пока никак.
Но идея понятна. Раз такие штуки пишут, то похоже тестер не может выходить по заранее назначенной цене, хотя казалось бы что может быть проще и жизненней?

Блин. Вот тебя колбасит. Давай попорядку разбираться. Нафиг эти циклы.
Вот код
Код:
MID = (H+L+C)/3;
RefOpt=-1;
DiffEMALong=0;
PerEMALong=144;

//Условие Тренда вверх
Delta=EMA(MID,PerEMALong)-Ref(EMA(MID,PerEMALong),RefOpt);
TrUp = IIf(Delta>DiffEMALong,1,0);


//Условия покупки
Buy = TrUp AND H>EMA(MID,PerEMALong) AND L<EMA(MID,PerEMALong);
BuyPrice = EMA(MID,PerEMALong);

Sell=0;

ApplyStop(stopTypeProfit,stopModePoint,2,ExitAtStop = 1, Volatile=False);
ApplyStop(stopTypeLoss,stopModePoint,2, ExitAtStop = 1, Volatile=False);

Проверил сейчас на минутках газпрома. Прекрасно работает.

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


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

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

000 писал(а):
Sergiovy писал(а):

Нашел похожий пример , только с% выход когда цена от покупки +3% или -2%.
Как и подозревал - там циклы, причем 2 шт.
К сожалению есть ошибка, а мне с этими скобочками пока никак.
Но идея понятна. Раз такие штуки пишут, то похоже тестер не может выходить по заранее назначенной цене, хотя казалось бы что может быть проще и жизненней?

Блин. Вот тебя колбасит. Давай попорядку разбираться. Нафиг эти циклы.
Вот код
Код:
MID = (H+L+C)/3;
RefOpt=-1;
DiffEMALong=0;
PerEMALong=144;

//Условие Тренда вверх
Delta=EMA(MID,PerEMALong)-Ref(EMA(MID,PerEMALong),RefOpt);
TrUp = IIf(Delta>DiffEMALong,1,0);


//Условия покупки
Buy = TrUp AND H>EMA(MID,PerEMALong) AND L<EMA(MID,PerEMALong);
BuyPrice = EMA(MID,PerEMALong);

Sell=0;

ApplyStop(stopTypeProfit,stopModePoint,2,ExitAtStop = 1, Volatile=False);
ApplyStop(stopTypeLoss,stopModePoint,2, ExitAtStop = 1, Volatile=False);

Проверил сейчас на минутках газпрома. Прекрасно работает.


И на 15 мин тож чудесно работает Smile

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Сергей



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

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

Sergiovy писал(а):
000 писал(а):
Если выход осуществляется только по стопам, то никакие цыклы вообще не нужны и колдовать с BuyPrice, sellPrice ... вообще не надо.
Пишем только правила покупки, а выходы все осуществляем при помощи ф-ции ApplyStop()
Задавая amount в момень входа в зависимости от mode и установив опцию volatile = False фиксируешь уровень стопа в момент входа. И все эти геморои с расчетом цены входа больше не нужны.

... Олег, я хочу хоть чего ниб работающего..
Уже думаю, может у меня с компои глюк?
Пробовал и со стопом.Но:
Без команды sell тестер не работает.
Чтобы просто, вход по пересечению по известной цене, не буду говорить по какой. Sad
А выход по стопу, но в тестере должно быть цена входа+ профит.
Так? Нету такого. Самое простое, что получается - вход остается один..... выходит точно по нужной цене, а снова не входит. Я думаю, что это потому, что, чтобы нейтрализовать селл, я написал sell=245000
то есть цена, которой не было вообще, так тестер входит один раз, и выходит по стопу, но снова уже не заходит, я думаю ждет селл...
Если можно, простой пример выхода, работающий в тестере, когда цена выхода в тестере, равна цена входа + любой профит.
Я так понимаю, это несколько строчек...
Мой последний вариант для понимания:
SetPositionSize( 2, spsShares );
MID = (H+L+C)/3;
RefOpt=-1;
DiffEMALong=0;
PerEMALong=144;
TP=500;
BS=1000;

//Условие Тренда вверх
Delta=EMA(MID,PerEMALong)-Ref(EMA(MID,PerEMALong),RefOpt);
TrUp = IIf(Delta>DiffEMALong,1,0);


//Условия покупки
Buy = TrUp AND H>EMA(MID,PerEMALong) AND L<EMA(MID,PerEMALong);
BuyPrice = EMA(MID,PerEMALong);

//Cond1 = Cross(L,EMA(MID,144));
//Buy = TrUp AND Cond1;
//BuyPrice = BuyPrice = EMA(MID,PerEMALong);

Sell=IIf(Cross(H,245000),1,0);
Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );

//Plot(Buy,"Сигнал Куп",colorGreen);
Plot(TrUp,"TrUp",colorBlue);
//Plot(TrUp,"Cond1",colorYellow);
ApplyStop(stopTypeProfit,stopModePoint,4000,ExitAtStop = 1,Volatile=False,ReEntryDelay=0);

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

Сергей система глючная, будет очень много плавающих сигналов из за MID = (H+L+C)/3;, т.е. условие тренда вверх то появляется то пропадает.
Посмотреть профиль Отправить личное сообщение
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

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

Здесь я написал фигню, а она не удаляется.

_________________
Юра

Последний раз редактировалось: commenced (Сб Апр 19, 2008 5:18 pm), всего редактировалось 2 раз(а)
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen