Торговый автомат Амиброкер+Квик

  • Автор темы mehanizator1
  • Дата начала

GH05

New member
Всем доброй ночи,

Установил Ами 4.50.9,
импортировал часовые котиры Si - контракт на доллар, за 02.08-02.09,
Создал правило на пробитие Price Channel:

Top = Ref(HHV(H, 21), -1);
Bot = Ref(LLV(L, 21), -1);
Mid = (Top+Bot)/2;

Buy = Cross(C, Top);
/* покупка когда цена закрытия пересекает верхнюю линию ценового канала снизу вверх */
Sell = Cross(Mid, C);
/* продажа когда цена закрытия пересекает среднюю линию ценового канала сверху вниз */


Нажимаю Individual BackTest - пустая таблица,
нажимаю Scan - выдает таблицу сделок.

И отчёт создать не получается.
Что я не так делаю? Почему индикатор Equity тоже сплошная линия на одном уровне?
В хелпах ничего путного не нашёл.
Посмотри в setting какие параметры? Установи начальный капитал, таймфрейм, лонг или шорт лонг, минимальное количество контрактов, минимальный шаг цены
На самом тестере поставь галки current symbol и all quotation по моему так
 

Tim

New member
Посмотри в setting какие параметры? Установи начальный капитал, таймфрейм, лонг или шорт лонг, минимальное количество контрактов, минимальный шаг цены

Если нач.кап-л меньше стоимости 1 контракта Si (23000-37000), но стоит Margin requirement = 4 (т.е. 1:25), то почему сделок всё равно нет?
Futures mode - отмечен.
Попробовал увеличить нач.капитал до 100 000, получилось только 2 сделки, которые слили весь капитал 20.02.2008..
Стоит Лонг, таймфрейм - час, мин.кол-во контрактов 1, round lot size =1, Tick size=1
Вроде всё корректно...
 

GH05

New member
Если нач.кап-л меньше стоимости 1 контракта Si (23000-37000), но стоит Margin requirement = 4 (т.е. 1:25), то почему сделок всё равно нет?
Futures mode - отмечен.
Попробовал увеличить нач.капитал до 100 000, получилось только 2 сделки, которые слили весь капитал 20.02.2008..
Стоит Лонг, таймфрейм - час, мин.кол-во контрактов 1, round lot size =1, Tick size=1
Вроде всё корректно...
Если включена опция Futures mode то нужно указать стоимость одного пункта PointValue=..; в рублях. Но проблема не в этом, у тебя система с 3 плечами сливает сразу все, потом просто нет денег на покупку, об этом кстати недавно писал Мех, выставь для начала Margin requirement =100 и добавь денег до 1000000, также обязательно выставь минимальный шаг цены Tick size
 

Tim

New member
Если включена опция Futures mode то нужно указать стоимость одного пункта PointValue=..; в рублях.
...
Разобрался.
В общем, в Symbol-Information я ставил Round lot size 1000, а в Auto-Analyser поставил 1. Теперь оба равны 1.

Правильно ли я понимаю, что pointValue это по сути кол-во контрактов?

В Хелпе описано так:
Point Value – прибыль/убыток возникающий при изменении цены на один пункт. Важно при тестировании фьючерсных контрактов

Могу я задать, как % от Equity?
И как это сделать там?
Я нашёл такой способ: PositionSize = -20; (значит 20% от Equity) в теле формулы.
Но каждый раз писать в теле каждой формулы мне кажется нерационально.
 

GH05

New member
Разобрался.
В общем, в Symbol-Information я ставил Round lot size 1000, а в Auto-Analyser поставил 1. Теперь оба равны 1.

Правильно ли я понимаю, что pointValue это по сути кол-во контрактов?

В Хелпе описано так:
Point Value – прибыль/убыток возникающий при изменении цены на один пункт. Важно при тестировании фьючерсных контрактов

Могу я задать, как % от Equity?
И как это сделать там?
Я нашёл такой способ: PositionSize = -20; (значит 20% от Equity) в теле формулы.
Но каждый раз писать в теле каждой формулы мне кажется нерационально.
pointValue это цена одного пункта, цену смотришь в спецификации на контракт. Например по РИХе при цене бакса 25р это значение будет 0.5
pointValue обязательно указывать в теле программы

В общем, в Symbol-Information я ставил Round lot size 1000, а в Auto-Analyser поставил 1. Теперь оба равны 1.
Зачем 1000?

А вообще можно просто снять галку с Fut mode и тестировать как будто это акции с условием что ты покупаешь не по ГО, а по полной стоимости фуча

Могу я задать, как % от Equity?
И как это сделать там?
Я нашёл такой способ: PositionSize = -20; (значит 20% от Equity) в теле формулы.

Вот с этим лучше не эксперементировать
 

Tim

New member
pointValue это цена одного пункта, цену смотришь в спецификации на контракт. Например по РИХе при цене бакса 25р это значение будет 0.5
pointValue обязательно указывать в теле программы

Не нашёл в РИХе цену 1 пункта.
Нашёл такое:

Стоимость минимального шага цены Контракта соответствует 10 % от курса доллара США по отношению к российскому рублю, установленному ЦБ РФ на последний день заключения Контракта.
Как получается 0,5??
А если я торгую Si, то как рассчитывать pointValue?


В общем, в Symbol-Information я ставил Round lot size 1000, а в Auto-Analyser поставил 1. Теперь оба равны 1.
Зачем 1000?

А это я перепутал с количеством базового актива в 1 контракте )) зеленый я ещё.

А вообще можно просто снять галку с Fut mode и тестировать как будто это акции с условием что ты покупаешь не по ГО, а по полной стоимости фуча

Хм, сейчас подумаю...

Могу я задать, как % от Equity?
И как это сделать там?
Я нашёл такой способ: PositionSize = -20; (значит 20% от Equity) в теле формулы.

Вот с этим лучше не эксперементировать

Почему же? Из-за Мартингейла?
 

Tim

New member
А вообще можно просто снять галку с Fut mode и тестировать как будто это акции с условием что ты покупаешь не по ГО, а по полной стоимости фуча
Получается у меня исказятся параметры, оценивающие эффективность стратегии.
1) я пускаю в торговлю не более 20% от капитала - остальные 80% служат страховкой,
2) я выбираю инструмент с плечом именно 1:25 - Si, и хочу оценить работу стратегии,
3) стоп-лосс у меня стоит на 1,5% от стоимости контракта, это среднее колебание внутри дня, при переходе на 1:1 его нужно будет увеличивать,
4) ...
не, голова не варит уже. Не могу понять зачем торговать как по полной стоимости.
 

GH05

New member
Получается у меня исказятся параметры, оценивающие эффективность стратегии.
1) я пускаю в торговлю не более 20% от капитала - остальные 80% служат страховкой,
2) я выбираю инструмент с плечом именно 1:25 - Si, и хочу оценить работу стратегии,
3) стоп-лосс у меня стоит на 1,5% от стоимости контракта, это среднее колебание внутри дня, при переходе на 1:1 его нужно будет увеличивать,
4) ...
не, голова не варит уже. Не могу понять зачем торговать как по полной стоимости.
1,2) Выбери плечо с помощью Setposition там указывается какой сайз будет участвовать в сделке относительно основного капитала тем самым определяется плечо. Но при системной торговле с плечом 1 к 25 торговать получится до обеда)
 

Tim

New member
pointValue это цена одного пункта, цену смотришь в спецификации на контракт. Например по РИХе при цене бакса 25р это значение будет 0.5
pointValue обязательно указывать в теле программы
Так объясните, пожалуйста, как расчитывать pointValue? Особенно для контракта на доллар.

P.S. Кстати торговать с таким плечом получается значительно дольше.:) Видимо волатильность у Si значительно ниже, чем у RTS и остальных.
 

GH05

New member
Так объясните, пожалуйста, как расчитывать pointValue? Особенно для контракта на доллар.

P.S. Кстати торговать с таким плечом получается значительно дольше.:) Видимо волатильность у Si значительно ниже, чем у RTS и остальных.
Вот смотри, объясню по паре евро доллар, там минимальный шаг цены 0.0001 стоит он (пункт) 10% от стоимости доллара, т.е. 3.3 руб В этом случае Ticksize=0.0001; PointValue=3,3; считается что депо указано тоже в рублях.
У РИХи например минимальный шаг 5 пунктов, но цена указывается за 1 пункт.
 

--al--

New member
Amibroker AFL. Немогу подставить в #include

AMI AFL. Немогу подставить в #include название тикера,
типа этого #include "C:\param\"+Name()+".ami"

