Добрый день,
Как использовать трендовые индикаторы для открытия позиции в лонг?
Допустим, если у нас восходящий тренд, то открываем позицию и выставляем значения take_profit на проценте от открытой позиции, если тренд поменял свое направление и опустился ниже на 5 процентов от предыдущей позиции, то открыть еще одну позицию в лонг и новый take_profit.
Стратегии и роботы > Трендовые индикаторы
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: Трендовые индикаторы
1. Появился сигнал открываем позицию EnterLong(Lot) на количество Lot
2. Можно сразу после EnterLong(Lot) поставить BRS заявку, BreakingStop() с тейком в 1% и стопом большим
3. Если второй вариант не подходит, то просто проверяем CurrentPLper() >= 1%. Минус этого метода в том, что пока бар не закрыт он не работает. Т.е. проверка будет проходить только между итерациями OnUpdate();
4. Проверяем CurrentPLper() < -5%, делаем всё тоже самое с пункта 2 или 3 на выбор
пример в коде:
2. Можно сразу после EnterLong(Lot) поставить BRS заявку, BreakingStop() с тейком в 1% и стопом большим
3. Если второй вариант не подходит, то просто проверяем CurrentPLper() >= 1%. Минус этого метода в том, что пока бар не закрыт он не работает. Т.е. проверка будет проходить только между итерациями OnUpdate();
4. Проверяем CurrentPLper() < -5%, делаем всё тоже самое с пункта 2 или 3 на выбор
пример в коде:
Код: Выделить всё
/**
**/
function Initialize()
{
StrategyName = "LongTest";
AddParameter("Lot", 1, "", 1);
AddInput("I", Inputs.Candle, 1, true, "");
LongLimit = 10;
ShortLimit = -10;
}
function OnUpdate()
{
// здесь мы определяем что надо открывать позицию, т.е. получаем сигнал от индикаторов или другим способом.
var isLong = EMA(I, 10) > SMA(I, 100);
// Если сигнал и нет позиции - открываем Long на количество = Lot
if (isLong && CurrentPosition() == 0)
{
EnterLong(Lot);
}
// 1% прибыль или более - закрываем позицию
if (CurrentPLper() >= 1)
{
ClosePosition();
}
// более -5% убытка - увеличиваем позицию Long ещё на количество = Lot
if (CurrentPLper() < -5)
{
EnterLong(Lot);
}
}
никогда такого не было и вот опять
Вернуться в «Стратегии и роботы»
Кто сейчас на конференции
Сейчас этот форум просматривают: Google [Bot] и 3 гостя