Страница 1 из 1

Помогите победить Хейкен Аши

Добавлено: 09 июл 2020, 19:05
ZiZ
Добрый день!

Делаю робота, который будет оперировать значениями по формуле Хейкен Аши.

Для тестирования набросал самый примитивный код, чтобы посмотреть где робот будет ставить заявки.

Суть такая, на дневном таймфрейме, на "зелёной" свече покупаем, на "красной" продаём.

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

function Initialize()
{
   StrategyName = "A_HeikenAshi";
   AddInput("Input", Inputs.Candle);
}

function OnUpdate()
{   
   double Close = 0.25 * (Input.Open[0] + Input.High[0] + Input.Low[0] + Input.Close[0]);
   double Open = 0.5 * (Input.Open[-1] + Input.Close[-1]);
   if (Close > Open)
      EnterLong();
   else
      EnterShort();
}

Изображение

Однако, если на дневной график результатов наложить пользовательский индикатор HeikenAshi, то видно, что точки покупок и продаж не соответствуют цветам свечей.

Где может быть ошибка?

Спасибо.

Re: Помогите победить Хейкен Аши

Добавлено: 14 июл 2020, 13:38
Maks
Ошибка в строке

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

double Open = 0.5 * (Input.Open[-1] + Input.Close[-1]);


Здесь должны быть не предыдущие значение Open и Close ряда Input, а предыдущие значения индикатора Хейкен Аши.
Их можно запоминать, например, в глобальных переменных.