ругается на синтаксис ... кто сталкивался стакой проблемой как обошли?
 

GH05

New member
Re: Amibroker AFL. Немогу подставить в #include

AMI AFL. Немогу подставить в #include название тикера,
типа этого #include "C:\param\"+Name()+".ami"

ругается на синтаксис ... кто сталкивался стакой проблемой как обошли?
Причем тут тикер, #include добавляет формулу, для того чтобы добавить нужную формулу добавь ее в папку по умолчанию и в пути выдели <> получится примерно так #include <tra ta ta.afl> писал на память, на всякий случай глянь хэлп
 

--al--

New member
Re: Amibroker AFL. Немогу подставить в #include

Причем тут тикер, #include добавляет формулу, для того чтобы добавить нужную формулу добавь ее в папку по умолчанию и в пути выдели <> получится примерно так #include <tra ta ta.afl> писал на память, на всякий случай глянь хэлп
у меня работает робот, сама торговая система своя для каждого робота, так вот чтоб он подлючал нужную систему согласно тикера, мне этот прием и нужен, динамически менять название формулы для загрузки.
 

GH05

New member
Re: Amibroker AFL. Немогу подставить в #include

у меня работает робот, сама торговая система своя для каждого робота, так вот чтоб он подлючал нужную систему согласно тикера, мне этот прием и нужен, динамически менять название формулы для загрузки.
Ну поставь условие выбора по тикеру, на амисайте об этом писали, хотя это неправильный подход ИМХО.
 

--al--

New member
Re: Amibroker AFL. Немогу подставить в #include

Ну поставь условие выбора по тикеру, на амисайте об этом писали, хотя это неправильный подход ИМХО.
Хм, смысл тогда теряется. Т.к. тело робота всегда одно, а инструменты меняются т.е. менять инструмент и не менять тело робота... но только если все возможные инструменты туда сразу прописать.

Спасибо. А почему думаешь подход не правильный?
 

GH05

New member
Re: Amibroker AFL. Немогу подставить в #include

Хм, смысл тогда теряется. Т.к. тело робота всегда одно, а инструменты меняются т.е. менять инструмент и не менять тело робота... но только если все возможные инструменты туда сразу прописать.

Спасибо. А почему думаешь подход не правильный?
Ну как я понял для каждой бумаги у тебя свой алгоритм, очень похоже на подгон, а вот если бы алгоритм был бы для всех бумаг одинаковый, а менялись только параметры тогда нормально. Да и тело робота желательно одно, а в коде работа по выборке инструмента и проработка алгоритма.
 

--al--

New member
Re: Amibroker AFL. Немогу подставить в #include

Ну как я понял для каждой бумаги у тебя свой алгоритм, очень похоже на подгон, а вот если бы алгоритм был бы для всех бумаг одинаковый, а менялись только параметры тогда нормально. Да и тело робота желательно одно, а в коде работа по выборке инструмента и проработка алгоритма.
да ты прав система у меня одна, а вот пораметры динамически подбираются для каждой бумаги, но я вынес ее от тела робота вместе с параметрами т.к. параметры системы и система по логике не отделимы.
 

GH05

New member
Re: Amibroker AFL. Немогу подставить в #include

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

Romul_gr

New member
Re: Amibroker AFL. Немогу подставить в #include

Лично у меня подругому, есть система, алгоритм, вместе с роботом, подтягиваются котировки нескольких бумаг и для каждой бумаги свои параметры, да и сложно сказать что свои потому как они меняются в зависимости от обстановки.
Вот как это реализовать, чтобы Тикер1 - параметр А=2, параметр B=3, Тикер2- параметр А=4, параметр В=5 ?
 

GH05

New member
Re: Amibroker AFL. Немогу подставить в #include

Вот как это реализовать, чтобы Тикер1 - параметр А=2, параметр B=3, Тикер2- параметр А=4, параметр В=5 ?
Посмотри в хэлпе кажется case выбор в зависимости от условия, потом так if name==SBER и бла бла
Или можно проще
A = IIf(Name() == "Тикер1", 2, 4);
B = IIf(Name() == "Тикер1", 3, 5);
Это если у тебя только две бумаги тикер1 и тикер2, и еще тикер не пойдет, там нужно указывать бумагу латинскими точно также как она названа в базе ами
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху