Страница 3 из 4

Re: PriceChannel – ценовой канал или Канал Дончяна

Добавлено: 23 апр 2019, 15:20
Orange2000
evge писал(а):Вижу что выход из позиции не происходит на том же живом баре, это не описано.

2 сигнала не принимает на одном баре, даже если он живой.

Поставил в тест при любой прибыли CurrentPLper() > 0 выход из позиции.

Цена на том же баре пошла в сторону прибыли +, но позиция не закрылась.

Появился через некоторое время новый бар и позиция была закрыта.

Уже существенный минус есть


ну у меня в моем роботе тоже выход произошел, но на октрытии след бара...в общем глюк)

Re: PriceChannel – ценовой канал или Канал Дончяна

Добавлено: 23 апр 2019, 15:21
evge
Более того,
Позиция была открыта на живом баре, затем 1-2 бара прибыли не было, пошла прибыль, НО позиция не закрывалась на живом баре.
Сигнал закрытия прошёл только при появлении нового бара.
Так что тут даже не 2 сделки на одном баре, а просто невыполнение сигнала ClosePosition() на живом баре.

Re: PriceChannel – ценовой канал или Канал Дончяна

Добавлено: 23 апр 2019, 15:27
evge
Или CurrentPLper() меняет состояние свое только при смене бара, тоже надо проверять.

т.к. условие там было простое

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

   if (CurrentPLper() > 0) ClosePosition();

Re: PriceChannel – ценовой канал или Канал Дончяна

Добавлено: 23 апр 2019, 15:48
evge
ещё заметил, внутри 1 бара появлялся сигнал и на Long и на Short
но выполнился только один, второй игнорировался до появления нового бара.

Re: PriceChannel – ценовой канал или Канал Дончяна

Добавлено: 23 апр 2019, 16:02
oxi
Все правильно. На одном баре один сигнал.
Кроме стопа.

Re: PriceChannel – ценовой канал или Канал Дончяна

Добавлено: 23 апр 2019, 17:19
evge
oxi писал(а):Все правильно. На одном баре один сигнал.
Кроме стопа.


Закрытие позиции ClosePosition() выполнится на следующем баре при появлении сигнала

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

   if (CurrentPLper() > 0) ClosePosition();


Может конечно я что-то упустил и может надо ещё раз перепроверить.
Сигнал был по прибыли, но выполнение прошло только на следующем баре после сигнала (на следующем тоже выполнялось условие).

Re: PriceChannel – ценовой канал или Канал Дончяна

Добавлено: 23 апр 2019, 17:22
oxi
Можно поставить BRS после открытия позиции и исполнится на том же баре

Re: PriceChannel – ценовой канал или Канал Дончяна

Добавлено: 23 апр 2019, 18:49
Orange2000
что такое BRS?
так как же все таки заставить работать робот?

Из альфы ответили, что все должно работать

Re: PriceChannel – ценовой канал или Канал Дончяна

Добавлено: 23 апр 2019, 19:06
oxi
Вот пример.
Покупаем, когда цена выше предыдущего хая (внутри бара) и выставляем тейк и стоп
Продаем, когда цена ниже предыдущего лоя (внутри бара) и выставляем тейк и стоп

SRM9 и 3 минуты


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

function Initialize()
{
StrategyName = "example_LiveBar_Break";
AddInput("Input1", Inputs.Candle, 5, true, "SBER=МБ ЦК");
// Включаем режим живого бара
UseClosedBar = false; // Флаг - торговать на незакрытом баре
// Используем максимальную частоту обновления
//TimeStepSeconds = 5; // не менее 5 секунд

}

function OnUpdate()
{
// Аlfadirect.
// Пример стратегии на живом баре


   double pos = CurrentPosition();
   double b = GetBid();
   double a = GetAsk();
   
   if (Input1.Close[0] > Input1.High[1] && pos == 0)
   {
         EnterLongLimit(b, LotSize());
         BreakingStop(b-50, b+10, SignalPriceType.Price);
   }
   if (Input1.Close[0] < Input1.Low[1] && pos == 0)
   {
         EnterShortLimit(a, LotSize());
         BreakingStop(a+50, a-10, SignalPriceType.Price);
   }
               
ShowMessage(string.Format("close={0} high={1} low={2}", Input1.Close[0], Input1.High[1], Input1.Low[1]));

}

Re: PriceChannel – ценовой канал или Канал Дончяна

Добавлено: 23 апр 2019, 19:49
Orange2000

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

if (Input1.Close[0] > Input1.High[1] && pos == 0)


а у меня после конструктора делалось Input1.high просто. а надо видимо еще [0]

сейчас проверяю.

upd. Заработало!!!!