|
AmiSite.ru
Форум по Ами |
Автор |
Сообщение |
Qurt
Зарегистрирован: 18.12.2011
Сообщения: 3
|
По отдельности "Ограничение по количеству сделок":
Код: |
Equity(1);
Buy= Buy AND Sum(Buy ,BarsSince( BeginDay )) <= Ks;//ограничение по кол-ву сделок в день
Short = Short AND Sum(Short ,BarsSince( BeginDay )) <= Ks;//ограничение по кол-ву сделок в день |
и "перенос в безубыток":
Код: |
position = 0;
for(i = 1; i < BarCount; i++)
{
if(position == 0)
{
if(BuySignal[i]) // проверка условия для лонга
{
Buy[i] = 1; // покупка
position = 1; // длинная позиция
PriceBuy = BuyPrice[i]; // цена покупки
PriceStop = PriceBuy - Stop; // первоначальный стоп лонга
}
else if(ShortSignal[i]) // проверка условия для шорта
{
Short[i] = 1; // продажа
position = -1; // короткая позиция
PriceShort = ShortPrice[i]; // цена шорта
PriceStop = PriceShort + Stop; // первоначальный стоп шорта
}
}
else if(position == 1) // в противном случае, если лонг
{
if(SellSignal[i]) // условия закрытия лонга
{
Sell[i] = 1; // закрытие лонга
position = 0; // система не в позиции
}
if(H[i] >= PriceBuy + Ubu[i]) // проверка достижения уровня безубытка
{
PriceStop = PriceBuy + 30;// перенос стопа в безубыток
}
if(L[i] <= PriceStop[i]) // проверка срабатывания стопа
{
Sell[i] = 1; // закрытие лонга
SellPrice[i] = PriceBuy + 30;
position = 0;
}
}
else if(position == -1) // в противном случае если шорт
{
if(CoverSignal[i]) // условия закрытия шорта
{
Cover[i] = 1; // закрытие шорта
position = 0; // система не в позиции
}
if(L[i] <= PriceShort - Ubu[i]) // проверка достижения уровня безубытка
{
PriceStop = PriceShort - 30;// перенос стопа в безубыток
}
if(H[i] >= PriceStop[i]) // срабатывание стопа при шорте
{
Cover[i] =1; //закрытие шорта
CoverPrice[i] = PriceShort - 30;
position = 0;
}
}
} |
работают, а вместе нет.
Как вставить в цикл ограничение количества сделок? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если отсюда
Код: |
Equity(1);
Buy= Buy AND Sum(Buy ,BarsSince( BeginDay )) <= Ks;//ограничение по кол-ву сделок в день
Short = Short AND Sum(Short ,BarsSince( BeginDay )) <= Ks;//ограничение по кол-ву сделок в день
|
убрать Equity(1);
и вставить этот блок после переноса, то по моему должно работать. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Qurt
Зарегистрирован: 18.12.2011
Сообщения: 3
|
|
Посмотреть профиль Отправить личное сообщение |
|
Qurt
Зарегистрирован: 18.12.2011
Сообщения: 3
|
Видимо в блоке "перенос в безубыток" изначально была ошибка! Неправильно выставляет стоп, или вообще не выставляет? Не могу понять в цикле какие значения писать с индексом [i] а какие нет? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если массив, то с [i], а если просто константа, то без.
Т.е. если надо просто запомнить параметр и не надо потом смотреть каким он был на 25ом баре, то не надо [i] |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
| |