|
AmiSite.ru
Форум по Ами |
Автор |
Сообщение |
Евгений
Зарегистрирован: 13.12.2010
Сообщения: 45
|
Подскажите. Есть система с закрытием в конце дня. Но если после входа в сделку цена доходит до уровня безубытка, то стоп надо передвинуть на цену входа +- 30. Вроде бы все работает, но выход по безубытку происходит по цене закрытия свечи на которой происходит выход +- 50 пунктов, а мне нужен выход по цене входа в позицию +-30 пунктов......
Подскажите где у меня ошибка?
InDay = TimeNum()>=100500 AND TimeNum()<153500;//время открытия новых позиций
EndDay = TimeNum()==234500;
Kr=......;//коэффициент риска
Kbu=.....;//коэффициент безубытка
Ubu=BuyPrice+Kbu;//уровень безубытка
ApplyStop (stopTypeLoss,stopModePoint,.....,ExitAtStop = 1);//стоп-лосс
Cond1 = .....;// условия покупки
Cond2 = .....;// условия покупки
BuySignal = Cond1 AND Cond2 AND InDay;
BuyPrice = Close+50;
SellSignal = EndDay;
SellPrice = Close-50;
Cond3 = ......;// условия продажи
Cond4 = ......;
ShortSignal = Cond3 AND Cond4 AND InDay;
ShortPrice = Close-50;
CoverSignal = EndDay;
CoverPrice = Close+50;
Buy = BuySignal;
Sell = SellSignal;
Short = ShortSignal;
Cover = CoverSignal;
position = 0;
Stop=Kr*.....;
for(i = 1; i < BarCount; i++)
{
if(position == 0)
{
if(BuySignal[i]) // проверка условия для лонга
{
Buy[i] = 1; // покупка
position = 1; // длинная позиция
PriceBuy = BuyPrice[i]; // цена покупки
PriceStop = PriceBuy - Stop; // первоначальный стоп лонга
}
else if(ShortSignal[i]) // проверка условия для шорта
{
Short[i] = 1; // продажа
position = -1; // короткая позиция
PriceShort = ShortPrice[i]; // цена шорта
PriceStop = PriceShort + Stop; // первоначальный стоп шорта
}
}
else if(position == 1) // в противном случае, если лонг
{
if(SellSignal[i]) // условия закрытия лонга
{
Sell[i] = 1; // закрытие лонга
position = 0; // система не в позиции
}
if(H[i] > PriceBuy + Ubu[i]) // проверка достижения уровня безубытка
{
PriceStop = PriceBuy + 30;// перенос стопа в безубыток
}
if(L[i] < PriceStop[i]) // проверка срабатывания стопа
{
Sell[i] = 1; // закрытие лонга
position = 0;
}
}
else if(position == -1) // в противном случае если шорт
{
if(CoverSignal[i]) // условия закрытия шорта
{
Cover[i] = 1; // закрытие шорта
position = 0; // система не в позиции
}
if(L[i] < PriceShort - Ubu[i]) // проверка достижения уровня безубытка
{
PriceStop = PriceShort - 30;// перенос стопа в безубыток
}
if(H[i] > PriceStop[i]) // срабатывание стопа при шорте
{
Cover[i] =1; //закрытие шорта
position = 0;
}
} |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну у тебя прописан выход по Sell - SellPrice = Close-50; в любом случае, а тебе надо при выходе по стопу прописать другую цену выхода.
SellPrice[i] = PriceBuy + 30; |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
norvik
Зарегистрирован: 23.11.2011
Сообщения: 9
|
Доброго времени суток,подскажите пожалуйста как реализовать простое условие закрытия позиции с фиксированным размером прибыли\убытка без использования функции ApplyStop.
Не смог найти сразу в АФЛ оператор (а есть такой?) который запоминает значение entry_price.
Пример:
ShortPrice=C;
ShortSignal=Cond1
Short=ShortSignal
Cond2=entry_price+0.002;
Cond3=entry_price-0.0002;
CoverPrice=C;
Cover=Cond3 OR Cond3;
И до кучки еще вопрос, как работает оператор Ref, можно ли условие "в последних 5 барах минимум 3 комбинации баров у которых закрытие текущего бара больше предыдущего" записать так :
SUM(C>Ref(C,-1),5)>=3
Сильно не ругайте, только начал разбираться с платформой |
Последний раз редактировалось: norvik (Ср Дек 28, 2011 12:09 am), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Нет оператора который запоминает цену входа в позицию.
В принципе можно взять "значение когда" (ValueWhen) был последний сигнал Buy, но не факт, что вход был именно по последнему сигналу.
Поэтому в цикле. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
| |