Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1270

Добавлено: Геннадий » 08 мар 2016, 07:33

Тема: Re: Робот не закрывает позицию по времени.

Текст сообщения:

Помогите выяснить причину косой работы робота. Создал робота на открытие шорта. Открытие осуществляется с помощью стохастического осциллятора. Закрытие: 1. Если цена опускается ниже цены открытия+1000 (профит). 2. Цена поднимается на 300 пунктов выше цены входа (стоп). Проблема в том, что в случае 1. Сделка закрывается, но почему то через день. В случае 2. всё работает нормально (закрытие стопа). Не пойму причину.

Код: Выделить всё

/**Стратегия основана на определении моментов  пересечения сглаженной линии D SO и сигнальной линии SO (система "SO"). Особенности:
- сигнал на продажу выдается, если сглаженная линия D индикатора SO пересекает сигнальную линию SO сверху вниз;
- сигнал на закрытие шорта выдается при профите 1000, и при стопе -300;
- при тестировании цена сделки фиксируется как цена закрытия бара, на котором появился сигнал.
- в роботе заявка выставляется после закрытия бара, на котором появился сигнал.
Developed by GG;
Algorithm = ОСЦИЛЛЯТОР;**/

function Initialize()
{
   StrategyName = "GenGal_SQ";
   AddParameter("PK", 37, "", 1);
   AddParameter("PD", 31, "", 1);
   AddParameter("Psig", 10, "", 1);
   AddInput("Input1", Inputs.Candle, 30, true, "SiH6=ФОРТС");
   LongLimit = 1;
   ShortLimit = -1;
}
function OnUpdate()
{
   /// ПРАВИЛО 1
   if ( (SO(Input1, PK, PD, Psig).GetValue("D", 0) < SO(Input1, PK, PD, Psig).GetValue("Signal", 0)) )
   {
      EnterShort();
   }
/// ПРАВИЛО 2
   if ( ((Input1.Close  < (AverPrice()-1000)) && AverPrice() > 0))
   {
      CloseShort();
   }
/// ПРАВИЛО 3
   if ( ((Input1.Close  > (AverPrice()+300)) && AverPrice() > 0))
   {
      CloseShort();
   }
}
Вложения
Ashampoo_Snap_2016.03.08_14h32m05s_002_.png
Показан случай срабатывания стопа и получения профита.