Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Ограничение по количеству сделок + перенос в безубыток Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Qurt



Зарегистрирован: 18.12.2011
Сообщения: 3

СообщениеДобавлено: Чт Фев 09, 2012 11:50 am Ответить с цитатой Вернуться к началу

По отдельности "Ограничение по количеству сделок":
Код:

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

СообщениеДобавлено: Чт Фев 09, 2012 12:30 pm Ответить с цитатой Вернуться к началу

Если отсюда
Код:

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

СообщениеДобавлено: Чт Фев 09, 2012 1:33 pm Ответить с цитатой Вернуться к началу

Спасибо! Всё работает!
Посмотреть профиль Отправить личное сообщение
Qurt



Зарегистрирован: 18.12.2011
Сообщения: 3

СообщениеДобавлено: Пт Фев 10, 2012 9:45 am Ответить с цитатой Вернуться к началу

Видимо в блоке "перенос в безубыток" изначально была ошибка! Неправильно выставляет стоп, или вообще не выставляет? Не могу понять в цикле какие значения писать с индексом [i] а какие нет?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Фев 10, 2012 10:11 am Ответить с цитатой Вернуться к началу

Если массив, то с [i], а если просто константа, то без.
Т.е. если надо просто запомнить параметр и не надо потом смотреть каким он был на 25ом баре, то не надо [i]

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen