Общие вопросы по разработке > Помогите победить Хейкен Аши

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
ZiZ
Сообщения: 36
Зарегистрирован: 19 ноя 2019, 15:32
Благодарил (а): 6 раз
Поблагодарили: 2 раза

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

Непрочитанное сообщение ZiZ » 09 июл 2020, 19:05

Добрый день!

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

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

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

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

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, то видно, что точки покупок и продаж не соответствуют цветам свечей.

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

Спасибо.

Maks
Сообщения: 52
Зарегистрирован: 15 июн 2020, 15:29
Благодарил (а): 8 раз
Поблагодарили: 27 раз

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

Непрочитанное сообщение Maks » 14 июл 2020, 13:38

Ошибка в строке

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

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


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


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей