logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Запуск и подключение проекта разработки стратегий и индикаторов.
Hard Offline
#1 Оставлено : 21 июня 2016 г. 11:22:03(UTC)
Admin

Ранг: Administration

Группы: Administrators
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 262
Мужчина

Сказал «Спасибо»: 1 раз
Поблагодарили: 52 раз в 50 постах
Для версий от 2.97

Для разработки потребуется Microsoft Visual Studio (не Express) минимум 2010.

Необходимо скачать архив проекта.
Распаковать.
Запустить Com-X Trader Libs.sln

Перестроить проект.

Запустить Com-X Trader, в глобальных настройках -> "Пользовательские индикаторы" нужно добавить библиотеку "Com-X Trader Libs\MyProject\bin\Debug\MyProject.dll"
Закрыть глобальные настройки "Ок".

В окнах индикаторов и стратегий появится папка "MyLib".
Можно добавлять на график стратегии и индикаторы, и отлаживать в студии (в студии нужно присоединиться к процессу "Com-X Trader Pro.exe").


После добавления в проект собственного класса стратегии или индикатора, нужно добавить информацию о нем в файл AssemblyInfo.cs, как это сделано для других классов. Пример ", typeof(TwoMAStrategy)".

Чтобы новая стратегия или индикатор появился в Com-X Trader, нужно заново в глобальных настройках добавить библиотеку "MyProject.dl".
2 пользователей поблагодарили Hard за этот пост.
Lifat21 оставлено 22.06.2016(UTC), zavkrutka оставлено 07.07.2016(UTC)
Lifat21 Offline
#2 Оставлено : 16 июля 2016 г. 13:22:25(UTC)
Ранг: Member

Группы: Registered
Зарегистрирован: 19.03.2016(UTC)
Сообщений: 10
Откуда: Moskva

Сказал(а) «Спасибо»: 8 раз
Hard, если не затруднит, дайте пример, как разукрасить, ну скажем, SMA. К примеру, растет, тогда один цвет, падает - другой.
Hard Offline
#3 Оставлено : 16 июля 2016 г. 14:47:06(UTC)
Admin

Ранг: Administration

Группы: Administrators
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 262
Мужчина

Сказал «Спасибо»: 1 раз
Поблагодарили: 52 раз в 50 постах
Можно так.
Это нужно сделать в самом индикаторе SMA.

public override void Draw(Graphics g, ICoordinate coord, int index)
{
double value = this[index];
double prevValue = this[index - 1];
Color color = Color.LimeGreen;
if (value < prevValue)
color = Color.OrangeRed;
LineStyle.DrawLine(g, coord, index, value, prevValue, color);
}
1 пользователь поблагодарил Hard за этот пост.
Lifat21 оставлено 16.07.2016(UTC)
Hard Offline
#4 Оставлено : 16 июля 2016 г. 14:56:46(UTC)
Admin

Ранг: Administration

Группы: Administrators
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 262
Мужчина

Сказал «Спасибо»: 1 раз
Поблагодарили: 52 раз в 50 постах
Или так.

public override Color GetColor(int index)
{
double value = this[index];
double prevValue = this[index - 1];
if (value > prevValue)
return Color.LimeGreen;
else if (value < prevValue)
return Color.OrangeRed;
return base.GetColor(index);
}
1 пользователь поблагодарил Hard за этот пост.
Lifat21 оставлено 16.07.2016(UTC)
Lifat21 Offline
#5 Оставлено : 16 июля 2016 г. 17:53:28(UTC)
Ранг: Member

Группы: Registered
Зарегистрирован: 19.03.2016(UTC)
Сообщений: 10
Откуда: Moskva

Сказал(а) «Спасибо»: 8 раз
А так, что-бы не в коде цвета задавать, а в свойствах задать, например, цвет up и цвет down?
Hard Offline
#6 Оставлено : 16 июля 2016 г. 18:13:39(UTC)
Admin

Ранг: Administration

Группы: Administrators
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 262
Мужчина

Сказал «Спасибо»: 1 раз
Поблагодарили: 52 раз в 50 постах
Так создаются свойства

private Color upColor = Color.LimeGreen;
[NotExpandable, DefaultValue(typeof(Color), "LimeGreen"), Category("Color")]
public Color UpColor
{
get { return this.upColor; }
set
{
if (this.upColor == value) return;
this.upColor = value;
this.Invalidate();
}
}

private Color downColor = Color.OrangeRed;
[NotExpandable, DefaultValue(typeof(Color), "OrangeRed"), Category("Color")]
public Color DownColor
{
get { return this.downColor; }
set
{
if (this.downColor == value) return;
this.downColor = value;
this.Invalidate();
}
}


для сохранения и загрузки полей.

protected override void LoadClassData(IData data)
{
base.LoadClassData(data);
this.upColor = (Color)data["upColor", this.upColor];
this.downColor = (Color)data["downColor", this.downColor];
}

protected override void SaveClassData(IData data)
{
data["upColor"] = this.upColor;
data["downColor"] = this.downColor;
base.SaveClassData(data);
}

сама функция рисования.

public override void Draw(Graphics g, ICoordinate coord, int index)
{
double value = this[index];
double prevValue = this[index - 1];
Color color = this.upColor;
if (value < prevValue)
color = this.downColor;
LineStyle.DrawLine(g, coord, index, value, prevValue, color);
}

1 пользователь поблагодарил Hard за этот пост.
Lifat21 оставлено 17.07.2016(UTC)
Lifat21 Offline
#7 Оставлено : 17 июля 2016 г. 12:47:27(UTC)
Ранг: Member

Группы: Registered
Зарегистрирован: 19.03.2016(UTC)
Сообщений: 10
Откуда: Moskva

Сказал(а) «Спасибо»: 8 раз
Работает... Будем изучать пространство имен Complex))
Grin Offline
#9 Оставлено : 12 августа 2016 г. 14:31:24(UTC)
Ранг: Newbie

Группы: Registered
Зарегистрирован: 12.08.2016(UTC)
Сообщений: 6
Откуда: Бурятия

Возможно ли здесь в принципе, создать графики для парного трейдинга: собственные индексы из 2-х и более инструментов?
Те стратегии которые уже реализованы, я так понимаю лишь для визуализации? запустить их как роботов в терминале не получится?
Grin Offline
#8 Оставлено : 12 августа 2016 г. 14:34:22(UTC)
Ранг: Newbie

Группы: Registered
Зарегистрирован: 12.08.2016(UTC)
Сообщений: 6
Откуда: Бурятия

Lifat21;832 написал:
Будем изучать пространство имен Complex


А каким образом его изучать, если оно зашито в dll ки? или где то есть код?
Hard Offline
#10 Оставлено : 12 августа 2016 г. 15:33:00(UTC)
Admin

Ранг: Administration

Группы: Administrators
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 262
Мужчина

Сказал «Спасибо»: 1 раз
Поблагодарили: 52 раз в 50 постах
Цитата:

Возможно ли здесь в принципе, создать графики для парного трейдинга: собственные индексы из 2-х и более инструментов?

Возможно создать любые индикаторы.

Цитата:
Те стратегии которые уже реализованы, я так понимаю лишь для визуализации? запустить их как роботов в терминале не получится?

Все стратегии можно запустить как робота.

Цитата:
Те стратегии которые уже реализованы, я так понимаю лишь для визуализации? запустить их как роботов в терминале не получится?

В архиве есть примеры стратегий и индикаторов.
Нужно иметь опыт программирования C#.
Grin Offline
#11 Оставлено : 12 августа 2016 г. 16:44:39(UTC)
Ранг: Newbie

Группы: Registered
Зарегистрирован: 12.08.2016(UTC)
Сообщений: 6
Откуда: Бурятия

Hard;838 написал:

Все стратегии можно запустить как робота.

Тогда что я не так делаю, или не делаю? Архив с примерами скачал, в терминал установил, выбираю нужную стратегию, щелкаю по ней, ее график накладывается на график инструмента в терминале и ... далее ничего не происходит хотя условия открытия позиций должны были в течении дня исполниться не раз.
Hard;838 написал:

Нужно иметь опыт программирования C#.

Опыт в С# конечно ничтожный, тем не менее для ТСЛаба некоторые свои идеи записать на С# удалось и они работали. Интересно можно будет их воткнуть в проект Com-XTraderLibs.sln


Hard Offline
#12 Оставлено : 12 августа 2016 г. 18:06:26(UTC)
Admin

Ранг: Administration

Группы: Administrators
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 262
Мужчина

Сказал «Спасибо»: 1 раз
Поблагодарили: 52 раз в 50 постах
Цитата:
Тогда что я не так делаю, или не делаю? Архив с примерами скачал, в терминал установил, выбираю нужную стратегию, щелкаю по ней, ее график накладывается на график инструмента в терминале и ... далее ничего не происходит хотя условия открытия позиций должны были в течении дня исполниться не раз.

А стратегия включена? Должен быть красным переключатель On.

Цитата:
Опыт в С# конечно ничтожный, тем не менее для ТСЛаба некоторые свои идеи записать на С# удалось и они работали. Интересно можно будет их воткнуть в проект Com-XTraderLibs.sln

Логику перенести можно, но код писать нужно заново.
Grin Offline
#13 Оставлено : 16 августа 2016 г. 15:54:05(UTC)
Ранг: Newbie

Группы: Registered
Зарегистрирован: 12.08.2016(UTC)
Сообщений: 6
Откуда: Бурятия

С запуском готовых стратегий более менее разобрался. И появилось желание "изваять" что нибудь свое.
Но как? Понятно что основной шаблон приведен в файле MyStrategy.cs, Но для таких "программистов" как я этого мало.
Хотелось бы какой нибудь мануал или хотя бы побольше примеров с комментариями после каждой строчки, для особо одаренных. Типа: "вот так реализовано пересечение ЕМА", "а здесь стоп в процентах от цены входа", "тут стоп с привязкой к АТР" и т.д. и т.п.
И кстати как все же быть с парным трейдингом? Во всех примерах работа ведется с одним инструментом, который берется из терминала, а если надо два и более, как это реализовать? прописывать вместо source название тикера?
Grin Offline
#14 Оставлено : 21 августа 2016 г. 14:14:28(UTC)
Ранг: Newbie

Группы: Registered
Зарегистрирован: 12.08.2016(UTC)
Сообщений: 6
Откуда: Бурятия

Набросал заготовку своего первого робота на данной платформе, правда пока без стопов и шортов, ну да ладно, дело не в этом. Удивило то что команды BuyMarket и BuyMarketInvert совершают продажи а Sell соответственно покупки. Как это может быть? Кстати в каких случаях какую использовать, если без перегрузок? Правильно понимаю что MarketInvert - если условие булевское?
Hard Offline
#15 Оставлено : 22 августа 2016 г. 9:36:47(UTC)
Admin

Ранг: Administration

Группы: Administrators
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 262
Мужчина

Сказал «Спасибо»: 1 раз
Поблагодарили: 52 раз в 50 постах
Если установлено свойство "Инвертировать: Да", то покупка/продажа меняется местами.
BuyMarketInvert и SellMarketInvert выполняются с учётом открытой позиции. и закрывают её если действие обратно позиции (с учётом свойства "Инвертировать")
Но для начала, и лучшего понимания, нужно использовать обычные BuyMarket и SellMarket.
Grin Offline
#16 Оставлено : 24 августа 2016 г. 17:53:25(UTC)
Ранг: Newbie

Группы: Registered
Зарегистрирован: 12.08.2016(UTC)
Сообщений: 6
Откуда: Бурятия

О стопах.
В паре приведенных примеров используется TestStop2, чем он отличается от "собратьев"?
И еще о настройках: LossActionTicks, MaxTicks, MinProcent, ProfitActionTicks, ProfitProcent. Можете расписать
что для чего? А то по отдельности названия вроде бы говорящие, но когда все вместе начинаю путаться.
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.

Форум YAF | YAF © 2003-2011, Yet Another Forum.NET
Страница сгенерирована за 0.360 секунды.