Вопрос по ограничению кол-ва входов.
- 7onkovalev
- Автор темы
- Не в сети
- Новый участник
-
Меньше
Подробнее
- Сообщений: 2
- Спасибо получено: 0
7 года 7 мес. назад - 7 года 7 мес. назад #902
от 7onkovalev
7onkovalev создал тему: Вопрос по ограничению кол-ва входов.
Есть замечательная статья про «Пирамидинг».
www.bot4sale.ru/blog-menu/ami/amibroker-.../353-pyramiding.html
Вот пример реализации «доливки»
Buy и увеличение + 1 лот = как только инструмент/индикатор делает новый максимум за день.
Sell и увеличение - 1 лот = как только инструмент/индикатор делает новый минимум за день.
Задача.
Как ограничить количество входов?
Скажем только первые три сигнала.
SetOption(“MaxOpenPositions",3) как я понимаю ограничивает количество торгуемых инструментов и не относится к количеству сделок по одному инструменту.
В режиме реальных торгов можно выводить в Amisharp кол-во открытых контрактов по инструменту и в зависимости от них прописать в формуле ограничение на кол-во входов, но на истории данный подход протестировать не получится.
На форуме Amisite данный вопрос поднимался но решения нет.
Форум Amisite
Может есть у кого свежие мысли по этому поводу?
www.bot4sale.ru/blog-menu/ami/amibroker-.../353-pyramiding.html
Вот пример реализации «доливки»
Buy и увеличение + 1 лот = как только инструмент/индикатор делает новый максимум за день.
Sell и увеличение - 1 лот = как только инструмент/индикатор делает новый минимум за день.
SetPositionSize(1,spsShares);
s3= инструмент или индикатор;
ND = DateNum()!= Ref(DateNum(), -1);
temphi = Ref(HighestSince(ND,s3, 1),-1);
Plot(temphi, "",colorGreen , styleNoRescale, Null, Null, 0, -1);
templo = Ref(LowestSince(ND,s3, 1),-1);
Plot(templo, "",colorRed , styleNoRescale, Null, Null, 0, -1);
b1=Ref(Cross(s3,temphi),-1);
Buy = Cover= IIf( b1, sigScaleIn, 0 );
s1=Ref(Cross(templo,s3),-1);
Sell = Short=IIf( s1, sigScaleIn, 0 );
BuyPrice = ShortPrice = CoverPrice = SellPrice = O;
Как ограничить количество входов?
Скажем только первые три сигнала.
SetOption(“MaxOpenPositions",3) как я понимаю ограничивает количество торгуемых инструментов и не относится к количеству сделок по одному инструменту.
В режиме реальных торгов можно выводить в Amisharp кол-во открытых контрактов по инструменту и в зависимости от них прописать в формуле ограничение на кол-во входов, но на истории данный подход протестировать не получится.
На форуме Amisite данный вопрос поднимался но решения нет.
Форум Amisite
Может есть у кого свежие мысли по этому поводу?
Последнее редактирование: 7 года 7 мес. назад пользователем admin.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 7 мес. назад - 7 года 7 мес. назад #903
от admin
admin ответил в теме Вопрос по ограничению кол-ва входов.
Что-то типа такого? (для убирания 4го и более подряд сигнала Buy)
BuyCounter = 0;
for (i = 0 ; i < BarCount ; i++)
if (Sell[i])
BuyCounter = 0;
else if (Buy[i])
if (BuyCounter == 3)
Buy[i] = False;
else
BuyCounter++;
Последнее редактирование: 7 года 7 мес. назад пользователем admin.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- 7onkovalev
- Автор темы
- Не в сети
- Новый участник
-
Меньше
Подробнее
- Сообщений: 2
- Спасибо получено: 0
7 года 7 мес. назад #904
от 7onkovalev
7onkovalev ответил в теме Вопрос по ограничению кол-ва входов.
Всё работает:Admin - гений.
//=== ограничение на N входов =======
n = 3;
//=== ограничение Short ===
SellCounter = 0;
for (i = 0 ; i < BarCount ; i++)
if (Cover[i])
SellCounter = 0;
else if (Short[i])
if (SellCounter== n)
Short[i] = False;
else
SellCounter++;
//==== ограничение Buy ===
BuyCounter = 0;
for (i = 0 ; i < BarCount ; i++)
if (Sell[i])
BuyCounter = 0;
else if (Buy[i])
if (BuyCounter== n)
Buy[i] = False;
else
BuyCounter++;
//===========
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Модераторы: admin