Общие вопросы по разработке > Определение центра канала в написании робота.
-
- Сообщения: 13
- Зарегистрирован: 24 апр 2018, 20:58
- Откуда: Ставрополье
- Благодарил (а): 9 раз
- Поблагодарили: 6 раз
Определение центра канала в написании робота.
Народ привет. Вот такая задача, определить канал по вершинам и впадинам – например определение по 6-10 свечам. И провести открытие в середине этого канала т.е 50% от пройдённого канала, в направлении тренда (ну например, направление тренда определяется по индикатору СуперТренд). Закрытие осуществляется по не доходу до границы канала, где-то 90% от пройдённого канала. Стоп за каналом.
Например так:
Например так:
- evge
- Администратор
- Сообщения: 1812
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Определение центра канала в написании робота.
Входящие параметры какие у стратегии будут?
Количество баров в пределах которых ищем Min, Max, или это поиск вершин и впадин по фракталам?
И дополнительно параметры для построения SuperTrend?
По рисунку выставляться будет ордер на 7ом баре т.е. он будет ждать исполнения, т.е. это либо EnterLongStop() - вход по стоп ордеру в Long, либо ждем закрытия выше этой цены и входим обычным EnterLong() ордером.
Эти нюансы могут влиять на результат хорошо.
Ещё важно, как я понимаю, очередность Min и Max.
Для Long по SuperTrend:
Например, если Min раньше Max, то здесь нет сигнала и канал не запоминаем. Если Max раньше чем Min тогда работаем в Long.
Для Short всё противоположно.
Количество баров в пределах которых ищем Min, Max, или это поиск вершин и впадин по фракталам?
И дополнительно параметры для построения SuperTrend?
По рисунку выставляться будет ордер на 7ом баре т.е. он будет ждать исполнения, т.е. это либо EnterLongStop() - вход по стоп ордеру в Long, либо ждем закрытия выше этой цены и входим обычным EnterLong() ордером.
Эти нюансы могут влиять на результат хорошо.
Ещё важно, как я понимаю, очередность Min и Max.
Для Long по SuperTrend:
Например, если Min раньше Max, то здесь нет сигнала и канал не запоминаем. Если Max раньше чем Min тогда работаем в Long.
Для Short всё противоположно.
никогда такого не было и вот опять
-
- Сообщения: 13
- Зарегистрирован: 24 апр 2018, 20:58
- Откуда: Ставрополье
- Благодарил (а): 9 раз
- Поблагодарили: 6 раз
Re: Определение центра канала в написании робота.
Спасибо что ответили. Вот, уточняю параметры:
Количество баров, где мы ищем Min, Max - это задаваемая, изменяемая величина - N.
Вот примерный алгоритмик накатал, посмотрите.
Количество баров, где мы ищем Min, Max - это задаваемая, изменяемая величина - N.
Вот примерный алгоритмик накатал, посмотрите.
- evge
- Администратор
- Сообщения: 1812
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Определение центра канала в написании робота.
Пока не смотрел.
Изучу чуть позже описание (схему), как появится чуть больше времени.
И выложу готовый код или вопросы .
Изучу чуть позже описание (схему), как появится чуть больше времени.
И выложу готовый код или вопросы .
никогда такого не было и вот опять
-
- Сообщения: 13
- Зарегистрирован: 24 апр 2018, 20:58
- Откуда: Ставрополье
- Благодарил (а): 9 раз
- Поблагодарили: 6 раз
- evge
- Администратор
- Сообщения: 1812
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Определение центра канала в написании робота.
Код: Выделить всё
/**
**/
function Initialize()
{
StrategyName = "SuperTrendChannel";
AddParameter("C", 6, "Кол-во баров для поиска min, max", 1);
AddParameter("PeriodATR", 5, "", 1);
AddParameter("PeriodCCI", 50, "", 1);
AddParameter("K", 1, "", 1);
AddInput("I", Inputs.Candle, 60, true, "");
LongLimit = 1000;
ShortLimit = 1000;
AddGlobalVariable("N", Types.Int, 0);
AddChartIndicator("MY.SuperTrend", new Dictionary <string, string>{{"PeriodATR", "PeriodATR"},{"PeriodCCI", "PeriodCCI"},{"K", "K"}});
}
function OnUpdate()
{
var S = MY.SuperTrend(I, PeriodATR, PeriodCCI, K);
if (S["U"][0] > 0) N = 1;
if (S["D"][0] > 0) N = -1;
double Hi = 0, Li = 0;
for (int x = 1; x <= C; x++)
{
if (I.High[x] > I.High[Hi]) Hi = x;
if (I.Low[x] < I.Low[Li]) Li = x;
}
var AV = (I.High[Hi] + I.Low[Li]) * 0.5;
if (Li > Hi && N < 0)
{
if (I.High[0] < I.High[Hi])
{
CancelActiveOrders(true);
}
else
{
if (I.Low[0] > AV)
{
EnterShortStop(AV);
BreakingStop(I.High[Hi], I.Low[Li], SignalPriceType.Price);
}
}
}
if (Li < Hi && N > 0)
{
if (I.Low[0] > I.Low[Li])
{
CancelActiveOrders(true);
}
else
{
if (I.High[0] < AV)
{
EnterLongStop(AV);
BreakingStop(I.Low[Li], I.High[Hi], SignalPriceType.Price);
}
}
}
}
Проверяйте. Если захочется изменить алгоритм или найдете ошибки, пишите
никогда такого не было и вот опять
- evge
- Администратор
- Сообщения: 1812
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Определение центра канала в написании робота.
На 5 минутном ТФ на сбербанке (без учета комиссий):
CCI = 10
CCI = 10
никогда такого не было и вот опять
-
- Сообщения: 13
- Зарегистрирован: 24 апр 2018, 20:58
- Откуда: Ставрополье
- Благодарил (а): 9 раз
- Поблагодарили: 6 раз
- evge
- Администратор
- Сообщения: 1812
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Определение центра канала в написании робота.
Одну ошибку поправил в коде выше, так что результат надо перепроверять
никогда такого не было и вот опять
- evge
- Администратор
- Сообщения: 1812
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Определение центра канала в написании робота.
ах да забыл ещё что тейк не 90% от границы канала тут, а 100% на границе. Хотя каналом это трудно назвать. В рамках N баров на краях.
никогда такого не было и вот опять
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей